Новый язык Hack является прямым потомком PHP, основанным на его синтаксисе. Hack создан специально для виртуальной машины HHVM (Hip Hop Virtual Machine). Команда Facebook полностью перевела разработку на новый язык и называет эту миграцию большим успехом. Однако Facebook не отказывается от поддержки PHP и планирует доработать поддержку PHP5 в HHVM.
Подробная документация по языку доступна здесь (на английском языке).
Официальный сайт нового языка — http://hacklang.org/.
Новость о релизе языка.
Пример кода
<?hh
class MyClass {
public function alpha(): int {
return 1;
}
public function beta(): string {
return 'hi test';
}
}
function f(MyClass $my_inst): string {
// Fix me!
return $my_inst->alpha();
}
Возможности нового языка
Основной особенностью Hack стала реализация статической типизации. Это потребовало отключения некоторых возможностей языка, таких как переменная в переменной $$ и функция extract (неявное создание переменных в таблице символов из массива).
Также было внедрено множество фичей из современных языков программирования: обобщенное программирование, псевдонимы типов, обнуляемые типы и ограничения на параметры типов, коллекции, лямбды, а также проверка возвращаемых типов и типов параметров во время выполнения.
Типы проверяются специальным сервером (сервисом, демоном), который следит за изменением файлов исходного кода на диске.
Каким образом оповещается программист, пока не ясно, но вместе с Hack в комплекте идет несколько инструментов..
Спасибо, Facebook, возможно это то, чего так долго не хватало PHP!
Автор: sferrka