HipHop (транслятор)
HipHop for PHP (HPHPc, букв. HipHop для языка PHP) — транспайлер исходного кода, созданный компанией Facebook и использовавшийся ранее в проектах компании. HipHop программно превращает исходный код, написанный на языке PHP, в оптимизированный код на C++, а затем использует компилятор g++ для его компиляции. HipHop включает в себя транслятор кода, альтернативную реализацию среды выполнения PHP, а также множество наиболее распространённых расширений PHP (англ. PHP Extensions), переписанных на C с целью повышения производительности[7].
HipHop for PHP (HPHPc) | |
---|---|
Тип | среда выполнения и транслятор |
Разработчик | |
Написана на | C++, C, PHP |
Первый выпуск | 2 февраля 2010[1] |
Последняя версия | Заменён на HHVM[2][3] (2013 ) |
Состояние | Разработка прекращена |
Лицензия | PHP License |
Сайт | github.com/facebook/hiph… |
HipHop Virtual Machine (HHVM) | |
---|---|
Тип | среда выполнения и транслятор |
Разработчик | |
Написана на | C++, C |
Первый выпуск | 9 декабря 2011[4] |
Последняя версия | 3.25.2[5] (30 марта 2018 ) |
Состояние | Active |
Лицензия | PHP License and Zend License[6] |
Сайт | hhvm.com |
HipHop был создан разработчиками социальной сети Facebook для экономии ресурсов их серверов. Код было решено выпустить 2 февраля 2010 года в виде открытого ПО[8]. Однако релиз кода был задержан из-за проблем с очисткой исходного кода от специфичных для Facebook расширений. Исходный код проекта стал доступен 20 февраля 2010 года[9].
Ими же был разработан HPHPi, представляющий собой экспериментальный интерпретатор PHP, предназначенный для отладки и быстрого прототипирования кода, не полностью совместимый с HPHPc. Интерпретатор разрабатывался с целью экономии затрат времени на частую перекомпиляцию программного кода в процессе разработки.
HHVM
В 2011-ом году в Facebook была разработана первая версия HHVM — экспериментальной виртуальной машины, на тот момент предназначавшейся для исполнения и JIT оптимизации PHP кода. Наличие HHVM, в частности, позволило отказаться от параллельного использования интерпретатора HPHPi (в процессе разработки) и компилятора HPHPc (при эксплуатации). В 2013-ом году сервера facebook.com были переведены на использование HHVM[10].
20 марта 2014 года Facebook был официально представлен язык программирования Hack[11], близкий к PHP и реализованный поверх HHVM, в котором дополнительно введена статическая типизация[12]. Первый вариант спецификации этого языка[13] опубликован 19 февраля 2015 года[14].
6 января 2015 года был окончен 9-месячный процесс перевода на использование HHVM серверов проекта Wikipedia, в ходе которого была проделана дополнительная работа по доработке HHVM[15][16][17].
В сентябре 2017 года Facebook объявила[18], что более не ставит своей целью обеспечение совместимости HHVM с PHP (в пользу собственного языка Hack). В том же месяце началась миграция проекта Wikipedia на PHP 7[19].
См. также
Примечания
- Haiping Zhao. HipHop for PHP: Move Fast . Facebook (2 февраля 2010). Дата обращения: 2 августа 2014.
- Drew Paroski. Speeding up PHP-based development with HHVM . Facebook (29 ноября 2012). Дата обращения: 2 августа 2014.
- Paul Tarjan. Joining, Retirement, Testing, and Bankruptcy . hhvm.com (13 мая 2013). Дата обращения: 2 августа 2014.
- Jason Evans. The HipHop Virtual Machine . Facebook (2011-12-09.mdy.2022). Дата обращения: 2014-08-02.mdy.2022.
- facebook/hhvm: Release HHVM-3.25.2 . github.com. Facebook (2018-03-30.mdy.2022). Дата обращения: 2018-03-30.mdy.2022.
- facebook/hhvm: License . github.com. Facebook. Дата обращения: 2014-08-02.mdy.2022.
- HipHop for PHP: Move Fast (англ.)
- PHP Creator Asks, Is Facebook’s HipHop Just a 'Nifty Trick'? (англ.)
- Сборка и запуск HipHop-PHP
- Joining, Retirement, Testing, and Bankruptcy | HHVM
- Julien Verlaguet, Alok Menghrajani. Hack: a new programming language for HHVM, facebook code (20 марта 2014). Дата обращения 24 марта 2014.
- hacklang.org — официальный сайт языка Hack
- Specification for Hack . github. Дата обращения: 22 февраля 2015.
- Joel Marcey. Announcing a Specification for Hack, HHVM Blog (February 19, 2015). Дата обращения 22 февраля 2015.
- Проект Wikipedia перешёл на использование HHVM для выполнения PHP-кода, OpenNET (07.01.2015). Дата обращения 22 февраля 2015.
- Brett Simmers. Wikipedia on HHVM, HHVM Blog (January 6, 2015). Дата обращения 22 февраля 2015.
- HHVM — MediaWiki . Дата обращения: 22 февраля 2015.
- The Future of HHVM | HHVM
- Migrate to PHP 7 in WMF production . Дата обращения: 24 марта 2019.
Литература
- Josh Lockhart. Chapter 12 HHVM and Hack // Modern PHP: New Features and Good Practices. — O’Reilly Media. — P. 187-204. — 268 p. — ISBN 978-1-4919-0518-0.
Ссылки
- Репозиторий проекта // Страница Facebook на GitHub (англ.)
- Facebook переписывает PHP (недоступная ссылка) // 3Dnews, 04.02.2010
- Facebook превратил PHP в C++ // Lenta.ru, 3 февраля 2010
- Facebook Technology Tasting — HipHop for PHP Архивная копия от 6 февраля 2010 на Wayback Machine // Ustream.tv — видеолекция, посвященная проекту (англ.)
- «Хип-хоп» от Facebook превращает PHP в С++ Архивная копия от 11 февраля 2010 на Wayback Machine // 3DNews, 08.02.2010