Programiranje

Pozabite na PHP! Facebookov motor HHVM namesto tega preklopi na Hack

Facebook-ov Hip Hop Virtual Machine (HHVM), hiter motor za PHP, ne bo ciljal na PHP 7, najnovejšo pomembno izdajo PHP, temveč se bo osredotočil na Hack, PHP spinoff.

Naslednja izdaja dolgoročne podpore HHVM, različica 3.24, bo predvidoma v začetku leta 2018 in bo zadnja, ki se bo zavezala k podpori PHP 5.

»Poskus podpore PHP 7 in Hack bi privedel do neželenih kompromisov na obeh straneh. Načrtujemo se, da se bomo še bolj ločili od PHP-ja, da bomo Hack naredili odličnega, ne da bi morali upoštevati vse najstarejše in najtemnejše kotičke zasnove PHP-ja, «je dejala ekipa ekipe HHVM.

PHP 7, nadaljnja izdaja (ni bilo nobene izdaje PHP 6) predstavlja bistven odmik od PHP 5, ki spreminja več vedenj, od katerih nekatera niso bila združljiva z nazaj. Z načrtovanjem poti PHP 7 od PHP 5 želijo graditelji HHVM storiti enako. "Zato HHVM ne bo ciljal na PHP 7," je dejala ekipa. "Skupina HHVM verjame, da imamo jasno pot do tega, da Hack postane fantastičen jezik za spletni razvoj, ne glede na izvor PHP."

Facebook je leta HHVM uporabljal skoraj izključno za vodenje Hacka. Jezik je že obravnaval številne pomanjkljivosti PHP5, ki jih PHP 7 prav tako odpravlja, pa tudi druge, ki jih ne, je dejala ekipa.

Z odvzemom od PHP-ja ekipa HHVM upa, da bo razvijalcem zagotovila boljše in učinkovitejše izkušnje s HHVM in Hackom. V njem je navedeno veliko funkcij, knjižnic in priložnosti za zmogljivost. Načrtovane izboljšave načrtovanja za Hack vključujejo:

  • dokončanje krakovnih nizov z nizom podobnih podatkovnih struktur, ki jih je lažje preveriti
  • odpravljanje destruktorjev in referenc
  • uporaba zbiranja smeti za merljivo izboljšanje učinkovitosti.

Hack je bil zasnovan na ekosistemu PHP, Facebook pa načrtuje, da bo HHVM združljiv s trenutnimi različicami glavnih orodij PHP, kot sta Composer in PHPUnit.

Toda končni cilj je, da ima Hack lasten ekosistem osrednjih okvirov. Hack orodja in knjižnice v delih vključujejo Hack Standard Library; TypeAssert, za pretvorbo netipiziranih podatkov v tipizirane; in samodejni nalagalnik za razrede, vzdevke in funkcije.

$config[zx-auto] not found$config[zx-overlay] not found