node.js für Windows

Ryan Dahl, der Hauptentwickler von node.js, einer JavaScript Laufzeitumgebung für File- und Netzwerk I/O, arbeitet bereits seit einer Weile an der Portierung von node.js auf Windows. Dazu wurde ein großer Teil des Unterbaus von node.js neu entwickelt und ausgetauscht (ua. libev durch libuv ersetzt).

Vor wenigen Tagen erschien nun node.js in der Version 0.5.1 und zum aller ersten mal gibt es eine native Windows Binary! Endlich keine Qualen mehr mit CYGWIN oder anderen POSIX Layern/Emulatoren. node.js ist offiziell nun auch auf Windows! Seid allerdings gewarnt: die Windows Version hat noch einige Einschränkungen und Fehler.

node.js für Windows (Direkter Download)

Bachelor of Science

Anfang dieser Woche habe ich endlich das Kolloquium zu meiner Bachelor Thesis gehalten. Das Thema meiner Bachelor Thesis war High Performance ECMAScript und HTML5 Canvas – Einsatz moderner Webtechnologien für Onlinespiele. Sowohl das Kolloquium als auch der schriftliche Teil meiner Arbeit wurden mit einer glatten 1.0 benotet, was mich natürlich sehr freut! Zwar halte ich mein Bachelor Zeugnis noch nicht in der Hand, doch das ist nur noch reine Formsache.

Im schriftlichen Teil meiner Bachelor Thesis habe ich die Leistungsfähigkeit aktueller ECMAScript und HTML5 Canvas Implementationen untersucht. Dies geschah vor dem Hintergrund des Einsatzes für Onlinespiele. Die Tests sind aber sehr allgemein gehalten und bieten somit auch interessante Daten für andere Anwendungszwecke. Insgesamt habe ich beinahe zwei Dutzend unterschiedliche Use-Cases und Operationen auf ihre Performance und mögliche Optimierungsstrategien untersucht. Um die Messungen an den Javascript Snippets vorzunehmen habe ich die Plattform jsPerf genutzt.

Im mündlichen Teil habe ich darauf verzichtet die selben Daten und Grafiken den Prüfern, die beide die schriftliche Arbeit bereits kannten, erneut vorzustellen. Stattdessen bin ich intensiver auf zwei Punkte eingegangen, die im schriftlichen Teil nur am Rande behandelt wurden: Wie ich zum Thema meiner Bachelor Thesis fand und wie ich die Zukunft von ECMAScript und HTML5 sehe. So sprach ich im mündlichen Teil über meine Praktikumsstelle bei Limbic Entertainment, über Douglas Crockford und Ryan Dahl, über A3O, node.js, Document Stores und über WebGL.

Bachelor of Science. Next Stop: Master of Science!

Javascript – A Modern Love Story

Im Frühjahr des vergangenen Jahres sollte ich im Rahmen eines Vorstellungsgespräches angeben wie gut ich nach eigener Einschätzung bestimmte Programmiersprachen beherrsche. Darunter war auch Javascript. Bis dahin hatte ich Javascript ausschließlich im Browser eingesetzt und auch nur für Kleinigkeiten. Zu diesem Zeitpunkt verband ich mit Javascript im Grunde lediglich das Austauschen von Bildern auf Webseiten. Ich hatte ja keine Ahnung.

Trotz meiner von mir nur als mittelmäßig eingeschätzten Javascript Kenntnisse wurde ich als Web-Entwickler eingestellt. Zwar dominierte PHP meinen Arbeitsalltag, aber ich musste mich auch stellenweise mit Javascript auseinandersetzen. Etwa zur selben Zeit begann meine Faszination für Javascript. Ich entschied mich etwas näher mit Javascript zu beschäftigen. Bei meinen Streifzügen durchs Web nach guten Ressourcen zur Sprache fand ich dann die Video-Reihe “Crockford on Javascript“. An diesem Tag änderte sich alles. Ich verschlang die bis dahin vier erschienenen Folgen und in mir keimte die Erkenntnis, dass Javascript mehr zu bieten hat als Bilder auf Webseiten auszutauschen.

Ich beschäftigte mich intensiv mit Javascript. Ich versuchte die Sprache nicht nur zu beherrschen sondern sie zu ganz zu durchdringen und zu verstehen. Als ich das Konzept der prototypen-basierten Objektorientierung verstand und begriff, dass Javascript im Grunde eine funktionale Sprache ist, blühte in mir eine rege Begeisterung für die Sprache auf. Erst wenn man dies verstanden hat, kann man die ganze Eleganz und Ausdruckskraft von Javascript erfassen.

Hinzu kommt, dass Javascript überall ausführbar ist. Beinahe jedes moderne User Device bietet heutzutage einen Webbrowser, der Javascript ausführen kann. Zusätzlich gibt es inzwischen eine ganze Reihe von Laufzeitumgebungen die Javascript (und dessen Dialekte) ausführen können. Die bekanntesten sind sicherlich Adobe Air und node.js. Javascript existiert nicht nur mehr im Browser, sondern auch auf dem Desktop und auf dem Server.

Zusammen mit anderen modernen auf Javascript basierten Technologien wie JSON und den Document-Stores MongoDB oder CoucheDB bietet Javascript eine homogene und hervorragend ineinander greifende Entwicklungsplattform für Anwendungen jeder couleur. Die beinahe perfekte Interoperabilität bietet allerdings nicht nur potential für enorme Produktivitätssteigerung sondern reduziert auch die Wahrscheinlichkeit für Sicherheitsrelevante Bugs durch fehlerhafte / ungesicherte Umwandlungen und Schnittstellen, wie sie z.B. mit PHP und SQL gerne auftreten (Stuchwort: SQL Injections).

Javascript ist somit so aktuell wie nie zuvor und jeder Web-Entwickler – ob Backend oder Frontend – sollte sich mit dieser Sprache intensiv beschäftigen. Die Bereicherung der Sprache um den abgespeckten Strict Mode in ES5 legt zumal den Grundstein für eine zukünftige Aufrüstung der Sprache um wichtige sicherheitskritische Features. Javascript stellt somit die Zukunft der Anwendungsentwicklung dar – nicht nur im Browser.