Gut dass ich mir sicher sein kann das das nicht wirklich viele Leute lesen, sonst müsste ich wohl einen Flame-War allein wegen der Überschrift fürchten, ganz zu schweigen von dem was noch kommt.
Aber zurück zum Thema. Gute Vorsätze fürs Semester und so wollte heute erstmalig umgesetzt werden und ich hab mich an die Rechnernetze Aufgabe rangemacht. Die Sache fing simpel an, Eclipse runterladen und installieren, und los gehts. Zwei vorgefertigte Klassen implementieren und jeweils eine Read und Write Methode erstellen die die Klasse auf die Festplatte als Datei schreiben würde.
Bisher eigentlich ganz simpel, und eigentlich sollte es auch so bleiben dachte ich. Löblicherweise wurde sogar ein Link zu einem DataStream Tutorial gegeben und nach einigem herumgesuche hab ich es sogar geschafft (unter Zuhilfenahme der Javadoc) ein halbwegs funktionierendes Programm zusammenzuzimmern.
Nun, warum hasse ich also Java? Ein 30 Zeilen Programm hat mich fast 2 Stunden Arbeit gekostet. Herumprobieren mit dem Code, herumspielen mit der IDE, Debugger testen (Guter Tipp: Exception.printStackTrace() ist dein bester Freund!) Und das beste: Ich bin nicht fertig und habe noch 3 Punkte am Aufgabenblatt vor mir.
Denn: Nachdem der erste Teil der Aufgabe simpel war (Ein Objekt das nicht Serializable ist auf die Platte zu schreiben) scheitere ich wohl an der zweiten Aufgabenstellung. Nämlich ein Collection Objekt in eine File zu schreiben.
An und für sich auch simpel, ich habe nur keinerlei Lust den gesamten Stream.writeUTF Mist den ich schon für das einzelne Objekt geschriebne habe nochmal in der Collection Klasse erneut zu schreiben mit irgendwelchen armen Count variablen etc. Eklige Sache.
Nun, eigentlich kann Java garnichts dafür, unter .NET wäre die Sache ähnlich verzwickt, nur dass ich mich da mit der Sprache soviel sicherer fühle dass das ganze bis zu dem aktuellen Punkt wohl nur 10 Minuten gedauert hätte.
Übrigens, sagte ich schon dass ich das neue Eclipse ziemlich gut finde? Vor allem das Word-Hopping :). Mit CRTL+Pfeiltaste kommt man innerhalb eines Wortes anhand des Camel Casings weiter. Also bis zum nächsten großgeschriebenen Wort (genial wenn alle Variablen z.B. strInputParam2 etc heißen)