Kann mich nicht entscheiden: Java oder C++ ?



  • asc schrieb:

    Davon abgesehen: Wieviele Anwendungen, die größer als Hilftools sind, kennst du, die keine externen Bibliotheken benötigen.

    Wobei es für den Windows-Anwender weitaus komfortabler ist, wenn bei der Installation eines C- oder C++-Programms ein paar kleine, unauffällige DLLs ins Programmverzeichnis mitinstalliert werden, als wenn von ihm verlangt wird, erst irgendwelche dutzende Megabyte großen Frameworks irgendwoher runterzuladen, von denen er gar nicht weiß wozu sie gut sind.



  • Eine JRE zu installieren, verlangt dem User ungefähr genauso viel ab, wie den Acrobat Reader zu installieren, wenn man PDFs angucken will. 🙄
    Alles weitere wird ja mit der Anwendung deployed, insofern kA wovon Du sprichst. 🤡



  • namespace invader schrieb:

    Wobei es für den Windows-Anwender weitaus komfortabler ist, wenn bei der Installation eines C- oder C++-Programms ein paar kleine, unauffällige DLLs ins Programmverzeichnis mitinstalliert werden, als wenn von ihm verlangt wird, erst irgendwelche dutzende Megabyte großen Frameworks irgendwoher runterzuladen, von denen er gar nicht weiß wozu sie gut sind.

    Dem wiederspreche ich nicht, es gibt durchaus auch Gründe für den Einsatz von C++. Anderseits muss man natürlich auch den Entwicklungsaufwand abwägen (In der Regel ist die Entwicklungsproduktivität mit Java/C# gegenüber C++ unbestritten höher - wobei es natürlich Ausnahmen geben kann).

    Nur ärgere ich mich immer wieder wenn man bei allem hin und her folgendes übersehen wird:
    a) Gerade bei statischen Linken die Größenargumentation nicht greift.
    b) Das man einerseits nichts gegen Java hat, aber sich aufregt das man das .Net Framework installieren müsse.

    Auch sehr interessant finde ich Argumente das Java ja fast überall beigelegt wird (mag stimmen, aktualisieren sollte man es aber auch), ich erinnere mich an einige Programme wo beim Installieren immer noch der Hinweis kommt das zusätzlich das (ebenso mitgelieferte) Java-Framework installiert werden muss. Dies ist also zumindestens in Bezug auf C#/Java kein Unterschied.

    Hier würde ich eher nach den Plattformanforderungen entscheiden.

    Bei großen Projekten fällt für mich aber die Entscheidung immer mehr gegen C++ aus, da man häufig durch die Frameworks einfach mehr in kürzerer Zeit schafft (Auch wenn ich in C# beispielsweise auch ein paar C++ Sprachbestandteile vermisse - ich sehe gerne an der Übergabe wo die Gefahr besteht das etwas geändert wird, wo Elemente per Kopie und wo per Referenz übergeben werden).

    cu André



  • byto schrieb:

    Eine JRE zu installieren, verlangt dem User ungefähr genauso viel ab, wie den Acrobat Reader zu installieren, wenn man PDFs angucken will. 🙄

    Das mag sein, aber dennoch gebe ich "namespace invader" recht: Der Anwender fragt sich immer wieder warum zur Hölle man noch dies und jenes installieren muss. Meist geht es gar nicht soviel um das Installieren als solches, sondern die Frage nach dem warum.

    Ich hatte da jemanden der ein Programm wegen der zusätzlichen Javainstallation (son Mist kommt mir nicht auf den Rechner) ein Programm abgeleht hat, aber unbedacht alle Browserplugins installiert hat.

    cu André



  • byto schrieb:

    Eine JRE zu installieren, verlangt dem User ungefähr genauso viel ab, wie den Acrobat Reader zu installieren, wenn man PDFs angucken will. 🙄

    Beim JRE kann das ja sein, aber zunächst ist das bei .NET etwas anders, und außerdem neigen Abhängigkeiten dazu, sich in ungünstigen Momenten zur Last zu entwickeln.

    Das letzte JRE, das ich installiert hatte, war beispielsweise inkompatibel mit einer Anwendung, die ich benutzte, so daß ich es wieder deinstalliert habe. Wahrscheinlich hätte ich mit ein wenig zusätzlichem Aufwand die beiden auch irgendwie parallel betreiben können, aber da fängt der Spaß ja schon an.
    Bei .NET ist es infolge des inkrementellen Aufbaus und des MSI-Systems noch schlimmer. Der Uninstaller der VS2008-Shell war aus irgendeinem Grunde der Meinung, er müsse mir ein Chaos aus Framework-Addons und -SDKs zu Version 2.0 und höher hinterlassen, und davon ließ sich alles >= 2.0 dann nicht mehr deinstallieren - was aber für manche Anwendungen, die noch 1.1 benötigen, notwendig ist, da deren Installer sonst mit dem 2.0er in Konflikt gerät und desgleichen. Mit einem massiven Aufgebot an Zeit und entsprechenden Utilities war das Problem dann so weit zu bereinigen, daß heute 1.1 und 2.0 friedlich koexistieren - trivial ist das längst nicht mehr.

    Sicher, .NET bietet zweifellos gravierende Vorteile - aber unkompliziertes Deployment gehört nicht dazu.



  • nein, er will kein flameware, aber ihr macht trotzdem einen 😃

    schön, dass die dependency hell auch windows erreicht. eigtl. schade das abwärtkompatibilität nicht gewährleistet wird. egal jetzt ob .net oder java.

    das gute an diesen frameworks ist ja eigentlich, dass man es nur einmal installieren braucht, und verschiedene anwendungen die gleiche runtime nutzen. theoretisch..
    ich hab auf meiner kiste glaub 4 verschiede jre's installiert (sun jdk 5 und 6, open-jre und noch irgendeine 1.4 fürn uralt programm). ich hab ja platz aber toll ist das nicht.
    in die gleichen probleme rennst du mit C++ aber auch, wenn du .dlls ausserhalb des standards benutzt (seis mfc, direct x oder was auch immer), die von mehreren programmen genutzt werden. iwie bleibt sich das gleich in allen sprachen.

    schlimmer wirds noch dadurch, dass einige programme C# wollen, andere Java und wieder eins libxyz.dll, so hat man schlussendlich x bibliotheken und y virtuelle maschinen, die eigentlich alle das selbe machen: fenster, buttons, filehandles, socks und dergleichen zur verfügung stellen.

    schön wäre doch, eine einheitliche schnittstelle zwischen verschiedenen sprachen und verschiedenen plattformen. quasi eine superruntime 💡



  • audacia schrieb:

    Das letzte JRE, das ich installiert hatte, war beispielsweise inkompatibel mit einer Anwendung, die ich benutzte, so daß ich es wieder deinstalliert habe.

    Vereinzelt kommt sowas vor und ist natürlich unschön. Aber es ist grundsätzlich problemlos möglich, mehrere JRE Versionen auf einem Rechner installiert zu haben. Natürlich muss man dann ggf. etwas anpassen, um Anwendungen gezielt mit einer speziellen JRE zu starten und nicht immer die aktuell im Classpath registrierte Version zu nehmen.



  • byto schrieb:

    Vereinzelt kommt sowas vor und ist natürlich unschön. Aber es ist grundsätzlich problemlos möglich, mehrere JRE Versionen auf einem Rechner installiert zu haben. Natürlich muss man dann ggf. etwas anpassen, um Anwendungen gezielt mit einer speziellen JRE zu starten und nicht immer die aktuell im Classpath registrierte Version zu nehmen.

    Und genau das macht der Windows-Normalanwender doch gerne 🤡

    Dabei finde ich das beim JRE noch halbwegs umgänglich. Das integriert sich auch nicht so tief ins System, daß ich zu größeren Kalibern greifen müßte, um es da wieder herauszubekommen. Bei meinem System mußte ich sogar .NET 1.1 deinstallieren (was bei Server 2003 nicht ganz leicht ist), da es bei der forcierten Entfernung von .NET >=2.0 durch die entsprechenden Tools dummerweise bleibende Schäden erlitt.

    idea schrieb:

    schön wäre doch, eine einheitliche schnittstelle zwischen verschiedenen sprachen und verschiedenen plattformen. quasi eine superruntime

    Den Anspruch einer "Super-Runtime" erheben sowohl Java als auch .NET. Wie du siehst, hilft es nichts: Konkurrenz gibt es trotzdem 😉



  • Kennt ihr eigentlich gute Videotutorials, die über die Java Grundlagen hinaus gehen?

    Ich habe jetzt "Jetzt lerne ich Java 6" von Video2Brain durch und habe mir die Video2Brain DVD "Java 6" geholt, nur leider ist der Sprecher teilweise ziemlich schnell und kopiert ganze Codeblöcke einfach nur ins Programm oder das meiste ist schon fertig. (Ich kann mit Videotutorials einfach besser lernen als mit Büchern)



  • Hmm, ich könnte mir das gar nicht vorstellen, anhand eines Videotutorials programmieren zu lernen. Außerdem müsste sowas doch einen enormen Umfang haben, um wirklich sinnvoll zu sein. Nee, dann lieber ein Buch...



  • Und welches Buch hast du benutzt? (Was hälst du von Java ist auch eine Insel?)



  • Ich programmiere kein Java. Ich hab zwar damals mal angefangen, ein Buch zu lesen (ist aber schon ewig her), der Name will mir aber grad nicht einfallen.



  • das sollte für den anfang reichen: http://java.sun.com/docs/books/tutorial/
    🙂



  • Ich habe mit dem lernen und verstehen schon genug zu tun, da will ich das nicht auch noch übersetzen müssen 😉



  • ~fricky schrieb:

    das sollte für den anfang reichen: http://java.sun.com/docs/books/tutorial/
    🙂

    gepaart mit: http://openbook.galileocomputing.de/javainsel7/



  • 50% des Textes ist doch auch in den deutschen Ausgaben auf Englisch, wo liegt da das Problem? Und eine Sprache + Bibliothek zu lernen ist ja jetzt keine höhere Wissenschaft. Sieh es als guter Einstieg um dich an englische Literatur zu gewöhnen, lieber bei einem Einstiegsbuch als später dann bei den harten Brocken.



  • audacia schrieb:

    Das integriert sich auch nicht so tief ins System, daß ich zu größeren Kalibern greifen müßte, um es da wieder herauszubekommen.

    Das sollte aber eher die Ausnahme, und nicht die Regel sein. Davon abgesehen das sowohl die meisten Java als auch .Net Programme die mit einer Version nicht laufen häufig recht unsauber programmiert sind (Es geht jetzt nicht um den Unterschied wie beispielsweite .Net 1.1 und 2.0 [Die ja paralell laufen] sondern eher um die Updatestände einer Version).

    Ich hatte persönlich eher schlechte Erfahrungen mit Java bislang machen müssen, Macken hat jedes Framework, jeder Installer... In der Regel sollte sowohl Java als auch .Net keine Probleme bereiten.

    idea schrieb:

    schön wäre doch, eine einheitliche schnittstelle zwischen verschiedenen sprachen und verschiedenen plattformen. quasi eine superruntime

    Den Anspruch einer "Super-Runtime" erheben sowohl Java als auch .NET. Wie du siehst, hilft es nichts: Konkurrenz gibt es trotzdem ;)[/quote]

    Nein, eher nicht. .Net geht eher ersteren (verschiedene Sprachen), Java eher zweiten Weg (verschiedene Plattformen). Vielleicht treffen sich ja irgendwann mal beide (was zu bezweifeln ist)...

    Davon ganz abgesehen wird selbst ein solcher Zusammenschluß keine Super-Runtime sein, weil man doch von Zeit zu Zeit alten Balast abwerfen muss (Sprich: Auch dann wird es mehrere Versionsstände geben).

    cu André



  • asc schrieb:

    Nein, eher nicht. .Net geht eher ersteren (verschiedene Sprachen), Java eher zweiten Weg (verschiedene Plattformen). Vielleicht treffen sich ja irgendwann mal beide (was zu bezweifeln ist)...

    Technisch ist es kein Problem .NET auf andere Plattformen laufen zu lassen als Windows. Es ist aber politisch nicht gewollt. Micrsoft hatte selbst ne Referenzimplementation ältere .NET-Versionen für FreeBsd/Macos.
    http://www.microsoft.com/downloads/details.aspx?FamilyID=3a1c93fa-7462-47d0-8e56-8dd34c6292f0&displaylang=en



  • Zeus schrieb:

    Technisch ist es kein Problem .NET auf andere Plattformen laufen zu lassen als Windows. Es ist aber politisch nicht gewollt.

    Ach und deshalb, weil es nicht gewollt ist, haben Microsoft und Suse eine Kooperation (was u.a. mit Mono und Moonlight zusammenhängt).

    Aber ohne Frage: Erstes Ziel von MS bleibt ihre Windowsplattform.



  • 😃 ... alle 3 Tage wieder...


Anmelden zum Antworten