Heute noch C++ für Unternehmenssoftware



  • 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 Rechner

    Ich 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ße 👎 👎 👎

    Es 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.



  • Artchi schrieb:

    Vista! Nö, es lässt nur vermuten, das C++ so langsam C im Embeddedbereich eingeholt hat...

    das lässt es nicht. lies doch nochmal genau, was er geschrieben hat...



  • 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.

    Mach das doch einfach! Ich habe auch in meinem Textfeld ein Contex-Menu eingebaut. Nichts einfnacher als das, einfach das MouseListener-Interface implementieren und zu dem Textfeld eintragen: textfeld.addMouseListener(new MyMouseListener());

    Ich bezweifle das man in der WinAPI so ein Contex-Menu standardmäßig schon bei jedem Control dabei ist. Vielleicht irre ich mich, hab das letzte mal vor 10 Jahren mich mit der WinAPI beschäftigt.

    Es geht um Look&Feel!!!

    Richtig programmiert verhält sich ein Java-Programm nicht anders als ein WinAPI-Programm. Z.b. mein GlobalScalingRechner, VisualParadigm, ArgoUML oder Azereus. Unter Java kannst du sogar dein eigenes Look&Feel definieren. Ausserdem wie aha schon treffend gesagt hat, hat doch jedes Programm ein eigenes Look and Feel.



  • DEvent schrieb:

    Das war bis jetzt die unquilifizierste Bemerkung im ganzen Thread.

    An deiner Stelle würde ich den Ball mal flach halten



  • DEvent schrieb:

    Mach das doch einfach! Ich habe auch in meinem Textfeld ein Contex-Menu eingebaut. Nichts einfnacher als das, einfach das MouseListener-Interface implementieren und zu dem Textfeld eintragen: textfeld.addMouseListener(new MyMouseListener());

    Ne, das ist Dreck. Genauso wie der File Dialog niemals geil sein wird. Ich hab ein Subversion-Plugin im Explorer, der mir den Status der Dateien anzeigt, das wird in einem Swing-File Dialog auch nie zu sehen sein, in jedem normalen Dialog aber schon. Und die ganze Explorer-Funktionalität darin wie kopieren von Dateien und Ordnern ist auch mega-schlecht umgesetzt. Und da können sie noch so viel rumfrickeln, jedesmal wenn es ein neues Windows gibt, wo der Dialog wieder anders aussieht (wie jetzt in Vista) brauchen sie wieder 5 Jahre, damit es immer noch nicht geil ist. Völliger Mist, das selber zeichnen.



  • Richtig programmiert verhält sich ein Java-Programm nicht anders als ein WinAPI-Programm. Z.b. mein GlobalScalingRechner, VisualParadigm, ArgoUML oder Azereus. Unter Java kannst du sogar dein eigenes Look&Feel definieren. Ausserdem wie aha schon treffend gesagt hat, hat doch jedes Programm ein eigenes Look and Feel.

    Ganz ehrlich, dein GlobalScalingRechner sieht, zumindestens auf den Screenshots, salop formuliert nicht sehr in das System integriert aus. Ich muss allerdings fairerweise auch gestehen, dass ich nicht bereit war 340,- Euro auszugeben, nur um deine achso beispielhafte Swing-basierte Desktopanwendung genauer zu evaluieren. Abgesehen davon ist Azureus, meiner Meinung nach das einzige Programm aus deiner Liste, von dem man behaupten kann, dass es sich gut ins System integriert, ebenfalls eine SWT Anwendung.



  • Wobei ich diese komischen Tabs auch sehr grenzwertig finde.



  • Vielleicht mach ich was falsch oder die Version, die wir in der Schule haben ist steinalt, aber wenn das halbwegs integriert aussieht fress ich nen Besen^^ Swing ist es garantiert.

    Ich komm leider jetzt nicht an das eug, da ferien ( 🙂 ) sonst könnte ich nen screen liefern.

    Was muss ich den machen, damit meine Swinganwendung sich integriert?



  • UIManager.setLookandFeel(UIManager.getSystemLookandFeel);

    sowas in der art.



  • Thx werd ich nach den Ferien mal ausprobieren 🙂



  • Ach kommt schon, Swing ist schon eine nette Sache und hat v.a. auch ein schönes Programmiermodell, aber es ist jeder nativen GUI unterlegen wenn es um Dinge wie Integration,Geschwindigkeit usw.. geht. Natürlich wurde und wird das immer mehr verbessert, aber wer behauptet dass man mit Swing all das was native GUI-APIs bieten auch erreichen kann, dem kann man auch nicht mehr helfen.
    Bestes Beispiel ist doch das von jemandem erwähnte ArgoUML. Das Ding ist relativ träge und wer hier behauptet dass das gut integriert sei, der hat echt einen am Dach...
    Ist doch ausserdem auch gar nicht so schlimm dass Swing so ist. Für viele GUIs ist es ausreichend, aber für manche eben eher weniger, und für solche Fälle gibt es ja dann auch sowas wie SWT



  • Ist doch ausserdem auch gar nicht so schlimm dass Swing so ist.

    Eben! Auch GTK-Programme sind nicht unter Windows optimal integriert. Genauso wie FLTK, FOX oder Qt. Hier hat auch niemand behauptet, das z.B. Swing schlecht zu programmieren ist. (habe ich ja auch gesagt, das ich es gerne als Progger benutze!) Es ist halt einfach nur Fakt. Zumal ich ja für Java eine Lanze bzgl. GUI gebrochen habe, in dem ich SWT als Alternative genannt habe. Aber die Herren Javaisten sind sich zu fein, Kritik an ihrer Lieblingssprache zu zuilassen. Jetzt kommt aber die Wahrheit raus. :p 😃


Anmelden zum Antworten