США: Facebook предлагает перейти с PHP на Hack

0

Похоже, что Facebook совершенно не устраивает то, в каком направлении развивается популярный язык веб-программирования PHP. Точно также компанию перестал удовлетворять виртуальный эмулятор PHP HHVM, который компилировал коды PHP в бинарники C++ для более высокой производительности. На фоне этого, компания представила полноценное ответвление PHP под названием Hack, где Facebook устранила некоторые узкие места PHP, а также добавила некоторые функциональные возможности, востребованные Facebook.


Как рассказали в компании, Hack работает на HHVM и использует язык PHP как отправную точку для его синтаксиса. В компании говорят, что большинство PHP-файлов – это по сути и Hack-файлы. Правда, от некоторых функций PHP разработчики отказались, а другие добавили. Самое большое добавление Hack – это возможность статически типировать объекты, а также совместно использовать их с динамическими типируемыми объектами.

Некоторые другие дополнения включают в себя лямбда-выражения и коллекции, которые существуют в некоторых других языках, в частности в Java и JavaScript. Последний, к примеру, использует лямбда-выражения в качестве анонимных функций. И хотя оригинальный PHP тоже имеет поддержку анонимных функций, Facebook утверждает, что Hack требует меньше процессорной активности и потребления памяти для тех же задач.

Многие из новшеств Hack связаны с ускорением и упрощением процесса написания программ. PHP традиционно известен своей простотой в разработке, но также и сложностью дебаггинга в случае отсутствия сторонней поддержки, например код-трейсеров Zend. В Facebook говорят, что Hack может сосуществовать с базой кода PHP-5 и его библиотеками, поэтому разработчикам нет нужды создавать обособленную среду исполнения.

Другой долгосрочной целью является несколько отличная конструкция языка, которая имеет своей целью меньшую уязвимость перед багами. В дополнение к ограничениям по проверке типов данных, сам интерпретатор Hack написан не на C, как PHP, а на OCaml. Этот же язык разработки ранее применялся для написания защищенной системы Mirage OS.

На сегодня доступность Hack является слабым звеном в системе, так как предсобранные двоичные версии пакета есть только под Debian и Ubuntu Linux, а исходники Hack должны компилироваться через интерпретатор OCaml 3.12, который также не существует под некоторые платформы, в частности под Windows. (Facebook/NovostIT)