Wat is Hack?
Hack is de naam van een door Facebook ontwikkelde en gebruikte variatie op de scriptingtaal PHP. Eén van de grootste verschillen tussen de twee talen is dat Hack, dat in 2014 werd geïntroduceerd, zowel dynamic typing als static typing toestaat. Dit wordt ook wel gradual typing genoemd.
Om fouten in computerprogramma's te verminderen, is het bij veel programmeertalen mogelijk om voor ieder construct, zoals een variabele of een functie, expliciet het type aan te geven. Zo kan een variabele onder meer een integer (getal), string (serie karakters) of een boolean (true/false) zijn. De expliciete typering van zo'n construct wordt static typing genoemd. Dynamic typing betekent daarentegen dat deze typering niet door de programmeur (compile-time) maar door de computer wordt bepaald op het moment dat het programma wordt uitgevoerd (run-time).
Een combinatie van static en dynamic typing is ook mogelijk. In sommige programmeertalen zijn bijvoorbeeld ook vele subtypen mogelijk, zoals verschillende integer- of karaktertypen. Om fouten te voorkomen is het voor de programmeur meestal voldoende om het hoofdtype aan te geven (static typing). Het is dan veilig om de verdere typering aan de computer over te laten. Deze combinatie noemt men gradual typing.
Hack is volledig compatibel met PHP. Dat wil zeggen: de meeste PHP-scripts zijn ook geldig in Hack, dat daarom vooral als een extensie voor PHP kan worden gezien. Andersom werkt het niet, en voor het uitvoeren van Hack-scripts is dan ook de HipHop Virtual Machine (HHVM) benodigd.