ubuntuusers.de

Stellenwert von Java in Linux

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

derMani

Avatar von derMani

Anmeldungsdatum:
24. Januar 2007

Beiträge: 260

Wohnort: Papenburg

Java hat seine Vorzüge ganz sicher nicht im Desktop-Bereich, obwohl hier natürlich einiges für die Plattformunabhängigkeit sprechen würde.

Die Stärken von Java sind ganz klar im Unternehmensbereich angesiedelt. Diese ganze J2EE-Geschichte hält Java doch überhaupt am Leben und hebt die Sprache so hervor. Hier zeigen sich ganz klar die Stärken: Portabilität, Flexibilität, Austauschbarkeit und Anpassbarkeit.

Das ist auch der Grund warum moderne "Hochschulfabriken" zu Hauf ihre angehenden Informatiker als Java-Entwickler ausbilden/produzieren: Die Industrie fordert sie einfach! J2EE-Experten sind trotzdem immer noch Mangelware und daher winken einem angehenden Java-Entwickler durchaus interessante Job-Angebote, wenn man sich halt entsprechend spezialisiert.

Auf dem Desktop konnte Java (leider) nie wirklich Fuß fassen, was Sun sich aber wohl selbst zuzuschreiben hat. Als es auf dem Desktop nicht so richtig klappen wollte, hat man halt das Geschäftsmodell entsprechend auf die Enterprise-Produkte ausgerichtet.

Den Vorwurf, dass Java langsam sei kann ich nur zum Teil nachvollziehen. Die JVM benötigt zwar ein wenig Zeit zum Hochfahren, doch ist die Ausführungszeit (des reinen Codes) dank Just in Time Compiliation mittlerweile doch nahezu auf C-Niveau angekomen.

Es gibt diverse Benchmarks die immer und immer wieder Java mit C und C++ verglichen haben und immer war es das gleiche Spiel: Java ist alles andere als langsam und konnte sogar selbst bei komplizierten Verfahren sehr gut mithalten.

Warum aber hat es den Eindruck dass Java-Programme langsam und träge sein? Das hat leider etwas mit der Art und Weise zu tun wie Sun seiner Zeit die GUI-Komponenten "vermasselt" hat. Den Ultimativ schlechten Ruf hat Java durch AWT damals bekommen. Langsam, hässlich ... einfach grausam.

Als dann Swing kam wurde die Situation merklich besser. Bessere Performance, sowie verschiedene Look&Feels, die sich an die Beschaffenheit der verwendeten Desktopumgebung anpassen. Trotzdem erinnere ich mich an einen CT-Benchmark vor 1-2 Jahren, als Java-Programme ohne GUI nahezu identische Ausführungszeiten zu C/C++ Programmen hatten. Sobald aber GUI-Komponenten hinzukamen hat sich das Bild irgendwie meistens deutlich zu Gunsten der klassischen Programmiersprachen verschoben.

Nun es gibt eine relativ einfache Lösung: Man verwendet anstelle von Swing die freie Bibliothek SWT. Eclipse und Azureus sind z.B. SWT-Basiert. Sie sehen gut aus und fühlen sich auch recht fix an.

Wer immer noch nicht glaubt, dass Java schnell sein kann soll mal einen Blick auf das Automobilportal mobile.de werfen. In einem absoluten Mammutprojekt wurde hier über einen Zeitraum von zwei Jahren die gesamte Software von Perl auf Java umgestellt. Im Endeffekt kann man den gewonnen Performancegewinn kaum noch in Worte fassen, das Projekt läuft jetzt richtig rund und um einige Faktoren schneller als früher. (http://www.heise.de/kiosk/archiv/ix/2008/3/98)

Warum aber hat Java sich unter Linux nie richtigdurchsetzen können, obwohl man damit hervorragend plattformunabhängige Software hätte realisieren können?

Meiner Meinung nach ist das einfach historisch bedingt. Die alten Linuxer sind C-Freaks.... (zurecht).

Maschinennahe Programmierung ist alles, jeder will jeden seinen Pointer selbst pflegen!

Dann kommt da einfach so eine objektorientiere Sprache, erzeugt nichtmal handfesten binärcode sondern irgendeinen Bytecodequatsch und möchte sich auch noch unverschämter weise selbst um das Entsorgen von nicht mehr gebrauchten Objekten kümmern (Garbage-Collection). Das war reine IT-Blasphemie und für C/C++ -Programmierer einfach undenkbar ☺

Zudem hat Sun sich selbst keinen Gefallen getan und die eigene Java-Implementierung verschlossen gehalten. Wenn man jetzt noch die anfängliche Trägheit von AWT-Programmen mit dazu nimmt, mussten alt eingesessene C-Programmierer einfach denken, dass Java nichts taugt.... Das hat sich nun von der letzten Entwicklergeneration in die nächste fortgepflantzt und geht nur schwer aus den Köpfen der Entwickler und Nutzer hinaus.

Übrigens die JVM-Spezifikationen waren soweit ich weiß nie verschlossen, nur Suns eigene Implementierung. Wer wissen will wie die JVM einzelne Dinge so organisiert sollte sich mal folgendes Buch zu Gemüte führen:

http://java.sun.com/docs/books/jvms/

am besten gleich in Zusammenhang mit der Sprachspezifikation http://java.sun.com/docs/books/jls/

Angenehme literatur für Abende an denen man nichts zu tun hat 😉

@ RoOKie

Ein gutes Tutorial um eben fix Java-Coden zu lernen wirst du kaum finden, weil java eine professionelle und hochgradig umfangreiche Programmiersprache ist. Schnelle Lernerfolge und Ergebnisse wirst du eher mit PHP oder anderen Skriptsprachen erleben. Auch Delphi und Pascal sind deutlich simpler gestrikt als Java. Mit Java bekommt man eine vollwertige objektorientierte Programmiersprache die dieses Paradigma vollständig umsetzt.

Ein gutes Java-Buch (vermutlich das beste deutschsprachige Java-Buch) findet man mit dem Buch "Java ist auch eine Insel". Ein dickes 1500 Seiten Werk, welches sogar online als Openbook verfügbar ist

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

Eins noch! Falls ihr wirklich interesse habt an der Software-Entwicklung: Studiert Informatik! ☺

Gruß Mani

Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6172

Ich denke das Java eine der Sprachen der Zukunft ist. Wer jetzt noch die Mär von Langsam ubd träge im Hinterkopf hat, hat schon länger keine richtige Java Anwendung gestartet. Beispiele wie Eclipse zeigen eindrucksvoll die Möglichkeiten und Performance

dgf

Anmeldungsdatum:
4. September 2005

Beiträge: 912

Ich kann ein wenig Java und lerne im Moment C++. Wenn ich etwas größeres programmieren müsste und hätte die Wahl für eine Programmiersprache würde ich Java nehmen. Unter C++ gibt es immer mehrere Arten ein und dasselbe zu erreichen und irgendwann benutzt jemand auch eine andere Möglichkeit. Das macht es für mich schwer zu lernen. Java finde ich hingegen mit seiner einfachen Vererbung und Schnittstellen viel strukturierter und klarer aufgebaut.

LeTux

Avatar von LeTux

Anmeldungsdatum:
12. August 2008

Beiträge: 317

derMani schrieb:

Eins noch! Falls ihr wirklich interesse habt an der Software-Entwicklung: Studiert Informatik! ☺

Hmm da muss ich wohl die falsche Uni erwischt haben. Bei uns wurde im ersten Semester VB und C gelehrt und m zweiten dann C++ und Java, HTML und XML wurden mal am rande erwähnt. 😛 Und ich muss sagen das Wissen was man in den zwei Semestern gelehrt bekommen hat reicht nun wahrlich nicht aus um selber was Programmieren zu können. Man hat alle Sprachen nur mal kurz angerissen.

derMani

Avatar von derMani

Anmeldungsdatum:
24. Januar 2007

Beiträge: 260

Wohnort: Papenburg

Wow, das ist aber dann echt schlecht. Sorry!

Darf ich fragen an Welcher Uni du warst? Das hört sich grausam an.

Wir haben im ersten Semester die Java-Grundlagen gelernt (Kontrollstrukturen, Generics, Objektorientierung, Overrinding / Overloading, usw...) Im zweiten wurde dann vertieft: Funktionsweise der JVM, I/O, Collections, Exceptions, Swing, ...

Danach hatte man die Java-Basics auf jeden Fall voll drauf. SPäter wurde das dann fortgesetzt mit JSF, JPA/Hibernate, XML, JSP, Sockets,... also fortgeschrittene Java-Themen.

Der Unterschied könnte halt sein, dass ich an einer Fachhochschule war und die u.U. teilweise doch noch etwas praxisbezogenere Themen haben.

Vorher habe ich eine Fachinformatiker-Ausbildung absolviert und muss sagen, dass die im Vergleich zum Studium einfach ein Witz war. Dank des Studiums weiß ich nun wenigstens von wichtigen matehmatischen und algorithmischen Zusammenhängen, die vorher einfach in der Ausbildung ignoriert worden sind.

Man muss sich aber auch vor Augen halten, dass man nicht zum Programmierer im Studium ausgebildet wird. Dafür sind die Chinesen da 😉 - die können das bloße Einhacken mittlerweile besser und schneller als wir.

Wir Deutschen sollen Konzepte und Modelle entwickeln die dann umgesetzt werden... das ist das was das Studium versucht zu vermitteln. Zusammenhänge und mögliche Probleme sollen erkannt werden können. Dass man Programmieren können muss um sowas zu machen wird einfach vorrausgesetzt, bzw. nach dem Studium als Muss betrachtet. (Hoch)schulen können leider nie wirklich vertiefen, sondern immer nur breit fächern und an der Oberfläche kratzen. Für die Vertiefung ist jeder selbst zuständig 😉. Man STUDIERT ja schließlich auch Informatik 😉

Wer die Praxis im Studium vermisst sollte halt einfach mal in den Büros der Profs anklopfen und nach Hiwi-Jobs fragen! Dadurch sammelt man Erfahrung, bekommt nebenbei ncoh etwas Geld und auf dem Lebenslauf später macht sich sowas auch sicherlich gut. Bei uns ist es so, dass die Profs so viele Aufgaben zu verteilen haben, dass sie sogar froh sind wenn Studenten kommen. Hier gilt aber: Die Studenten müssen zur Praxis kommen.... nicht die Praxis zu den Studenten

Gruß Mani

LeTux

Avatar von LeTux

Anmeldungsdatum:
12. August 2008

Beiträge: 317

Darf ich fragen an Welcher Uni du warst? Das hört sich grausam an.

Jepp, Hochschule Anhalt (FH).

Wir haben im ersten Semester die Java-Grundlagen gelernt (Kontrollstrukturen, Generics, Objektorientierung, Overrinding / Overloading, usw...) Im zweiten wurde dann vertieft: Funktionsweise der JVM, I/O, Collections, Exceptions, Swing, ...

Ähm davon hatten wir ja nichtmal annährend etwas. Wir hatten glaub ich nur die Objektorientierung uns angeschaut weil wir ja vorher C/C++ hatten und wie toll doch diese Objektorientierung wäre. Übrigens wie wir VB gelernt haben war "lustig". Es gibt ja immer diese tollen Seiten wo man Tipps & Tricks & Quellcodes findet. Diese Quellcodes durften wir kopieren und sollten sie dann verstehen wie das funktioniert. Naja zum Glück hatte ich mich schon vorher mit VB beschäftigt gehabt. ☺ Vielleicht liegt's aber auch daran das wir noch Versuchkaninchen sind für den Bachelor Abschluß. ☺

Man muss sich aber auch vor Augen halten, dass man nicht zum Programmierer im Studium ausgebildet wird. Dafür sind die Chinesen da 😉 - die können das bloße Einhacken mittlerweile besser und schneller als wir.

Jepp das hat uns unser Professor auch gesagt allerdings etwas anders. Er meinte jeder der nicht studiert kann auch Programmieren weil das heutzutage fast jeder beigebracht bekommt. Und man studiert halt nur um die Konzepte die dahinter stecken zu erlernen.

bremer

Anmeldungsdatum:
13. August 2006

Beiträge: 437

Bleys schrieb:

Ich denke das Java eine der Sprachen der Zukunft ist. Wer jetzt noch die Mär von Langsam ubd träge im Hinterkopf hat, hat schon länger keine richtige Java Anwendung gestartet. Beispiele wie Eclipse zeigen eindrucksvoll die Möglichkeiten und Performance

Also ich Eclipse und Phase 6 laggen bei mir nur. Bei Phase 6 ist zudem auch in den neuen Versionen die Abfrage der Datenbanken einfach nur lahm. Absolut tötlich für ein Lernprogramm.

In welche Sprache sind die Anwendungen von MS Windows geschrieben? MSIE, Media Player, Explorer, Office etc? Und welches GUI-Toolkit nutzen die?

Fredo Team-Icon

Avatar von Fredo

Anmeldungsdatum:
27. Juni 2005

Beiträge: 5244

Wohnort: Bochum

Ich habe die programmiertechnische Diskussion um Java mal abgetrennt. Zu finden an gewohnter Stelle: java-ist-crap

Liebe Grüße
Fredo

bremer

Anmeldungsdatum:
13. August 2006

Beiträge: 437

bremer schrieb:

In welche Sprache sind die Anwendungen von MS Windows geschrieben? MSIE, Media Player, Explorer, Office etc? Und welches GUI-Toolkit nutzen die?

Das würde mich immer noch interessieren. Oder laufen die alle im .NET-Framework ab?

DasIch

Avatar von DasIch

Anmeldungsdatum:
2. November 2005

Beiträge: 1130

bremer schrieb:

In welche Sprache sind die Anwendungen von MS Windows geschrieben? MSIE, Media Player, Explorer, Office etc? Und welches GUI-Toolkit nutzen die?

Windows hat ein eigenes GUI Toolkit.

Sarastro

Anmeldungsdatum:
5. Mai 2007

Beiträge: 279

DasIch schrieb:

bremer schrieb:

In welche Sprache sind die Anwendungen von MS Windows geschrieben? MSIE, Media Player, Explorer, Office etc? Und welches GUI-Toolkit nutzen die?

Windows hat ein eigenes GUI Toolkit.

Welches auf C++ basiert. Man kann davon ausgehen, dass die meisten MS-Anwendungen in C++ geschrieben sind. In Zukunft wird aber immer mehr auf .Net basieren, den Anfang macht Windows Power Shell.

derMani

Avatar von derMani

Anmeldungsdatum:
24. Januar 2007

Beiträge: 260

Wohnort: Papenburg

Es ist schon ziemlich interessant...

Microsoft will .net und WindowsForms an die Massen bringen, entwickelt seine eigenen Produkte aber stets mit einem verschlossenen, nicht zugänglichen Toolkit....

Die (wirklich gute) Powershell ist die Ausnahme, Microsoft wird c++ und seine eigenen Bibliotheken definitiv weiter verwenden und auch noch weiterentwickeln.

Ein office, einen Internet Explorer oder einen Media Player mit WindowsForms wird es wohl nie geben 😉

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

derMani schrieb:

Es ist schon ziemlich interessant...

Microsoft will .net und WindowsForms an die Massen bringen, entwickelt seine eigenen Produkte aber stets mit einem verschlossenen, nicht zugänglichen Toolkit....

Etwas anderes wäre bei einer so gigantischen, über Jahrzehnte gewachsenen Codebasis auch kaum machbar.

Antworten |