Apr 29 2011

NodeJS

Tag: Allgemein,EntwicklungPhoscur @ 16:31

Nachdem ich letztes Semester nicht dazu kam mich viel mit meinem Browsergameprojekt zu beschäftigen, wahrscheinlich vor allem wegen des Praxis-Software-Projekts der Uni, beschäftige ich mich zur Zeit nebenher wieder damit, wobei ich momentan auch noch das neue Semester ordne. Wie kompliziert ein Studiengang im Aufbau sein kann!

http://nodejs.org
Ich habe mich ein wenig eingerichtet. Da ich Windows-Nutzer bin, stellte sich das als nicht unkompliziert heraus, da NodeJS Windows nicht wirklich unterstützt. Die Installation unter Cygwin ist zur Zeit nicht zu empfehlen. Wobei da Besserung seitens der NodeJS Entwickler versprochen ist.
Es gibt einige Vorträge, die ich mir angesehen habe. Auf meinem Laptop habe ich Dualboot, kann daher auf Ubuntu ausweichen zur Entwicklung. Die Installation erweist sich dort mit ein wenig Konsole-Kenntnissen als nicht so schwierig. Auf meinem Hauptrechner ist das komplizierter, weil ich nicht das Betriebsystem zum Programmieren wechseln will. Die Installation auf Cygwin hatte ich vor ein paar Monaten erfolglos probiert. Ich kann Ubuntu aber in einer Virtual-Machine betreiben. VMWare bietet einen Unity-Modus, in dem die Oberflächen zusammengeführt werden. So kann ich ein Ubuntu Terminal unter Windows7 offen haben, fein. Ich kann einen Ordner auf dem Host(Windows) freigeben und auf dem Gast (Ubuntu) mounten, so kann die Entwicklungsumgebung auf dem Host laufen lassen.

v8 lässt sich direkt über den Chrome Browser debuggen, da bin ich noch gespannt wie die Anbindung funktioniert.
Langsam bilden sich kleine Frameworks unter NodeJS, interessant finde ich vor allem express. Teils lese ich im Quellcode von interessanten Projekten um den Aufbau und die Nutzung der NodeJS-API zu verstehen. Die asynchronen Aufrufe sind mir noch ungewohnt.

Allgemein bietet JavaScript sprachliche Aspekte die man nicht aus Java und nur wenig aus PHP kennt. So werden manche Probleme über Currying gelöst, in JavaScript sind Funktionen First-Class.

Was mir sehr gefällt, ist dass sich auch komplexe Aufgaben in wenigen Zeilen lösen lassen. So sieht man wie der NodeJS Entwickler während(!) eines Vortrags in 20 Zeilen einen simplen Netzwerk Chat schreibt.

Ich versuche den funktionalen Aspekt den JavaScript bietet (für Simplizität) und die gelernte Objektorientierung (für Erweiterbarkeit) zu verbinden. Derweil höre ich dieses Semester einige passende weiterführende Vorlesungen.

Leider bin ich mir noch nicht sicher wieviel Zeit ich dieses Semester diesem Projekt widmen kann, hoffe allerdings viel, das letzte Jahr lag irgendwie nur alles Brach.