Josef Spillner (dr_maux@maux.de) wrote:
On Wednesday, 23. January 2002 18:51, Andreas Reich wrote:
<drittsemesternitpick> Naja, schade daß ich mir das Beispiel aus der letzten Vorlesung nicht aufgeschrieben habe... 3 mal casten in einer Zeile, das muß man selbst in C erstmal hinbekommen. Und warum? Weil eine Integer-Zahl nicht von Object abgeleitet ist. Java ist also eine Hybrid-Sprache, auch wenn sie im Gegensatz zu C++ schon "objektorientierter" ist. </drittsemesternitpick>
Jein. Es gibt natürlich native Datentypen - int, char, etc. - aber sonst gilt: "Alles ist Objekt" ;) Das mit den Integern ist wirklich ein Nachteil, wenn man z.B. eine Hashtable hat und aus einem int jedesmal ein Objekt Integer machen muss. Keine Sprache ist perfekt ;)
Was außerdem ein bisschen unschön ist: Wenn man bspw. ein Objekt aus einer Enumeration hat, muss man es erst in den Typ casten, den man will. Hier hilft eine sehr gute Java-Erweiterung namens GJ (Generic Java). Den Link habe ich gerade nicht parat, aber es ist auf jeden Fall einen Blick wert.
Ein Bekannter von mir programmiert sonst nur Perl, will jetzt Java lernen, und ihm haben schon mindestens 3 Leute + 2 Bücher versucht, OOP zu erklären - er kapiert es einfach nicht.
Falsche Leute, falsche Bücher oder keine Motivation?
Die Leute sollten eigentlich richtig sein, die Bücher sind eigentlich auch gut, die Motivation ist eigentlich auch da - aber er sieht den Sinn in OOP einfach nicht.
Bei Java ist die Einstiegshürde einfach höher. Beispielsweise gibt es kaum Beispielprogramme zu einfacheren Sachen... als ich letztens ein "beginners tutorial" gefunden habe, ging es darum, die Klasse Vector zu erklären... anhand eines multithreaded Webservers.
Das liegt bestimmt daran, dass es in Java so einfach ist, einen multithreaded Webserver zu schreiben :P
Nun im Ernst, dann hat da jemand ein schlechtes Tutorial geschrieben. Ist das ein Grund gegen die Sprache? (Nein, kein Flamewar ;)
Ich kann mir auch vorstellen, daß das blinde Verlassen auf die Garbage Collection (als Einsteiger wird man die nicht wirklich kontrollieren wollen) z.B. Probleme beim Umstieg auf C++ verursacht: "Hey, mein Programm ist toll, das ist bei top(1)+M schon ganz oben!"
Naja, wer C++ lernt, sollte schon wissen, was er tut ... aber die Garbage Collection ist wirklich sehr praktisch bei Java.
Aber das nur so als Vermutung... wie es wirklich ist, wird wohl nur einer sagen können, der mit Java angefangen hat, und das Phänomen tritt (noch?) nicht allzu gehäuft auf.
Ich habe zuerst Java gelernt, dann C/C++. Und ich achte schon auf meinen Speicher bei C ...
Ja, Perl ist nicht schlecht wenn man Datentypen, Kontrollstrukturen u.s.w. lernen will, aber ein schneller Wechsel zu einer GUI-enabled Programmiersprache wird dann nicht ausbleiben, weil gerade wenn man seine ersten Programme geschrieben hat will man doch zeigen wie toll die sind. Oder ist das heute nicht mehr so?
Ich habe Perl bisher immer nur für CGIs und Konsolenjobs benutzt. An GUIs mit Perl habe ich mich nie rangewagt, dafür ist es IMHO auch nicht wirklich geeignet. (GUIs in Java mag ich übrigens auch nicht.)
Wow - ich hab das selbe Buch gelesen und hab ein wenig länger gebraucht. Perl schreiben ging recht schnell, aber vorhandene Scripts abändern - das brauchte seine Zeit :)
Habe ich gesagt, dass ich sofort vorhandene Scripts abändern konnte? :)
Andreas