Delphi 4 vs. moderne Swing/Java-Entwicklung

  • Hallo liebe Forumsmitglieder.

    Ich habe vor vielen Jahren (6 oder 7) einmal eine alte Version von Delphi 4 geschenkt bekommen. Ich habe leider nie viel damit gemacht. Stattdessen habe ich Java gelernt und auch mittlere Applikationen mit GUI damit geschrieben.

    Heute habe ich einmal wieder Delphi 4 installiert, und angefangen, damit eine kleine Testapplikation zu schreiben. Nach kurzer Zeit hat es mich wie ein Holzhammer getroffen: Das geht ja viel besser als mit allen Java-Entwicklungstools zusammen. Wenn du Strg-Space drückst, kommt die Auto-Completion sofort, nicht erst nach 2 Sekunden. GUIs bauen geht so glatt, dass es eine reine Freude ist. Versucht mal, in Eclipse einem Hauptmenü-Item einen Keyboard-Shortcut zuzuweisen - entweder ihr wisst wie es geht oder ihr klickt in unnötigen Foren herum. In Delphi geht das wie von selbst. Kleiner Hinweis am Rande: Delphi 4 wurde 1998 veröffentlicht.

    Bitte sehr: Gibt es wirklich keine Java-IDEs, die so flüssig laufen? Ich kenne jedenfalls keine. Kennt ihr welche?

    Und ist das eine besondere Java-Unart, dass GUIs bauen so mies geht? Wer kann mir eine moderne Sprache nennen, in der man ohne sich zu verrenken verdammt NORMALE Applikationen bauen kann?

  • Wer kann mir eine moderne Sprache nennen, in der man ohne sich zu verrenken verdammt NORMALE Applikationen bauen kann?

    WPF und Silverlight Andwendungen im .net. (c# als sprache)

    Mir wird jedesmal schlecht wenn ich für die uni eine swing gui coden muss. Visual Studio bzw Expression Blend sind halt "bissl" mächtiger als eclipse oder netbeans, und WPF/Silverlight schaut einfach sexy aus (vor allem mit telerik controls^^). :)
    Wennst mit "normalen applikationen" enterprise applikationen meinst, bist mMn mit .net wesentlich besser dran. Die Frameworks sind einfach viel viel mächtiger.
    Ctrl-Space brauchst im vs btw nicht, die intellisense dort ist einfach nur hammer ;) Und in Verbindung mit nem TFS musst dich auch nicht mit Subversion herumplagen und die Teamentwicklung wird so viel geiler.

    .net 4.0 wird eh am 12. April releast, da kommen wieder nette features, vor allem mit silverlight 4.0, da kommen einige neue nette spielerein. :)

    Hach, möcht gleich wieder weiter coden^^

    :(){ :|:&};:

  • Das Intellisense ist im Visual Studio aber auch nur bei c# so gut. Bei C++ nervts schon manchmal, und checkt irgendwas nicht.

    Ich war lange Delphi Verfechter, hab viel damit geschrieben, von meiner Oberstufenzeit bis zur Uni, inklusive SE. Man hat damit extrem schnell eine brauchbare Anwendung mit GUI, Pascal an sich find ich auch sehr angenehm, der Compiler ist sauschnell, und man braucht aufm Zielrechner keine blöde Runtime installiern.

    Leider hats auch ein paar Probleme (Liste kann veraltet sein):

    *) Keine Typparameter
    *) Gui-Design nur mit Pixelangaben - keine Layoutmanager. Grad wenn man Software mal übersetzen will, und dann die Texte nimmer auf die Buttons passen, is das blöd.
    *) Der GUI-Designer fördert nicht grad guten objektorientierten Code. Anstatt eine ComboBox abzuleiten, die sich z.B. ihre Daten selbst aus ner Datenstruktur holt, und sich selbst updatet, wenn sich dort was ändert, und selbst Eingaben überprüft, macht man dieses Zeug eben meistens in die Klasse vom Formular rein. Und wenn mans dann nochmal braucht, eben nochmal. Das ist aber meist so, wenn man GUI-Designer verwendet.
    *) Es hat grad alles gepasst, als es neu war, wurde aber zu wenig modernisiert. z.B. hats solang ich damit gearbeitet hab, keine ordentliche Unterstützung für kontextsensitive chm-Hilfen gegeben.

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • Das Intellisense ist im Visual Studio aber auch nur bei c# so gut. Bei C++ nervts schon manchmal, und checkt irgendwas nicht.


    Das kann schon sein, aber was für einen vernünftigen Grund gibts, statt Delphi Visual C++.NET statt C# zu verwenden? Soweit ich das sehe, ist der C++-Teil einfach ein Angebot für C++-Entwickler, die nicht ganz umsteigen wollen, bzw. für bessere Kompatibilität mit nicht verwaltetem C++-Code. Abseits davon gibts imho keinen Grund, _nicht_ in C# zu programmieren. Und um Shardik recht zu geben, WPF ist wirklich der Hammer.

  • OK danke für die Antworten. Ich habe mich jetz auf dreamspark.com registriert, ;) Die Seite ist ja wohl ein Über-Hammer. Hoffentlich geben sie Visual Studio 2010 bald nach dem Release für uns frei, dz. ist nur die Beta 2 downloadbar. Obwohl natürlich Visual Studio 2008 auch sehr gut ist.

    Ich werde mich wohl auf den mühsamen Weg machen, C# zu lernen - die Syntax ist ja nicht das Problem, aber die ganzen Bibliotheken von Feld 1 weg zu lernen, ist halt einigermaßen anstrengend. Kennt jemand irgendwelche guten Ressourcen für Java-Programmierer, die auf C# umsteigen wollen?

  • Hoffentlich geben sie Visual Studio 2010 bald nach dem Release für uns frei, dz. ist nur die Beta 2 downloadbar. Obwohl natürlich Visual Studio 2008 auch sehr gut ist.


    Ansich gibt's ja die Express Versionen, die sind kostenlos und reichen für gewöhnlich zum herumcoden. Wir holen uns mit 12. April wieder die Ultimate Version, brauchen's aber hauptsächlich wegen der Teamentwicklung. Hab' zuhause auch lang die Express verwendet zum herumcoden, weils einfach ausreicht. VS 2k8 is auch gut, wobei halt kein Silverlight Designer dabei ist und der WPF Designer ziemliche Macken hat. WPF/Silverlight von daher mit Expression Blend 3 oder VS 2010 zeichnen. (imho gehts mitn vs2010 schneller, expression blend seh ich eher für die "richtigen" designer gedacht, die sich dann mit der gui spielen, nicht so graphik-nubs wie mich^^) :)

    Zitat

    Ich werde mich wohl auf den mühsamen Weg machen, C# zu lernen - die Syntax ist ja nicht das Problem, aber die ganzen Bibliotheken von Feld 1 weg zu lernen, ist halt einigermaßen anstrengend.


    Isses eigentlich gar nicht, vor allem aufgrund der deutlich stärkeren IDE. Ich hab bevor ich mit c# angefangen hab auch nur großteils java und die obligatorischen Grundkenntnisse in c, c++ gehabt und habs nicht schlimm gefunden. Wenn dir coden Spaß macht, lässt sich c# imho sehr schnell lernen, weilst recht schnell ziemlich nette sachen machen kannst. Am besten du überlegst dir ein paar kleine Projekte und codest die einfach. (zB: ne Verwaltung für deine Sport-Fortschritte, Musik-Sammlung, kA was sonst noch)

    Zitat

    Kennt jemand irgendwelche guten Ressourcen für Java-Programmierer, die auf C# umsteigen wollen?


    Es gibt eigentlich jede Menge brauchbarer eBooks, angefangen bei Aufbaukursen von Null weg bis hinzu spezifischen Frameworkkursen. hier gibts ein openBook, soll angeblich nicht so schlecht sein (habs aber selber nicht gelesen). Die Addison-Wesley Bücher sind auch recht gut, genauso wie die von Microsoft Press. Ich glaub, es is aber eh fast egal was du liest, solang du nebenbei codest und es dir spaß macht lernst eh von ganz alleine ;) Wenn du Java beherrscht wirst du dir nicht schwer tun, die beiden Sprachen sind sich sehr ähnlich, nur dass hinter c# das mächtige .net steckt ;)

    Ich würd aber gleich mit'n .net 4.0 anfangen. Wennst Desktop Applikationen schreiben möchtest verwend' WPF, bei Webapplikationen Silverlight oder ev. asp.net. Sobald du da Grundkenntnisse hast würd ich dir WCF und das ADO.NET Framework nahelegen. :) Wennst Fragen hast, einfach stellen :)

    Es gab früher eine UserGroup für .net von den Microsoft Student Partners. Sollte sich da wieder was ergeben könnt' ich dir das empfehlen.

    :(){ :|:&};:

  • Bevor du die Sprache nur wegen dem erstellen der GUIs wechselst, empfehle ich dir mal JavaFX anzuschauen. Mit JavaFX geschriebene GUIs lassen sich problemlos in normalen Desktop Java Anwendungen verwenden. Nach einem Nachmittag Einarbeitungszeit um sich mit dem Syntax vertraut zu machen, erstellst du damit schönere GUIs in weniger Zeit als es in Swing je möglich wäre.

    Schau dir einfach hier mal die Beispiele an: http://www.javafx.com/

    Aus 100% Apfelsaftkonzentrat. Kann Spuren von Nüssen enthalten.

  • Meine Vote geht auch an WPF. Composite Application Library, MVVM usw. sind Dinge die perfekt an WPF angepasst sind (kommen ja auch extra davon). Es gibt inzwischen Controls wie Sand am mehr und ein Ende ist auch nicht in sicht. Ich glaube zu behaupten, dass WPF momentan das beste GUI Framework ist ist sicher nicht falsch ;)

  • Nur trotz allem möchte ich zu bedenken geben, dass, obwohl ja Plattformunabhängigkeit als im Alleingang unzureichendes Argument für Java gesehen wird, die genannte Plattformunabhängigkeit trotzdem als beträchtlicher Pro-Faktor angesehen werden sollte. Vor allem für Leute wie mich, die schon seit Jahren mindestens 3 Betriebssysteme am Rechner haben, mit VMs sogar bis zu 6 gleichzeitig (Windows XP, SuSE Linux 9-11, FreeBSD 4-8, Solaris 10, Windows 98, Ubuntu 9).

    Ich finde ja C# samt WPF auch super, aber kann mir hier auch nur einer bestätigen, dass das Mono-Projekt schon so weit ist, dass man es als ernsthafte Plattform auf Linux & Co verwenden kann? Einfach alle freien Betriebssysteme auszuschließen, nur weil Microsoft ein alter Monopolist ist, scheint mir a) unfair und b) auf lange Sicht bescheuert. Letzteres vor allem, weil man ja damit nur Microsofts Monopolstellung verstärkt. Oder gibt es andere C#-Lösungen für Linux, außer Mono?

  • Nur trotz allem möchte ich zu bedenken geben, dass, obwohl ja Plattformunabhängigkeit als im Alleingang unzureichendes Argument für Java gesehen wird, die genannte Plattformunabhängigkeit trotzdem als beträchtlicher Pro-Faktor angesehen werden sollte.

    Ich würde sagen dass pauschal zu beantworten ist nicht gut. Das ist eine Frage von Requriements. Wenn ich eine Enterprise App für einen Kunde mache und eine homogene Landschaft fordern kann / gegeben hab werde ich imo immer zum Produkt (Tool) greifen, dass mir die größten Erleichterungen bringt. Und es gibt halt in .NET einige Namespaces die speziell auf Windows zugeschnitten sind. Auch z.B. ADO.NET EF spielt imo nur seine volle Leistung mit MSSQL aus (PGSQL wird da eher Stiefmütterlich behandelt). Also ich glaube es gilt hier: The right tool for the right job

  • Nur trotz allem möchte ich zu bedenken geben, dass, obwohl ja Plattformunabhängigkeit als im Alleingang unzureichendes Argument für Java gesehen wird, die genannte Plattformunabhängigkeit trotzdem als beträchtlicher Pro-Faktor angesehen werden sollte.


    Plattformunabhängigkeit mag ja nett und in manchen Applikationen nett und sinnvoll sein, aber ich seh sie bei Java ebenfalls nicht gegeben, sobald das Projekt eine gewisse Komplexität erreicht hat und du diverse Frameworks verwenden musst.
    (bsp mm1 und mm2: multimediaplayer und handyspiel auf java basis: bei beiden lvas funktionierten bei uns die lösungen nur mit bestimmten jdks (neuere wohlgemerkt nicht), quicktime versionen und betriebssystemen (xp sp 2, alles andere nicht))

    Natürlich ist das nur meine Meinung und ich lass mich gerne eines besseren belehren (für mich ist Plattformunabhängigkeit aber sowieso (fast) irrelevant).

    Zitat

    Ich finde ja C# samt WPF auch super, aber kann mir hier auch nur einer bestätigen, dass das Mono-Projekt schon so weit ist, dass man es als ernsthafte Plattform auf Linux & Co verwenden kann? Einfach alle freien Betriebssysteme auszuschließen, nur weil Microsoft ein alter Monopolist ist, scheint mir a) unfair und b) auf lange Sicht bescheuert. Letzteres vor allem, weil man ja damit nur Microsofts Monopolstellung verstärkt. Oder gibt es andere C#-Lösungen für Linux, außer Mono?


    Es hängt halt davon ab, wie du zu dem ganzen stehst, was dir Spaß macht und in welche Richtung du entwickeln möchtest. Klar gibt's Situationen in denen Java bei weitem die sinnvollste Sprache wäre (man denke nur an mobile apps) aber bei Enterprise Applikationen ist sie es imho bei weitem eben nicht.

    Ich behaupte dass man, bei gleicher Erfahrung, Motivation und Freude wohlgemerkt, Enterprise Applikationen aufgrund der diversen .net Frameworks (wcf, linq, ado.net für den DAL, Silverlight, WPF für PL) deutlich schneller entwickelt, gleichzeitig schaut's noch besser aus.
    Und wozu soll ich diesen Mehraufwand in Kauf nehmen, wenn der Großteil der Konzerne weltweit auf Microsoft setzt und ich deshalb keine Plattformunabhängigkeit brauche? Oder anders formuliert: wenn meine Firma auf Microsoft setzt, warum sollte ich die Applikationen nicht in .net schreiben?

    Es hängt halt wie gesagt davon ab, was du entwickeln möchtest. Ich seh' mich nun mal im MS Umfeld und entwickle Applikationen eben für meine Firma und werd' wohl nie Anwendungen schreiben, mit denen ich möglichst viele freie User erreichen möchte. ;)

    Anmerkung: Um mir Unwissenheit in Java nicht zu unterstellen: Ich entwickle auch SAP Extensions auf Java-Basis. Natürlich bin verblendet und nicht objektiv, aber ich hab zumindest ein wenig Ahnung um die 2 Welten zu vergleichen ;)

    Edit: damike war schneller und bringt's auf den Punkt :)

    :(){ :|:&};:

  • Das kann schon sein, aber was für einen vernünftigen Grund gibts, statt Delphi Visual C++.NET statt C# zu verwenden? Soweit ich das sehe, ist der C++-Teil einfach ein Angebot für C++-Entwickler, die nicht ganz umsteigen wollen, bzw. für bessere Kompatibilität mit nicht verwaltetem C++-Code. Abseits davon gibts imho keinen Grund, _nicht_ in C# zu programmieren. Und um Shardik recht zu geben, WPF ist wirklich der Hammer.

    Wie man C++ mit .Net verwenden kann, is mir ja schon mal prinzipiell schleierhaft. C++ mit Qt find ich aber sehr angenehm. Die GUIs garbagecollecten sich, und man kann viele nette C libs verwenden (zugegebenermaßen oft welche, die man bei andern Frameworks nicht brauchen würde). Qt an sich bietet aber schon sehr viele brauchbare klassen, läuft auf allen allen unterstützen Systemen nachezu gleich gut, man muss sein Zeug halt nur für jede Plattform extra kompilieren. Ist für mich nahe genug an der Plattformunabhängigkeit dran. Bin aber keineswegs C# Hasser, ich verwends nur im Moment nicht.

    Plattformunabhängigkeit mag ja nett und in manchen Applikationen nett und sinnvoll sein, aber ich seh sie bei Java ebenfalls nicht gegeben, sobald das Projekt eine gewisse Komplexität erreicht hat und du diverse Frameworks verwenden musst.
    (bsp mm1 und mm2: multimediaplayer und handyspiel auf java basis: bei beiden lvas funktionierten bei uns die lösungen nur mit bestimmten jdks (neuere wohlgemerkt nicht), quicktime versionen und betriebssystemen (xp sp 2, alles andere nicht))



    Jep, genau solche Sachen sind mir bei Java auch öfters passiert. Java3D war ja auch so ein Kandidat, JOGL soll ja besser sein, hab dann aber nix mehr mit Java machen müssen.
    Ansonsten haben mich diverse Java-Anwendungen meistens genervt weil sie so extrem zäh zu bedienen waren. Inzwischen ists nimmer so schlimm, aber früher wars echt eine Katastrophe.

    Was diese Expression Blend GUIs angeht: Ich find ja, dass die oft sehr cool aussehen, und wenn ich irgendein Multimedia-Tool schreiben würd, würd ichs vielleicht verwenden. Ansonsten hab ich aber doch lieber eher normale GUIs, die sich wenn, dann mit dem Rest von Windows mitstylen.

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • Plattformunabhängigkeit [...] Pro-Faktor [...], mit VMs sogar bis zu 6 gleichzeitig (Windows XP, SuSE Linux 9-11, FreeBSD 4-8, Solaris 10, Windows 98, Ubuntu 9).


    Gerade die VMs sehe ich als Argument gegen die Plattformunabhängigkeit. Ich hab hier am Macbook auch Windows und ubuntu in einer VM, falls ich es mal brauch. Und irgendwie kommen mir manche Windows-Apps in der VM immer noch flüssiger vor als Java-Apps unter MacOS.

    i don't like signatures

  • Gerade die VMs sehe ich als Argument gegen die Plattformunabhängigkeit. Ich hab hier am Macbook auch Windows und ubuntu in einer VM, falls ich es mal brauch. Und irgendwie kommen mir manche Windows-Apps in der VM immer noch flüssiger vor als Java-Apps unter MacOS.

    meine mama kennt sich mit VMs nicht aus (wahrscheinlich weil sie nicht informatik studiert :p)

    btw: java laeuft z.b. auch in einer VM...

  • [ ] du hast meinen post gelesen & versuchst, ihn zu verstehen
    [X] dir ist einfach nur langweilig

    ... :)

    was ich damit sagen wollte: nur weil fuer dich als techniker VMs eine loesung darstellen, so ist fuer (geschaetze) 95% der computerbenutzer (die ja deine zielgruppe als programmierer darstellen) das keine loesung. daher zieht das imho nicht als argument gegen die plattformunabhaengigkeit.

    es koennte jedoch tatsaechlich "zukunftsmusik" sein: heise artikel. die idee ist zwar nicht neu, und bei dem artikel auch eine andere motivation (naemlich security), aber die allgemeine tendenz neigt dazu virtualisierung auch fuer den "normal sterblichem" user zu ermoeglichen, eventuell sogar so transparent dass ers nicht mal mehr mitbekommt. zwar ist virtualisierung nicht plattformuebergreifend, aber ich denke man koennte da leicht zusaetzliche module einfuegen die andere plattformen emulieren.


    hab ich den post deiner meinung nach nun verstanden?

  • hmm?
    Das ist aber einmal eine hoch angelegte Latte, dass mein Programm gleich 95% der Computerbenutzer verwenden.
    Ich hab das eher drauf bezogen, dass man Spezialsoftware (z.B. für eine Firma) ruhig nicht-plattformunabhängig programmieren darf, weil die Virtualisierung schon exisitiert und gut verwendet werden kann. Angenommen ich programmier so was tolles für Windows, dass eine Firma mit 100 Leuten, die ausschließlich Mac / Linux verwendet, das auch haben will.

    Ich weiss nicht, was du für Virtualisierer verwendest, aber ich trau VMWare jedem zu, der beruflich vor dem Computer sitzt. Dank nahtloser Integration (bei vmware heisst unity), drag & drop sowie copy & paste auch durch die maschinen hindurch ist das wirklich kein thema mehr.

    i don't like signatures

  • hmm?
    Das ist aber einmal eine hoch angelegte Latte, dass mein Programm gleich 95% der Computerbenutzer verwenden.
    Ich hab das eher drauf bezogen, dass man Spezialsoftware (z.B. für eine Firma) ruhig nicht-plattformunabhängig programmieren darf, weil die Virtualisierung schon exisitiert und gut verwendet werden kann. Angenommen ich programmier so was tolles für Windows, dass eine Firma mit 100 Leuten, die ausschließlich Mac / Linux verwendet, das auch haben will.


    Da stimme ich dir voll zu.


    Ich weiss nicht, was du für Virtualisierer verwendest, aber ich trau VMWare jedem zu, der beruflich vor dem Computer sitzt. Dank nahtloser Integration (bei vmware heisst unity), drag & drop sowie copy & paste auch durch die maschinen hindurch ist das wirklich kein thema mehr.


    Das ist eine seeeehr gewagte Aussage, insofern ich im IT-Support bei einer Firma bisher die Erfahrung gemacht habe, das 0815-User schon mit trivialen Aufgaben in Windows überfordert sind - denen eine VM zu geben und zu erwarten das die damit umgehen müssen is absolut keine gute Idee... abgesehen davon das nicht jede Firma virtualisiert...

    "Erfahrungen sammeln heißt Fehler begehen." - Herbert George Wells

  • Da stimme ich dir voll zu.

    Das ist eine seeeehr gewagte Aussage, insofern ich im IT-Support bei einer Firma bisher die Erfahrung gemacht habe, das 0815-User schon mit trivialen Aufgaben in Windows überfordert sind - denen eine VM zu geben und zu erwarten das die damit umgehen müssen is absolut keine gute Idee... abgesehen davon das nicht jede Firma virtualisiert...


    Kommt darauf an, was du verwendest - die User sollen eh nicht mit der VM umgehen können, sie merken ja gar nicht, dass sie eine verwenden.
    Gibts in den TU-Computerräumen das Microsoft-Office noch, bzw. kann sich noch wer erinnern? Keine Ahnung, ob das eine VM war. Komplett transparent für den User - das ist wirklich jedem zumutbar.

    i don't like signatures

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!