Ich mach jetzt erstmal n reinstall, ich schreib dann hoffentlich in ca. 2 Tagen hier weiter (gentoo rules :)
Kurzes Update: mein neues System läuft... im Moment sogar besser als ich... ich hock hier mit Grippe rum, und werd euch heute Abend nicht anstecken kommen :-/
Meine Frage an die Java'isten hier: Wie kann ich mal gut mit Java anfangen? meine anforderungen:
- free as in speech ist mir atm egal
- webprogramierung auch egal (ich kann genug php, und RoR schau ich mir dafür als nächstes an)
- mehr/bessere features wichtiger als stabilität
- sollte zum "server" und "gui-client" proggen taugen (kein 3D :))
- sun java ? bestimmt!
- 1.5 1.6 oder was?
- eclipse, netbeans, sun java studio ?
- was brauch ich da sonst noch ?
Empfehlungen von ThomasBayen:
- sun java für Deine Anforderungen auf jeden Fall. Alles andere ist zwar politisch korrekter, hilft aber nix, wenn Du auf neueste Features stehst, wie Du sagst. Wie das in ein gentoo reingeht, überlasse ich mal Dir...
- Wichtig ist, ein Java ab 1.4 zu haben, weil sich da die Sprache selber geändert hat. 1.5 und 1.6 ist keine wesentliche Änderung in der Sprache, sondern hauptsächlich Arbeit an den Bibliotheken. Wenn Du neu isnstallierst nimm das neuste, was Du bekommen kannst, also 1.6.
- Eclipse rulez, insbesondere wenn Du kompatibel zu uns LUGern bleiben willst. :-) Durch die Offenheit des Projektes tut sich dort viel interessantes im Plugin-Bereich. Ansonsten sagt man, daß netbeans auch nicht schlecht ist. Eclipse wird im Grunde genommen heruntergeladen nud dann in ein Verzeichnis entpackt. Mehr ist da (Java-üblich) nicht zu installieren.
- Meine Ersten-Schritte-Tutorials waren die von http://java.sun.com/docs/books/tutorial/index.html.
Geh die mal durch, dann bekommst du einen guten Überblick.
- Für GUIs gibt es grundsätzlich die Wahl zwischen Swing (von Sun, ohne grosse Probleme lauffähig) und SWT (von IBM, bekanntestes Beispiel ist Eclipse, muss jeweils dazu installiert werden). Meine Empfehlung ist Swing.
- Server ist ein weiter Begriff. Sun nennt die Umgebung für Webserver, Webservices, etc. "JavaEE", wofür Du ein besonderes SDK benötigst und einen Webserver wie z.B. Tomcat. Vielleicht reicht Dir aber auch schon RPC für Deinen Server, das sollte mit dem normalen "JavaSE" gehen.
Danke Thomas,
- die "politische Korrektheit" kommt bei suns java ja wohl in kürze auch :D
- hab erst 1.6 jdk UND jre installiert (wobei mein gentoo mir auch angeboten hat das jdk auch als jre zu benutzten.... ka, währe das ne gute idee gewesen ?)
- dann hab ich mir eclipse 3.2.1 geholt, nur hat mein gentoo um das zu kompilieren nen 1.4 blackdown nachinstalliert...
- laufen lass ich das aber im 1.6er
- kann es sein das swing schon beim jdk dabei ist? weil ich hab kein extra paket gefunden.
- das swt ist laut meiner paketverwaltung eine "GTK based SWT Library", das klingt imho gut da ich xfce benutze (gtk basiert) und es rel. schön fände gleiches look and feel zu erzeugen... kann ich das mit swing auch? (die sachen im tutorial sind auf den ersten blick in WinXP gemacht)
- mit Server meine ich nichts was mit "web" anfängt :), rpc und db backend sollten reichen.
- -- JanReitz
Antworten von ThomasBayen:
- Also das "JRE" ist die "Java Runtime Environment", also die Umgebung, die Du zur Laufzeit brauchst. Das ist also das richtige, um Java-Programme auszuführen. Das "JDK" ist das "Java Development Kit", das Du brauchst, um Programme zu entwickeln, d.h. die Sourcen von Bibliotheken etc. sind dabei. Natürlich will man beim Entwickeln immer auch Programme starten, deshalb enthält jedes JDK immer auch ein JRE. Du brauchst also keines mehr dazuzuinstallieren. Auf der anderen Seite ist es kein Problem, mehrere Java-Varianten gleichzeitig installiert zu haben. Man muss halt wissen, mit welcher man sein Programm dann startet. Z.B. in Eclipse kann man so Programme für unterschiedliche JDKs, Sprachversionen, oder VMs gleichzeitig entwickeln.
- Bei Java ist es üblich, daß Programme "self-contained" sind, also alle benötigten Bibliotheken mit enthalten. D.h. das Eclipse-Archiv, das Du von http://www.eclipse.org
herunterlädst, kannst Du in ein Verzeichnis entpacken und dann einfach "eclipse" in diesem Verzeichnis starten. Du musst Dir keine Gedanken um Abhängigkeiten und dergleichen machen und kannst deshalb den Paketmanager Deines Betriebssystems übergehen (was ich sonst auch sehr ungern tue). Du brauchst dann nichts zu kompilieren oder so (Aber was sage ich das einem Gentoo-User...).
- Ob Du Bibliotheken wie swt über Deine Paketverwaltung installierst oder in Dein Programmpaket packst, musst Du Dir selber überlegen. Ich bevorzuge letzteres ("self-contained" wg. Versions- und Umgebungsabhängigkeiten).
- Ja, Swing ist Teil der JRE, also immer vorinstalliert. Der ursprüngliche Unterschied in der Philosophie von SWT und Swing ist, daß Swing alle Widgets komplett selber macht (und damit plattformunabhängiger ist) und SWT soweit möglich die Widgets der Plattform benutzt (und damit besser integriert ist). Deshalb gibt es SWT jeweils in einer eigenen Variante für Windows, für GTK, für Motiv, etc... Heutzutage verschwimmen die Unterschiede SWT/Swing. Swing kann über LookAndFeel sehr gut angepasst werden (es gibt also auch ein GTK-L&F). Bei der normalen Einstellung sehen die Programme ohne Änderung unter Windows wie Windows-Programme und unter Linux wie GTK aus). Auch der ursprüngliche Performance-Vorsprung von SWT ist dahingeschmolzen, weil die Swing-Entwickler gut daran gearbeitet haben. IMHO ist das Swing-Objektmodell besser durchdacht (aber ich habe nicht viel SWT-Erfahrung). Meine eigene Meinung ist: Wenn es die Konkurrenz durch SWT nicht gegeben hätte, wäre Swing heute nicht da, wo es ist. Deshalb danke ich SWT, aber benutze Swing. ;-)
- für RPC schaust Du Dir am besten mal RMI an. Das ist im JavaSE JDK enthalten und dürfte normale Anwendungsfälle abdecken.