1. Foren
  2. Kommentare
  3. Software-Entwicklung
  4. Alle Kommentare zum Artikel
  5. › Oracle: "Java ist nicht…

Vor-/Nach-teile von Java

  1. Thema

Neues Thema Ansicht wechseln


  1. Vor-/Nach-teile von Java

    Autor: yeti 31.03.12 - 09:16

    Ist das so in etwa richtig?

    + Java wird in Informatik Ausbildung als Lehrsprache verwendet -> Viele Entwickler mit Java Knoff Hoff
    + Java ist Plattform unabhängig
    + Viele Bibliotheken / Frameworks in Java verfügbar
    + Gute IDE Unterstützung (Eclipse)

    - Kein Standard (z.B. ISO)
    - Nur von einem Hersteller
    - Performanz

    Konkurrenz:
    C/C++
    wird leider kaum in der Ausbildung vermittelt. Muss aber für die Zielplattform compiliert werden.

    C#
    Ist auch nur von einem Hersteller (Mono gilt nicht)

    Weitere Konkurrenz-Sprachen ?
    Eher nicht

  2. Re: Vor-/Nach-teile von Java

    Autor: thesparxinc 31.03.12 - 09:47

    yeti schrieb:
    --------------------------------------------------------------------------------
    > Ist das so in etwa richtig?
    >
    > + Java wird in Informatik Ausbildung als Lehrsprache verwendet -> Viele
    > Entwickler mit Java Knoff Hoff
    > ...

    Also meine Erfahrung ist, das als Lehrsprache in der Schule eher das Visual Studio (VB,C#) benutzt wird. Die meisten Schulen nutzen auch die MSAA.

    http://www.microsoft.com/de-de/dynamics/academic.aspx

    ... ich hab Fachinformatiker / Anwendungsentwicklung gelernt.

  3. Re: Vor-/Nach-teile von Java

    Autor: bstea 31.03.12 - 09:52

    Java ist standardisiert.
    Java wird durch ein Konsortium(JCP) geführt, da sind die wichtigsten Firma vertreten.
    Java ist performant im Gegensatz zu Ruby, Python wie sie alle heißen.

    C++ mit seinen neuen Standard schließt die Sprachlücke zu Skriptsprachen bspw. Python.

    C# ist für Windows und deren Ableger interessant. Mono bleibt ein Nischensystem, was den Features hinterherhechelt aber nie die komplette Bibliothek abdeckt.

    Am ehesten kommt noch Python in Frage. Aber die kämpfen noch mit der Umstellung auf den 3er Zweig.

    --
    Erst wenn der letzte Baum gefällt, der letzte Fluss gestaut und der letzte Fisch gefangen ist, werdet ihr feststellen, dass man Biber nicht essen kann!

  4. Re: Vor-/Nach-teile von Java

    Autor: yeti 31.03.12 - 10:05

    > Also meine Erfahrung ist, das als Lehrsprache in der Schule eher das Visual
    > Studio (VB,C#) benutzt wird. Die meisten Schulen nutzen auch die MSAA.

    Das hat aber den Nachteil, dass das Windows-Only ist.
    An den Unis wird viel Java verwendet.

    Ich bin schon etwas älter
    FORTRAN77 -> div. Assembler -> C -> C++
    In Java habe ich nur mal reingeschnuppert.
    Qt kommt mir recht ähnlich wie Swing vor.

  5. Re: Vor-/Nach-teile von Java

    Autor: yeti 31.03.12 - 10:10

    > Am ehesten kommt noch Python in Frage. Aber die kämpfen noch mit der
    > Umstellung auf den 3er Zweig.

    Wenn man auch eine GUI braucht, sind Scriptsprachen eher nicht geeignet.
    Die haben allerdings den Vorteil überall zu laufen, wo es den Interpreter gibt.

  6. Re: Vor-/Nach-teile von Java

    Autor: Grevas 31.03.12 - 11:15

    Ich mache derzeit auch meine Ausbildung zum FAE, und wir haben Java in der Berufsschule. Auf dem Gymi hatte ich vorher auch Java. Als Knoff-Hoff würd ich das jetzt nie bezeichnen, vielleicht eine Einstiegserleichterung.

    Für mich persönlich ist der größte Nachteil gleichzeitig ein Vorteil. Die starke Typisierung in Java.

    - aufwändig und stark eingrenzend
    (bei Sprachen die Ducktyping verwenden, braucht man keine extra Klasse um ein Datensatz zu beschreiben, in vielen Fällen kann man sich Überladung von Methoden auch sparren)
    + IDE Unterstützung
    (durch Vorgabe von Typen, kann die IDE einem schnell Informationen liefern - in Python ist man z.B. eher auf sich allein gestellt)

  7. Re: Vor-/Nach-teile von Java

    Autor: bstea 31.03.12 - 11:30

    Wieso? Es gibt gutgeplegte Bindings für TK, GTK und QT.

    --
    Erst wenn der letzte Baum gefällt, der letzte Fluss gestaut und der letzte Fisch gefangen ist, werdet ihr feststellen, dass man Biber nicht essen kann!

  8. Re: Vor-/Nach-teile von Java

    Autor: yeti 31.03.12 - 11:38

    bstea schrieb:
    --------------------------------------------------------------------------------
    > Wieso? Es gibt gutgeplegte Bindings für

    >TK,
    Tcl/TK finde ich etwas exotisch und nicht mehr ganz auf der Höhe der Zeit.

    >GTK und QT.
    Da würde ich eher gleich C++ nehmen.
    Was wird z.B. mit PyQt, wenn Qt5 rauskommt?

  9. Re: Vor-/Nach-teile von Java

    Autor: Jochen H. Schmidt 31.03.12 - 11:43

    Zu Deinen Fragen:
    1) Ausbildung
    In der Ausbildung wird vieles verwendet. Bei uns war es C und C++. Ein Semester vor uns lernte man statt C noch Pascal. Aber dabei geht es weniger um die Programmiersprachen als vielmehr um die Grundlagen des Programmierens. Man sollte sich nichts vormachen: C++ lernt man nicht in einem Semester. Im Nachhinein finde ich da die an vielen Unis gängige Praxis die Grundlagen an Sprachen wie Scheme zu lehren deutlich besser. Nach korrekter Ausbildung sollte es trivial sein Java oder C# zu lernen, weil beide Sprachen keine sonderlich hohe Komplexität und ein recht überschaubares Featureset haben.
    Java-KnowHow ist eigentlich meistens eher Framework/Bibliotheken-KnowHow.

    2) Plattformunabhängig
    Java ist (ähnlich wie C#) ja nicht nur Sprache sondern effektiv auch eine Plattform (JVM / CLR). Insofern ist "Plattformunabhängig" in etwa genauso gegeben wie bei Adobe Flash.
    Dieser Punkt wurde insbesondere in den Anfangstagen der JVM auch sehr übersponnen. Kein Wunder wenn man aus der Portabilitäts-Hölle C++ kam. Die Praxis sieht allerdings schon anders aus: Anwender wollen/benötigen oft eine Software, die sich gut in ihr Betriebssystem einfügt. Auch bei High-Performance Anwendungen wird es schnell plattformspezifisch. Das "einmal kompilieren überall nutzen"-Motto entspricht auch nicht der Praxis: Für Windows ist es eine .exe für Mac OS X erwartet man ein Bundle und bei Linux ist Quelltext für viele nötig. So muss man doch unterschiedlich bauen. Die Portabilität von Java gegenüber Sprachen wie C und C++ ist meiner Meinung nach eher durch die Abstraktion vieler Maschinendetails (Endian, Wortlänge, Speicherverwaltung...) gegeben. Die generelle Portabilität von Java ist allerdings nicht zuletzt auch mit dem Anwachsen der mobilen Plattformen (z. B. mit J2ME) eher noch zurückgegangen. Auch die iOS-Plattform ist bislang leider nur mit Mühe zu erreichen.

    3) Viele Bibliotheken/Frameworks verfügbar
    Das stimmt - trifft aber nun wirklich nicht nur auf Java zu. Leider ist es auch leichter eine C-Bibliothek in Java zu nutzen als eine Java-Bibliothek irgendwo anders. Wenn es darum geht Quellcode zu lesen, dann schrecke ich bis heute vor Java-Bibliotheken zurück, weil der Code meistens unglaublich aufgedunsen ist.

    4) Gute IDE Unterstützung
    Absolut! Wobei ich persönlich Jetbrains IDEA bevorzuge. Man kann auch sagen was man will: Visual Studio ist durchaus auch eine gute IDE - ich benutze allerdings auch Resharper dazu.

    5) Kein Standard / Nur von einem Hersteller
    Das ist nicht richtig

    6) Performanz
    Es ist in Java noch leichter lahmen Code zu schreiben als mit C. Das bedeutet jedoch nicht, dass es ein generelles Problem mit der Leistung gibt. Java-Code kann ebenso schnell sein wie C-Code. Je komplexer das Problem, desto eher ist das der Fall. Es gibt sogar einen Punkt, an dem C-Programme beginnen schlechter abzuschneiden - spätestens dann, wenn die Speicherverwaltung Probleme bereitet oder die spezifischen Vorteile eines JIT-Compilers treffen.

    7) Konkurrenz
    C/C++: Ich weiß es ist gängig, aber es macht wenig Sinn diese Sprachen stets so in einem Zuge zu nennen. C++ ist eine vollkommen eigenständige Sprache, die noch dazu schlechter mit C interoperiert als andere Sprachen. Die meisten C++-Programmierer, die ich kenne benutzen hauptsächlich den C-Anteil und nur einige wenige Erleichterungen aus C++. Das C++-Objektsystem ist absoluter Bullshit und Templates ein Debugging-Horror.

    C ist eigentlich keine Konkurrenz zu Java - es ist schlicht und Einfach die etablierte Systemprogrammiersprache nahezu aller etablierter Betriebssysteme. Damit bietet C auch die ABI zur Integration mit dem Betriebssystem und ist die Lingua Franka der dynamischen Bibliotheken - egal aus welcher Sprache diese kompiliert wurden. Mit der C-ABI kann ein Pascal-Programm eine in Fortran geschriebene Mathebibliothek nutzen. Hier bietet C++ keine Vorteile, denn C++-Bibliotheken müssen wie bei anderen Sprachen auch erst mit "extern"-Interfaces bereitgestellt werden.
    C# ist am ehesten ein Konkurrent zu Java; nicht nur sprachlich sondern auch als Plattform (JVM vs. CLR). Microsoft hat sich mit C# in den letzten Jahren einen signifikanten sprachlichen Vorsprung erarbeitet. Die Java-Community arbeitet hart daran da dranzubleiben.

    7b) Weitere "Konkurrenz-Sprachen"
    Hat man erst einmal begriffen, das Java eher wegen der JVM interessant ist, dann bieten sich mittlerweile diverse Alternativen: Man liest viel über Scala. Auch Clojure ist ein sehr spannendes Sprachprojekt auf der JVM. Außerdem gibt es mittlerweile unzählige Implementierungen anderer Sprachen auf der JVM: Rhino (Javascript), Jython (Python), JRuby (Ruby), ABCL (Common Lisp). So hat man "mehr Sprache" auf der gleichen Plattform.



    1 mal bearbeitet, zuletzt am 31.03.12 11:46 durch Jochen H. Schmidt.

  10. Re: Vor-/Nach-teile von Java

    Autor: yeti 31.03.12 - 12:25

    Mit 52 ist bei mir die Sturm- und Drang-Zeit wohl vorbei.
    Wahrscheinlich bleibe ich bei C/C++/Qt

    Gelernt habe ich noch mit Lochkarten und Fortran 77.
    Die andren Entwicklungen zu verfolgen und mal etwas damit zu experimentieren, ist eher Gehirn-Jogging.

  11. Re: Vor-/Nach-teile von Java

    Autor: Thaodan 31.03.12 - 12:33

    Python wird vor dem ausführen genauso in Bytecode kompiliert wie Java also ist streng genommen keine Skriptsprache.

  12. Re: Vor-/Nach-teile von Java

    Autor: Thaodan 31.03.12 - 12:34

    Weswegen was solte daraus werden?

  13. Re: Vor-/Nach-teile von Java

    Autor: yeti 31.03.12 - 12:40

    Thaodan schrieb:
    --------------------------------------------------------------------------------
    > Weswegen was solte daraus werden?
    Wenn PyQt mit so was ähnlichem wie http://swig.org generiert werden kann, haben Sie möglicherweise Glück.
    Wenn jedoch manuelle Anpassungen erforderlich sind, wird es problematischer.

    PS: Ich will stark hoffen, dass Qt4 -> Qt5 glatt über die Bühne geht und nicht wie bei Qt3 -> Qt4 verläuft.

  14. Re: Vor-/Nach-teile von Java

    Autor: Trollster 31.03.12 - 13:06

    Thaodan schrieb:
    --------------------------------------------------------------------------------
    > Python wird vor dem ausführen genauso in Bytecode kompiliert wie Java also
    > ist streng genommen keine Skriptsprache.

    Der Compilierungsvorgang hat wenig damit zu tun, ob es eine Skriptsprache ist oder nicht.

  15. Re: Vor-/Nach-teile von Java

    Autor: Thaodan 01.04.12 - 00:15

    Mit was hat es den was zu tun?

  16. Re: Vor-/Nach-teile von Java

    Autor: Thaodan 01.04.12 - 00:17

    Ist zwar OT aber ich habe so weit gelesen das mit Qt5 nur im hintergrund aufgeräumt wird.

  17. Re: Vor-/Nach-teile von Java

    Autor: Trollster 01.04.12 - 00:30

    Thaodan schrieb:
    --------------------------------------------------------------------------------
    > Mit was hat es den was zu tun?

    Mit dem Aufbau und dafür vorgesehenen Einsatz, aber garantiert nicht, wie es kompiliert wird oder was nach dem Kompiliervorgang daraus wird.

  18. Re: Vor-/Nach-teile von Java

    Autor: Moe479 01.04.12 - 11:11

    teste doch mal python, dort wird man nicht von sinnlosen paradigmen eingegrenzt ... okok ... doch von whitespaces^^

    im ernst, ich fand es erfrischend von java, c(++) und php das eine oder andere mal auf python zu wechseln, da es einfach einfacher damit ging, gerade wenn es systemnah wurde war das einzigste problem die richtige bibliothek zu finden ... ;-)



    1 mal bearbeitet, zuletzt am 01.04.12 11:12 durch Moe479.

  19. Re: Vor-/Nach-teile von Java

    Autor: VirtualInsanity 02.04.12 - 09:47

    Grevas schrieb:
    --------------------------------------------------------------------------------
    > Ich mache derzeit auch meine Ausbildung zum FAE, und wir haben Java in der
    > Berufsschule. Auf dem Gymi hatte ich vorher auch Java. Als Knoff-Hoff würd
    > ich das jetzt nie bezeichnen, vielleicht eine Einstiegserleichterung.

    Wie man an Deinen Gedanken zum Thema sehen kann, hast Du schon einiges an Know-How.

    Grevas schrieb:
    --------------------------------------------------------------------------------
    > Für mich persönlich ist der größte Nachteil gleichzeitig ein Vorteil. Die
    > starke Typisierung in Java.
    >
    > - aufwändig und stark eingrenzend
    > (bei Sprachen die Ducktyping verwenden, braucht man keine extra Klasse um
    > ein Datensatz zu beschreiben, in vielen Fällen kann man sich Überladung von
    > Methoden auch sparren)
    > + IDE Unterstützung
    > (durch Vorgabe von Typen, kann die IDE einem schnell Informationen liefern
    > - in Python ist man z.B. eher auf sich allein gestellt)

    Ich habe noch nicht viel mit Skriptsprachen gemacht (Python), aber ich bin noch skeptisch, ob Ducktyping wirklich so toll ist. Die statische Typisierung von Java macht den Code halt gut lesbar, weil man immer sofort sieht, welcher Datentyp das ist (in der IDE zumindest).
    Ich vertrete eher den Standpunkt, dass es besser ist, Code zu schreiben, der sofort verstanden wird. Im Gegensatz zu Code der in wenigen Zeilen vieles erledigt, aber nicht leicht zu verstehen ist.

  20. Re: Vor-/Nach-teile von Java

    Autor: Amüsierter Leser 02.04.12 - 17:05

    yeti schrieb:
    --------------------------------------------------------------------------------
    > Ist das so in etwa richtig?
    >
    > + Java wird in Informatik Ausbildung als Lehrsprache verwendet -> Viele
    > Entwickler mit Java Knoff Hoff

    In der Ausbildung verwendet: Ja.
    Viele Entwickler mit Java Know How? Nein, eher viele Entwickler mit Java-Anfänger-
    Kenntnissen.

    > + Java ist Plattform unabhängig

    Nein. Java ist nur solange plattformunabhängig, solange die Plattform a) Java
    unterstützt und b) die JVM die Funktionalität bereitstellt.
    Sobald Du etwas spezielleres willst, musst Du per JNI das Java-Universum ver-
    lassen, landest z.B. bei C und bist auf Dich allein gestellt.

    > + Viele Bibliotheken / Frameworks in Java verfügbar

    Vor allem das Java-Framework.
    Danach muss man halt andere Frameworks dazu holen oder Java-Bindings an
    C-Frameworks suchen oder schreiben.

    > + Gute IDE Unterstützung (Eclipse)

    Eclipse ist super, man sollte nur genug RAM im Rechner haben.

    > - Nur von einem Hersteller

    Mono gilt bei Dir nicht? Dann gilt GNU-Java wohl auch nicht.

    > - Performanz

    Die Performanz ist eigentlich okay, nachdem das ganze kompiliert wurde.
    Im Schnitt wird sie etwas schwächer als C++ sein, aber fast schon vernachlässigbar.
    Nachteilig sind lange Startprozedur, Speichermanagement abhängig von den
    Einstellungen der JVM und durch die Garbage Collection ein undefiniertes
    Laufzeitverhalten.

    > Konkurrenz:
    > C/C++
    > wird leider kaum in der Ausbildung vermittelt. Muss aber für die
    > Zielplattform compiliert werden.

    Leider, ist bei den imperativen Sprachen aber Maß der Dinge, dazu gehört auch
    OOP. Als Multi-Paradigmensprache setzt C++ auch den Maßstab in der generischen
    Programmierung.

    Dass für eine Zielplattform kompiliert wird, ist ein Vor- wie ein Nachteil.
    Es bedeutet, dass man sich um mehr kümmern muss, wenn ein Programm auf
    Linux/Mac/Windows laufen soll. Notfalls bekommt man es aber auch auf einer
    Waschmaschine oder PKW ans Laufen.

    Falls Du es lernen willst, unter www.proggen.org gibt es Tutorials und ein C-lastiges
    Forum, das bei Fragen weiterhilft.

    > C#
    > Ist auch nur von einem Hersteller (Mono gilt nicht)

    Aber moderner als Java.

    > Weitere Konkurrenz-Sprachen ?
    > Eher nicht

    Nicht wirklich. VB und Delphi existieren noch in Randgebieten.
    Etwas außerhalb sind funktionale Programmiersprachen mit z.B. Haskell oder
    4G-Sprachen wie Prolog.



    1 mal bearbeitet, zuletzt am 02.04.12 17:07 durch Amüsierter Leser.

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Stellenmarkt
  1. Allianz Deutschland AG, Stuttgart
  2. Evangelische Bank eG, Kassel
  3. MDK Baden-Württemberg Medizinischer Dienst der Krankenversicherung, Stuttgart
  4. GO! Express & Logistics (Deutschland) GmbH, Bonn

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. (aktuell u. a. Corsair Scimitar Pro RGB Maus 39,99€)
  2. 99,00€
  3. (u. a. Need for Speed Most Wanted, NfS: The Run, Mass Effect 3, Dragon Age 2, Kingdoms of Amalur...
  4. 649€ mit Gutscheincode PSUPERTECH10


Haben wir etwas übersehen?

E-Mail an news@golem.de


Sendmail: Software aus der digitalen Steinzeit
Sendmail
Software aus der digitalen Steinzeit

Ein nichtöffentliches CVS-Repository, FTP-Downloads, defekte Links, Diskussionen übers Usenet: Der Mailserver Sendmail zeigt alle Anzeichen eines problematischen und in der Vergangenheit stehengebliebenen Softwareprojekts.
Eine Analyse von Hanno Böck

  1. Überwachung Tutanota musste E-Mails vor der Verschlüsselung ausleiten
  2. Buffer Overflow Exim-Sicherheitslücke beim Verarbeiten von TLS-Namen
  3. Sicherheitslücke Buffer Overflow in Dovecot-Mailserver

Minikonsolen im Video-Vergleichstest: Die sieben sinnlosen Zwerge
Minikonsolen im Video-Vergleichstest
Die sieben sinnlosen Zwerge

Golem retro_ Eigentlich sollten wir die kleinen Retrokonsolen mögen. Aber bei mittelmäßiger Emulation, schlechter Steuerung und Verarbeitung wollten wir beim Testen mitunter über die sieben Berge flüchten.
Ein Test von Martin Wolf


    Weltraumsimulation: Die Star-Citizen-Euphorie ist ansteckend
    Weltraumsimulation
    Die Star-Citizen-Euphorie ist ansteckend

    Jubelnde Massen, ehrliche Entwickler und ein 30 Kilogramm schweres Modell des Javelin-Zerstörers: Die Citizencon 2949 hat gezeigt, wie sehr die Community ihr Star Citizen liebt. Auf der anderen Seite reden Entwickler Klartext, statt Marketing-Floskeln zum Besten zu geben. Das steckt an.
    Ein IMHO von Oliver Nickel

    1. Theatres of War angespielt Star Citizen wird zu Battlefield mit Raumschiffen
    2. Star Citizen Mit der Carrack ins neue Sonnensystem
    3. Star Citizen Squadron 42 wird noch einmal verschoben

    1. Soziales Netzwerk: Medienanstalt geht wegen Pornografie gegen Twitter vor
      Soziales Netzwerk
      Medienanstalt geht wegen Pornografie gegen Twitter vor

      Laut der Medienanstalt Hamburg/Schleswig-Holstein macht sich Twitter strafbar, indem es Profile nicht sperrt oder löscht, die pornografisches Material verbreiten. Ein entsprechendes Verfahren ist eingeleitet worden, es drohen ein Bußgeld und eine Untersagung.

    2. The Eliminator: Forza Horizon 4 bekommt Battle-Royale-Modus
      The Eliminator
      Forza Horizon 4 bekommt Battle-Royale-Modus

      Bis zu 72 Fahrer können an einem neuen Battle-Royale-Modus namens The Eliminator teilnehmen, den Microsoft kostenlos für das Rennspiel Forza Horizon 4 anbietet. Einzige Regel: möglichst lange überleben.

    3. Auto: Daimler startet Serienproduktion des Elektro-Sprinters
      Auto
      Daimler startet Serienproduktion des Elektro-Sprinters

      Im Daimler-Werk Düsseldorf ist die Serienproduktion des Elektro-Sprinters angelaufen, der Autobauer hat die ersten Modelle produziert. Ab 2020 kann der Elektrolieferwagen bestellt werden, ab dem Frühjahr soll die Auslieferung starten.


    1. 16:54

    2. 16:26

    3. 16:03

    4. 15:17

    5. 15:00

    6. 14:42

    7. 14:18

    8. 13:59