Programmēšana

Aizmirstiet PHP! Tā vietā Facebook HHVM dzinējs pārslēdzas uz Hack

Facebook Hip Hop virtuālā mašīna (HHVM), ātrs PHP dzinējs, netiks mērķēts uz PHP 7, kas ir jaunākais nozīmīgais PHP izlaidums, bet gan koncentrēsies uz Hack, PHP spinoff.

Nākamā HHVM ilgtermiņa atbalsta izlaišana, versija 3.24, ir paredzēta 2018. gada sākumā, un tā būs pēdējā, kas apņemsies atbalstīt PHP 5.

“Mēģinājums atbalstīt gan PHP 7, gan Hack novestu pie nevēlamiem kompromisiem abās frontēs. Mēs plānojam vēl vairāk atsaistīt sevi no PHP, lai mēs varētu padarīt Hacku izcilu, nerēķinoties ar visiem vecākajiem un tumšākajiem PHP dizaina stūriem, ”paziņoja komandas HHVM komanda.

PHP 7, turpmākais izlaidums (nebija PHP 6 izlaiduma) ir būtiska atkāpšanās no PHP 5, mainot vairāku uzvedību, no kurām dažas nebija savietojamas ar atpakaļejošu datumu. Ar PHP 7, kas attēlo kursu no PHP 5, HHVM celtnieki vēlas darīt to pašu. "Līdz ar to HHVM netiks mērķēts uz PHP 7," sacīja komanda. "HHVM komanda uzskata, ka mums ir skaidrs ceļš, lai padarītu Hacku par fantastisku valodu tīmekļa attīstībai, kas nav saistīta ar tās PHP izcelsmi."

Facebook gadiem ilgi ir izmantojis HHVM gandrīz tikai, lai palaistu Hack. Valoda jau bija novērsusi daudzus PHP5 trūkumus, kurus novērš arī PHP 7, kā arī citus, kurus tas neizlabo, sacīja komanda.

Atbrīvojoties no PHP, HHVM komanda cer nodrošināt izstrādātājiem labāku un labākas darbības pieredzi ar HHVM un Hack. Tajā bija norādītas daudzas funkcijas, bibliotēkas un veiktspējas iespējas. Hackā plānotie dizaina uzlabojumi ietver:

  • pabeigt Hack masīvus ar masīviem līdzīgām datu struktūrām, kuras ir vieglāk pārbaudīt tipā
  • iznīcinot iznīcinātājus un atsauces
  • izmantojot atkritumu savākšanu, lai panāktu izmērāmu veiktspējas uzlabojumu.

Hack tika veidots uz PHP ekosistēmas, un Facebook plāno padarīt HHVM saderīgu ar galveno PHP rīku, piemēram, Composer un PHPUnit, pašreizējām versijām.

Bet galīgais mērķis ir, lai Hack būtu sava pamatsistēmu ekosistēma. Datorurķēšanas rīki un bibliotēkas ietver Hack Standard Library; TypeAssert, lai netipētos datus pārveidotu par drukātiem datiem; un autoloader klasēm, veidu aizstājvārdiem un funkcijām.

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