Java im Februar

Kein Monat kam mir so lang vor wie der Februar.
Die Prüfungen, das altbekannte Übel, haben wieder angefangen und die Vorlesungen im Wintersemester sind zu Ende. Noch kann ich kein „wirkliches Fazit“ machen, was die ersten Monate als Masterstudent betrifft. Dabei werden mir mit Sicherheit die Prüfungen noch sehr helfen.

Wobei mir eine Prüfung bzw. ein Modul schon mal sehr geholfen hat, ist Java.
Diese Programmiersprache habe ich schon in der Schule lernen dürfen. Das war zum einen ein großer Segen zum anderen hat es mir einiges entnervtes Kompilieren an der Uni beschert. Der Vorteil daran, dass ich es in der Schule gelernt habe ist, dass es einfach eine der gefragtesten Programmiersprachen ist. Außerdem beinhaltet es praktisch nicht ein einziges veraltetes Konzept, zumindest meiner Meinung nach. Wenn man will, kann man „langsam“ (=ohne Objektorientierung) anfangen und das obwohl Java eine streng-objektorientierte Sprache ist. Zumindest haben wir das damals ganz gut hinbekommen. 🙂

Der Nachteil ist der, dass es nach Java keine anderen Programmiersprachen gibt, die mir noch besonders positiv aufgefallen wären. Ich würde fast so weit gehen zu sagen: es gibt nichts nach Java. Klingt dramatisch aber so hat es sich für mich tatsächlich angefühlt. Bei jeder Programmiersprache war es mal angenehmer, mal weniger angenehm sie zu lernen. Insgesamt gab es natürlich immer irgendeine Eigenschaft, Funktionsweise oder Charakteristika, die ich gut fand. Auch bin ich für jedes neu erlangte Wissen dankbar und möchte nichts davon missen. Ich würde niemals sagen, dass es „sinnlos wäre“ die Sprache XYZ-setze-Namen-ein gelernt zu haben.

In der Uni hat es angefangen mit C und danach C++. Für den Informatiker meiner Meinung nach ein echtes Muss. So sollte man mit dem Programmieren vermutlich anfangen. Wenn man allerdings schon eine „runde“ Programmiersprache wie Java kennt (die allerding auf den beiden aufbaut), sorgt das eben für das beklagte „entnervte Kompilieren“. Der Grund dafür ist einfach das andere Handling, zuviele Funktionen die im Prinzip dasselbe machen aber immer mit Restriktionen daherkommen, die Sonderbehandlung von Pointern, die Umständlichkeit bei Objektorientierter Programmierung, die schlechte Überführung bzw. das schlechte Casting von Datentyp zu Datentyp, das Gehadere mit den vielen Angeboten rund um Bibliotheken (grafische Schnittstellen programmieren…was soll ich benutzen?), das alte Problem der Kompatibilität…passt mein Wunsch-Framework denn auch zu meiner Version? Und das waren nur einige der typischen Sorgen, die ich beispielsweise mit C++ hatte. Java wurde schließlich gebaut mit dem Hintergedanken bewusst Probleme anderer Programmiersprachen wie C++ auszubügeln. (Zumindest nachdem man sich davon verabschiedet hatte, Java für Waschmaschinen zu bauen 🙂 ) Der Gedanke, dass viele Konzepte in Java auftraten und dann von anderen (älteren) Programmiersprachen wiederum aufgegriffen wurden, macht es nicht besser. Dazu zählen beispielsweise Exceptions und Threading. Daher war es für mich manchmal schwer mich an C++ zu gewöhnen.

Der eigentliche Fehler ist vermutlich aber der, dass man wenn man einmal mit Java angefangen hat, immer indirekt versucht Java zu programmieren, auch wenn am Dateiende .cpp steht. Diese mangelnde Anpassungsfähigkeit ist auch mein Fehler.

Was finde ich jetzt daran so toll?

  • Es ist plattformunabhängig. Das vermutlich größte Plus überhaupt. Egal, ob ich Windows, Mac oder Linux benutze, ich kann den plattformübergreifenden Bytecode auf jedem System kompilieren.
    Die Verfügbarkeit ist der nächste große Vorteil. Vor einigen Jahren war es beispielsweise auf Windows noch direkt mühsam einen C-Compiler zu finden (wenn man keine Lust auf Visual Studio, Shareware oder abenteuerliche Installationen hat). Linux-User müssen sich darüber beispielsweise keine Gedanken machen – Konsole her und los gehts.
  • Was ich aber hervorheben möchte, ist die Verfügbarkeit von Java: frei. Zwar mit etwas Kleingedrucktem aber dennoch erhält man die Möglichkeit Java zu entwickeln und das in großem Stil: Applets, leichtgewichtige und schwergewichtige Grafikbibliotheken – einmal Downloaden und schon kann man das unvm programmieren.
  • Gehen wir doch mal etwas in den Quellcode…
    Pointer bzw. Zeiger- oder Referenztypen benötigen keine andere Handhabung – kein Dereferenzieren o.Ä. Finde ich unheimlich angenehm, v.A. wenn man sich vor Augen führt, das alles Referenzen sind. Man muss sich nur bewusst sein, ob man nun call-by-value oder call-by-reference arbeitet.
  • Das objektorientierte Programmieren empfinde ich als wesentlich entschlackter und angenehmer als bei anderen Sprachen.
  • Der eine oder andere mag sich ärgern, dass es keine Mehrfachvererbung gibt und man stattdessen das Konzept der Interfaces nutzt und um ehrlich zu sein, hatte ich da beim Programmieren auch schon mal ein Black-Out und musste erstmal umdenken. Mitlerweile erscheint es mir aber als ziemlich schlaues Konzept.

Ich könnte ewig so weiter machen…

Aber wie gesagt, ich bin für jede Programmiersprache die ich gelernt habe sehr dankbar, insbesondere auch PHP – selbst wenn ich mir das mehr alleine oder in der Zusammenarbeit mit anderen beigebracht habe. Eine der positiveren Überraschungen war Python, die als Skriptsprache doch unerwartet mächtig ist.
Durch die Uni habe ich mich mehr mit C und C++ beschäftigt und nur sporadisch mal ein wenig Java programmiert. Dabei hatte ich mir eines schönen Jahres eine absolute Java-Bibel, das „Handbuch der Java-Programmierung“ von Addison & Wesley, zu Weihnachten gewünscht und auch bekommen. Seitdem steht dieses Buch da und es wurden immer mal 20 Seiten hier oder da geblättert aber nie mehr. Dabei gab es so viele Dinge, die ich immer schon mal lernen wollte – ja, echter purer Wissensdurst! Da musste erst das entsprechende Modul an der Universität daherkommen und was ich während Vorlesungen und Übungen nicht aufgeschnappt habe oder was nicht dran war, habe ich mir dann in der Prüfungsvorbereitung angesehen. Das (und die Note) war mal echt positiv.

Ob alle anderen Prüfungen auch noch so schön ablaufen und ob die alle noch so einen privaten positiven Faktor für mich haben – ja das sei mal dahingestellt.
Insgesamt war ich im Februar kräftig am Lernen und am Dokumentationen schreiben und Seminaraufgaben zu Ende bringen usw. Vermutlich kommt er mir deswegen so vor, als hätte er sich wie Käse gezogen… .

Das in den letzten Posts beklagte/herbeigesehnte/beschriebene Kapitel des Manga hat Gestalt angenommen. Ich habe es zu Ende gezeichnet und mache jezt regelmäßig schön den Rücken krumm, um alles mit Feder und Tusche nachzuzeichnen. Mit allen 30 Seiten werde ich wohl kaum bis zur Buchmesse fertig aber ich picke mir das Beste raus und nehme es für eine kleine feine Mappe mit. Leider hat bisher nur ein Verlag Mappensichtungstermine bekannt gegeben.

Den Rest des Monats kann man im Prinzip in zwei Kategorien teilen: Februar-Aufreger und aufregende Nachrichten im Februar…siehe nächster Post.

2 Antworten

  1. Oje oje oje. Ich möchte jetzt nichts anfangen mit Programmiersprachen. Ich denke gerade an Interfaces, die ich in C++ implementiert habe oder an Threads die ich in C++ erstelle. Außerdem gibbets ja jetzt auch nen tolles C++11 😀
    Aber naja. Mit Java hab ich mich auch schon rumgeärgert. Da ist man bei hardwarenahen Sachen nicht mehr sooo Plattformunabhängig, wie man denkt.
    Oje, jetzt hab ich doch damit angefangen. Aber ich bin ja nunmal Mathematiker, der immer ein Auge auf Performance hat.

    Und Ich bin schon richtig gespannt auf den nächsten Post 😀

  2. Na hoffentlich findest du den dann auch interessant…es geht fast komplett nur um Manga 🙂

Schreibe einen Kommentar zu reinhar2 Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert