Heute noch C++ für Unternehmenssoftware
-
4444444444444 schrieb:
Man hat einfach keine Kontrolle, wann der Speicher freigegeben werden soll. Wenn die VM sich einmal mehr Speicher geholt hat, dann gibt sie den nur ungern wieder her. [...]
Na und? Das ist doch der Witz an einer automatischen Speicherverwaltung, dass man sich um das Freigeben nicht kümmern muss. Wenn man nicht gerade auf Echtzeitfähigkeit angewiesen ist, ist ein GC das praktischste was es gibt.
tfa
-
Gregor schrieb:
Wenn ein Programm so viel Arbeitsspeicher braucht, dass das bei einem Rechner mit 512MB RAM oder so relevant wird, dann wird dieser Speicherverbrauch normalerweise von den Daten dominiert, die das Programm verarbeitet. Das ist völlig unabhängig von der gewählten Programmiersprache. Durch die JVM kommt zwar ein gewisser Overhead zu Stande, dieser ist aber völlig zu vernachlässigen, wenn das Programm ein paar 100MB Speicher brauchen sollte. Auch die geladenen Klassen fallen dann nicht ins Gewicht.
Wenn man, wie viele Leute, 5 - 10 Programme offen hat und diese alle Java Anwendungen wären, dann würden die einzelnen VMs doch ne ganz Menge Speicher verbrauchen und schon ins Gewicht fallen. Wenn SUN oder sonst wer da mal was ändern würde, dann hätte Java auf Desktoprechnern mehr Chancen.
-
Der Projektleiter schrieb:
C++ scheint nur im Bereich von Unternehmenslösungen und Informationssystemen im allgemeinen den Kampf langsam aber doch sicher zu verlieren. Was ich hierbei nur noch nicht ganz verstanden habe, warum wird C++ in diesen Bereichen kaum noch verwendet?
Spielen da nur kaufmännische Gründe eine Rolle, oder auch technische? Mich interessiert das besonders, da ich mich beruflich viel mit Unternehmenslösungen und privat mit C++ auseinandersetze und bisher den Hype um andere Technologien bisher noch nicht verstehen konnte.
Wie kommt es das die großen IT-Dienstleister neue Projekte zumeist in Java entwickeln? Das gleiche gilt für die riesige Softwarevertriebshäuser wie Oracle, SAP und IBM.
Ich denke das wichtigste was C++ fehlt, sind Firmen die es nach vorne pushen, wie es Sun, IBM und Oracle mit Java gemacht hatten oder Microsoft mit C#. Wie seht ihr das, würdet ihr bei einer Neuinvestition heute noch auf C++ setzen?
-
Nach Aussage bestimmter Beratungsunternehmen ist es Moment besonders schwer gute freiberufliche C++ Programmierer zu finden. Ein Typ meinte zu mir - von 320 C++ Programmierer in der DB wäre ich der 168te den er anruft. Und keiner hätte Zeit oder ist technologisch bereits ganz wo anders.
-
Direkt code ich schon lange nicht mehr nativ. Bei mir ist heute alles modellgetrieben. C++, Java oder C# nur noch mit Codegenerator.
-
Der Java Hype existiert schon seit 2000.
-
C++ braucht nicht gepush werden. Im Embedded Bereich ist C++ immer noch die erste Wahl. Oder generell in der hardwarenahen Umgebung. Außerdem weiß ich es zu schätzen, wenn ein Fenster in Sekundenbruchteilen aufgeht und nicht wie bei Java oder C++ ich einen Minute warten muss ...
-
Wie lange existiert jetzt C++? 1989?!
-
-
Prof84 schrieb:
Der Projektleiter schrieb:
C++ scheint nur im Bereich von Unternehmenslösungen und Informationssystemen im allgemeinen den Kampf langsam aber doch sicher zu verlieren. Was ich hierbei nur noch nicht ganz verstanden habe, warum wird C++ in diesen Bereichen kaum noch verwendet?
Spielen da nur kaufmännische Gründe eine Rolle, oder auch technische? Mich interessiert das besonders, da ich mich beruflich viel mit Unternehmenslösungen und privat mit C++ auseinandersetze und bisher den Hype um andere Technologien bisher noch nicht verstehen konnte.
Wie kommt es das die großen IT-Dienstleister neue Projekte zumeist in Java entwickeln? Das gleiche gilt für die riesige Softwarevertriebshäuser wie Oracle, SAP und IBM.
Ich denke das wichtigste was C++ fehlt, sind Firmen die es nach vorne pushen, wie es Sun, IBM und Oracle mit Java gemacht hatten oder Microsoft mit C#. Wie seht ihr das, würdet ihr bei einer Neuinvestition heute noch auf C++ setzen?
-
Nach Aussage bestimmter Beratungsunternehmen ist es Moment besonders schwer gute freiberufliche C++ Programmierer zu finden. Ein Typ meinte zu mir - von 320 C++ Programmierer in der DB wäre ich der 168te den er anruft. Und keiner hätte Zeit oder ist technologisch bereits ganz wo anders.
-
Direkt code ich schon lange nicht mehr nativ. Bei mir ist heute alles modellgetrieben. C++, Java oder C# nur noch mit Codegenerator.
-
Der Java Hype existiert schon seit 2000.
-
C++ braucht nicht gepush werden. Im Embedded Bereich ist C++ immer noch die erste Wahl. Oder generell in der hardwarenahen Umgebung. Außerdem weiß ich es zu schätzen, wenn ein Fenster in Sekundenbruchteilen aufgeht und nicht wie bei Java oder C++ ich einen Minute warten muss ...
-
Wie lange existiert jetzt C++? 1989?!
inwiefern war das jetzt eine antwort auf die frage ?
-
-
C++ hat letztes Jahr offiziell seinen 20. Geburtstag gefeiert. Aber "ernst" nehmen kann man es meines Erachtens erst seit dem ISO-C++-Standard.
-
Prof84 schrieb:
- Direkt code ich schon lange nicht mehr nativ. Bei mir ist heute alles modellgetrieben. C++, Java oder C# nur noch mit Codegenerator.
Sehr interessant! Ich setze mich derzeit auch ein wenig mit MDA auseinander, leider befinde ich mich noch im Anfängerstadium. Kannst Du Case-Tools empfehlen die Ihr Geld Wert sind? Hast Du gute Bookmarks bzw. Literatur zu diesem Thema?
-
Ein Projektleiter schrieb:
inwiefern war das jetzt eine antwort auf die frage ?
Ok!
Die Wahl der Programmiersprache wird getroffen aufgrund von:
- technischen Anforderungen - Einsatzgebiet der Software, Toolunterstützung, verfügbare Experten, Entwicklungsdauer, Flexibilität bei der Änderung, ...
- Entwicklungsaufgabe - im Finanzsektor ist Java recht etabliert, für Steuerungssoftware C++ und im MS Umfeld ist c# der Hype.Dies aus technischen Gründen. Aber es existiert keine zwingende Signifikanz der Technologie.
- Altbestand - Existiert schon eine Lösung? In welcher Sprache ist die geschrieben? Können wir einen Sprachenwechsel vornehmen? Schnittstellen implemtieren?....
- Paradigmen - Objektorientierung, Serviceorientierung, Aspektorientierung, Produktlinien, Modell-getrieben, Ereignis-getrieben etc. Welches Paradigma wollen wir etablieren und in wieweit unterstützt dies unsere Sprache?
- Welche Fertigsoftware möchte ich im Unternehmen nutzen und in wieweit unterstützen diese die Sprachen?
etc.
D.h.: Die Entscheidung sollte nach einer sinnvollen Konzeption getroffen werden und nicht nach einer Umfrage im Internet.
-
@Prof84 schrieb:
Prof84 schrieb:
- Direkt code ich schon lange nicht mehr nativ. Bei mir ist heute alles modellgetrieben. C++, Java oder C# nur noch mit Codegenerator.
Sehr interessant! Ich setze mich derzeit auch ein wenig mit MDA auseinander, leider befinde ich mich noch im Anfängerstadium. Kannst Du Case-Tools empfehlen die Ihr Geld Wert sind? Hast Du gute Bookmarks bzw. Literatur zu diesem Thema?
Möchtest Du als Student den kommerzielle Lösungen einsetzen?
Hier ist mal ein kleines Arbeitspaket
http://modelware-ist.org/
Schau Dir zuerst die Videos an. Brauchen Flash, xDSL und Ton.http://www.eclipse.org/modeling/
http://www.eclipse.org/gmt/oaw/
http://www.software-families.org/slides/voelter.pdfhttp://www.software-families.org/programm.html
http://se-radio.netAber vielleicht möchtest Du mit erst mal mit DSM anfangen:
www.metacase.com
Lade Dir mal Metaedit+ runter (30 Tage trial)
oder
http://www.isis.vanderbilt.edu/projects/gme/Kommt man schneller zu Resultaten.
Reicht erst mal für den Anfang.
-
Prof84 schrieb:
... in der DB wäre ich der 168te den er anruft.
In der Deutschen Bahn?
-
Prof84 schrieb:
Im Embedded Bereich ist C++ immer noch die erste Wahl. Oder generell in der hardwarenahen Umgebung.
wieder einer, der C nicht von C++ unterscheiden kann
-
vista schrieb:
Prof84 schrieb:
Im Embedded Bereich ist C++ immer noch die erste Wahl. Oder generell in der hardwarenahen Umgebung.
wieder einer, der C nicht von C++ unterscheiden kann
Wieder so einer, der nicht weiß, dass man C++ auch embedded einsetzen kann.
-
Bei normalen Desktop-Anwendungen ist zum einen eine gute Integration in die Umgebung des Benutzers wichtig. Da kann Java nicht mithalten. Java ist eben unter jeder Umgebung fremd. Außerdem hat Java einen ganz klar höheren Speicher-Verbrauch und teilweise ein langsames verhalten. So sind zumindest meine Erfahrungen und wenn ich auf einem 1GB-Rechner warten muss, bis sich ein Dialog aufgebaut hat und ich ihn wegklicken kann, ist das sehr schlecht. Oder die ganzen VM-Installations Angelegenheiten. Das ist eben nichts für DAUs. Daher wird sich Java wohl nie im Desktop-Bereich durchsetzen.
Das war bis jetzt die unquilifizierste Bemerkung im ganzen Thread. Was brauchen den GUI-Anwendungen für eine Intergration? Das einzige was diese GUI-Anwendungen brauchen ist die Zwischenablage. Mehr nicht.
Eine Java Anwendung hat normalerweise eine sehr gute Perfomance, oder du hast bis jetzt mit sehr schlecht programmierten Anwendungen gearbeitet. VisualParadigm ist z.B. eine Java-Anwendung und arbeitet sehr flott bei sehr vielen Features.
VM-Installations-Angelegenheiten? Was gibt's da für welche? Du lädts dir aus dem Internet eine 50 Megs große Installationsdatei runter und das wars. Damit läuft dann jede Java-Anwendung. Die Jar-Datei kannst du unter Windows danach mit einem Doppelklick ausführen, der DAU merkt gar nicht das es eine Jar Datei ist und keine Exe, weil Windows als Standard die Dateierweiterungen nicht anzeigt. Du brauchst bei kleinen Programmen nichts zu installieren sondern kannst die Jar überall ausführen. Ausserdem funktioniert die Anwendung unter jedem System der die JVM installiert hat.
Meine letzte geschriebene Java-Anwendung läuft problemlos auf Linux, WindowsXP, und Vista (wahrscheinlich auch unter allen anderen Systeme für die es eine JVM gibt), ohne etwas neu kompelieren zu müssen oder überhaupt irgendwas daran zu ändern. Ist eben eine 100% GUI-Anwendung (aber schon komplexer als ein Terminplaner :p )
Kannst dir gerne runterladen:
http://www.globalscaling.de/index.php?option=com_content&view=category&layout=blog&id=7&Itemid=7
und dann auf Software: Global Scaling RechnerIch verstehe auch nicht wieso ständig propagiert wird das Java-Anwendungen generell viel Speicher verbrauchen. Die JVM wird unter allen Anwendungen geteilt und der erzeugte Code kann auch nicht größer sein als ein C++-Programm. Wenn sich jemand über den großen Speicherverbraucht aufregt, dann sollte man die ganzen Bibliotheken die ein C++-Programm benötigt bitte auch in die Rechnung einfließen lassen und dies bei C++-Programmen nicht außenvor lassen.
-
DEvent schrieb:
Die JVM wird unter allen Anwendungen geteilt und der erzeugte Code kann auch nicht größer sein als ein C++-Programm.
Meist du die java.exe oder was? Jedes Java Programm das läuft hat doch seine eigene VM. Da würde ja keine Java Programm mehr funktionieren, wenn eines mal nen OutOfMemoryError hatte.
-
Hm zum Thema Integration
Eine SWING - Anwendung sieht bei mir wie eine SWING-Anwendung aus und nicht wie eine GNOME / KDE / Win32 - Anwendung. Von Integration kann man da wohl kaum reden und ich persönlich finde das stören.
P.S.: Ich weis, dass Java != SWING und dass man mit Java auch Programme schreiben kann, die sich tatsächlich Integrieren
-
Jester schrieb:
vista schrieb:
Prof84 schrieb:
Im Embedded Bereich ist C++ immer noch die erste Wahl. Oder generell in der hardwarenahen Umgebung.
wieder einer, der C nicht von C++ unterscheiden kann
Wieder so einer, der nicht weiß, dass man C++ auch embedded einsetzen kann.
naja, es geht schon, aber die aussage von Prof84 "Im Embedded Bereich ist C++ immer noch die erste Wahl. Oder generell in der hardwarenahen Umgebung" ist einfach falsch. das lässt mich vermuten, dass C und C++ hier gleichgesetzt wurden...
-
darthdespotism schrieb:
Eine SWING - Anwendung sieht bei mir wie eine SWING-Anwendung
meine Swing (es gibt kein SWING, was meinst du damit?) Anwendung sieht hübsch aus, und ist von einer winapi anwendung nicht zu unterscheiden !?
im übrigen ist das argument "java/swing ist scheiße weil sieht nicht wie windows aus" mit verlaub dummfug
die meisten anwendungen sehen nicht "wie windows aus". kurze beispielliste:
- firefox
- trillian
- winamp
- photoshop (und alle anderen adobe produkte auch)
- ms office, ms media player
- dreamweaver
- opera
alle scheiße
-
Vista! Nö, es lässt nur vermuten, das C++ so langsam C im Embeddedbereich eingeholt hat - nicht mehr und nicht weniger.
Devent! SWING ist genial zum Programmieren (ich finde die Swing-Lib genial um meine GUIs zu bauen). Aber unter Integration verstehe ich was anderes. Oder warum gibt es SWT? Genau deshalb, weil man mit SWT halt doch die nativere GUI in Java hinbekommt. Wir haben mal einem Großprojekt unser Java-Eclipse-Framework gezeigt, weil sie von Smalltalk auf Java umsteigen wollten. Als wir in der Präsentation von Swing-Desktop anfingen, haben die gleich abgewunken und gemeint, sie können mit Swing nichts anfangen. Solange wir kein SWT haben, hat unser Framework keine Chance. Denn aus anderen Swing-Projekten haben sie negative Erfahrung gemacht. Yo... und das war vor 2 Monaten.
-
aha schrieb:
darthdespotism schrieb:
Eine SWING - Anwendung sieht bei mir wie eine SWING-Anwendung
meine Swing (es gibt kein SWING, was meinst du damit?) Anwendung sieht hübsch aus, und ist von einer winapi anwendung nicht zu unterscheiden !?
im übrigen ist das argument "java/swing ist scheiße weil sieht nicht wie windows aus" mit verlaub dummfug
die meisten anwendungen sehen nicht "wie windows aus". kurze beispielliste:
- firefox
- trillian
- winamp
- photoshop (und alle anderen adobe produkte auch)
- ms office, ms media player
- dreamweaver
- opera
alle scheißeEs geht um Look&Feel!!! Das MS-Office nicht wie eine normale Win-Anwendung aussieht stimmt. Aber das ist der Look. Es gibt aber auch das Feel, und da benutzt das MS-Office nunmal immer noch native Windows-Controlls.
Opera ist übrigens eine Qt-Anwendung, genauso wie die meisten Adobe-Produkte.
-
Artchi schrieb:
Oder warum gibt es SWT? Genau deshalb, weil man mit SWT halt doch die nativere GUI in Java hinbekommt.
falsch, weil swing zu langsam war vor 8 jahren oder wann ibm mit visual age/eclipse angefangen hat
Artchi schrieb:
Es geht um Look&Feel!!!
darthdespotism schrieb:
Eine SWING - Anwendung sieht bei mir wie eine SWING-Anwendung aus
davon abgesehen dass ich dort nichts gelesen hab von feel versteh ich nicht inwiefern man was am feel von java applikationen bemängeln kann.
-
Das Feel beinhaltet nunmal das Verhalten der Widgets. Damit ist nicht mal die Performance gemeint. Aber mal ein krasses Beispiel um es deutlich zu machen: muß ich eine Combobox lange gedrückt halt damit die Dropdownlist aufgeklappt bleibt oder reicht ein einfacher Mouseklick? Von alten GTK-Anwendungen unter Windows weiß ich noch, das man diese lange drücken mußte. Hat man als Gewohnheitsmensch nur kurz drauf geklickt, ging die Dropdownlist sofort wieder zu. Das Feel war katastrophal für einen Windows-Benutzer. Unter einem entsprechenden originalen GTK-Desktop (Gnome?) mag das völlig i.O. Aber Windows-GIMP war damals einfach nur schlecht zu bedienen. Heute hat sich das Feel schon sehr an Windows angepasst.
Swing-Anwendungen haben z.B. kein Kontextmenü im JTextfield (Textfeld). Eine ganz einfache Sache unter Windows, weil das jedes EDIT-Control serienmäßig dabei hat. Immer wieder rufen User bei uns an, und fragen wie sie einen Text aus einem Textfeld kopieren können? Natürlich mit Ctrl+C! Aber das interessiert den normalen Anwender nicht, der es gewohnt ist die rechte Mousetaste zu drücken. Ich weiß nicht ob es unter Java 1.6 besser geworden ist. Unter Java 1.5 war das noch nicht eingebaut. Es gibt noch ein paar andere Sachen, wo einfach Inkonsistenten für den Normal-User auftauchen. Ich als Technikfan suche mir nen Ausweg und gewöhn mich schnell um. Aber die meisten User haben mit PCs nichts am Hut, es ist ein notwendiges Übel um die Arbeit zu erledigen.
Z.B. kann man das Kontextmenü des Edit-Felds erweitern. Mein Kontextmenü auf meinem Privat-PC hat neben Copy-Paste-Menüs noch ein paar andere Einträge. Die würde ich gerne in allen Textfeldern aller Anwendungen haben.