Hack bei facebook

... oder warum facebook NICHT die Sprache der Zukunft entwickelt hat.


Die IT-Crowd hat den Hang dazu, alles Neue "total super" oder "komplett Scheiße" zu finden. Nun hat einer der selbsternannten Motoren der Weiterentwicklung, facebook,  der IT-Crowd ein neues Spielzeug gegeben: Eine neue Programmiersprache.


Brauchen wir denn eine neue Sprache? - Ja, man braucht IMMER eine neue Sprache!  

Im Ernst, natürlich ist es immer ein guter Ansatz existierende Sprachen zu verbessern oder sogar zu ersetzen. Im aktuellen Fall handelt es sich um PHP. Eine der am verbreitetsten und bekanntesten Scritpsprachen für Web-Applikationen. Welche, auch nach fast zwei Jahrzehnten Entwicklungszeit, wegen ihrer diversen "Unzulänglichkeiten" stark umstritten ist.
Da die komplette Plattform auf PHP basiert, hat facebook schon 2008 ein Projekt gestartet, um die Stabilität und vor allem die Performance zu steigern, das Projekt "HipHop" .
(Ja, bei fb steht man auf "hippe", "peppige" Bezeichner, auf die junge Leute stehen :) ) 
Prinzipiell handelte es sich um eine neue JIT-Compiler/Runtime für PHP, um PHP-Code in C++ zu überführen und so eine schnellere Performance zu erreichen. Auf Grund diverser Probleme mit der Synchronisation des Compiler und des Interpreters, wurde diese Entwicklungsschiene 2010 verlassen und ein neues Projekt gestartet, um eine "virtuelle Maschine" zu entwickeln, welche die bewährte ZEND-Engine, den bisherigen PHP-Interpreter, ablösen soll(te). Das Ergebnis ist die "HHVM".

 

Neben diverser Optimierungen, übersetzt die HHVM den PHP-Code in C++ statt in C, womit schon eine Leistungssteigerung an sich erzielt wird. Um die volle Leistungsfähigkeit zu nutzen und weil es nahezu unmöglich ist, "klassischen PHP-Code" zu optimieren, wurde eine zusätzliche "Sprache" entwickelt und in die HHVM integriert. Die Sprache "Hack".
"Hack" ist im Prinzip eine Art PHP-Dialekt im C++-Gewand.


Der Interpreter, also die HHVM, kann sowohl "normales" PHP, als auch "Hack" interpretieren.
"Hack" selbst ist aber nicht wirklich eine eigenständige Sprache, sonder schöpft aus dem Fundus von PHP und erweitert diesen um einige interessante Konstrukte. Eines der "revolutionärsten" Merkmale ist das "strict typing" im Gegensatz zum PHP-üblichen (und oft verlachten) "loose typing", was für Programmierer diverser Hochsprachen quasi Standard ist. Zusätzlich wurden etliche Datenkonstrukte direkt aus C++ entlehnt, wie z.B. "Generics".
Mit anderen Worten: Um den Code problemloser in C++ zu übersetzen, bietet es sich an, von vornherein "C++näher" zu programmieren. 
... und genau DAS ist der Grund, warum facebook, meiner Meinung nach, NICHT die Sprache der Zukunft entwickelt hat, bzw. PHP verändern wird. 
Zum Einen wird es schwer werden, den größten Teil der "PHP-Programmierer" zu überzeugen, "Hack" zu verwenden, da es bei vielen ein Umdenken (und auch Wissen) erfordert, um "besseren" Code zu schreiben.
... also werden sie weiter "normalen" PHP-Code schreiben, welcher dann durch die HHVM gepresst wird.
Nach wie vor wird ein Großteil des PHP-Codes weitgehend prozedural, mit HTML-Schnippseln durchsetzt und die Variable $x im Wechsel mal mit "Hallo" oder 356 belegt sein. Da es den "PHP-Fallback" gibt, muss man sich also gar nicht an "Hack" gewöhnen.
Zum Anderen muss der "beginnende" Hype natürlich solange anhalten, bis die HHVM Einzug in die Standarddistributionen für den Serverbetrieb hält. Vorher werden "Hack"-Server immer Exoten bleiben. Dafür muss facebook eine große OpenSource-Entwicklergemeinde - abseits von facebook - begeistern, damit eben das passiert. Diese Hürde hat die Sprache "Ruby" schon lange genommen und es gibt auch eine rege Verwendung von "Ruby on Rails" ... aber im Vergleich zu PHP ist der Anteil verschwindend gering. 
Sollten die Neuerungen in "Hack" jemals den Weg in die offizielle PHP-Entwicklung finden, wird "Hack" selbst obsolet.
Für C++-Entwickler ist "Hack" kein Umstieg (aber wo läge ihr Anreiz?), für reine PHP-Entwickler aber eine echte Umstellung, bzw. Herausforderung.
Web-Applikationen würden werthaltiger ... aber auch teurer, da man nicht "mal eben" etwas "hinferkeln" kann. (Was eigentlich gut wäre. ;D )
Des weiteren liegt die Hauptentwicklung noch in der Hand von facebook - und so wie 2010 "HipHop" eingestellt wurde, kann 2016 vielleicht "Hack" eingestellt werden. Ohne aktive OS-Community wäre das auch das sofortige Ende von "Hack".

Wirklich bahnbrechend wäre es gewesen, wenn die facebook-Entwickler z.B. C++ als "Scritpsprache" nutzbar gemacht hätten (in einer VM, die den Zugriff auf das Host-System ausschließt).
Das wäre zwar keine neue Sprache, aber eine technologische Neuerung zu Gunsten der Perfomance.
Natürlich lag das nicht im Sinne von facebook, genauso wenig, wie wirklich eine neue Sprache zu entwickeln, da der komplette Plattformcode hätte portiert werden müssen, welcher - laut facebook - 10.000 Menschenjahre Entwicklungszeit umfasst. :)
So nutzen sie ihren vorhandenen PHP-Code in ihrer HHVM und entwickeln Neuerungen in "Hack".

Ketzerisch kann man sagen: Alter Wein in ... äh ... nein .... Alter Kaffee mit "Vanilla Latte" in einem hippen Mug.

Prinzipiell ist die HHVM schon interessant, aber ob "Hack" jemals außerhalb von facebook-Servern eine wirkliche Anwendung erfahren wird, werden die nächsten 5 Jahre zeigen. 

... ich bin skeptisch.

Noch kein Kommentar

(optionales Feld)
(optionales Feld)
Persönliche Informationen speichern?
Hinweis: Alle HTML-Tags außer <b> und <i> werden aus Deinem Kommentar entfernt. URLs oder Mailadressen werden automatisch umgewandelt.