Hack: новая версия PHP с последовательной типизацией
- суббота, 22 марта 2014 г. в 03:10:33
Как и «Вконтакте», Facebook продолжает эксперименты с улучшением языка программирования PHP. Оптимизация обычно делается для повышения производительности и заключается в сокращении набора инструкций, оптимизации компилятора и т.д. Но в этот раз ситуация немного иная: Facebook решил улучшить качество э эффективность самого процесса программирования. Для этого создан новый язык Hack Language, который прозрачно взаимодействует с PHP и выдает код, совместимый с виртуальной машиной, окружением и JIT-компилятором HHVM, так что это еще одна причина для PHP-разработчиков использовать HHVM.
Причиной создания Hack стали проблемы, знакомые каждому разработчику PHP из-за динамической типизации. Незаметные ошибки в коде, которые всплывают только в рантайме. Отсутствие статической типизации облегчает правку кода и ускоряет программирование. Но хочется ведь и быстро, и без ошибок.
Hack сочетает в себе простоту и скорость программирования на PHP со статической типизацией и некоторыми другими функциями, которые есть у современных языков программирования. В принципе, он не сильно отличается от обычного PHP, и именно статическая типизация — главное отличие. Она предполагает связывание возвращаемого значения функции с типом в момент объявления, так что тип не может быть изменен позже. Это облегчает работу компилятора, позволяет раньше выявлять многие ошибки. При этом Hack поддерживает и статическую, и динамическую типизацию — то, что называется последовательной типизацией (gradual typing).
В масштабах Facebook даже небольшое улучшение рабочего инструмента означает существенное повышение производительности, ведь в компании тысячи программистов работают на PHP.