Возможно ли поддерживать php HipHop код?
Я много читал о PHP HipHop-проекте Facebook, но одна вещь, которую я не могу понять (у меня нет 64-битной машины для тестирования HipHop), это то, можно ли использовать HipHop просто как инструмент преобразования проекта, а не просто для компиляции двоичного файла.
По сути, если бы кто-то был настолько склонен пытаться преобразовать приложение PHP CLI в C++ с использованием HipHop, можно ли было бы просто поддерживать его в C++ в будущем, вместо того, чтобы каждый раз использовать HipHop?
2 ответа
Я ожидаю, что автоматически переведенный код будет сложнее поддерживать, чем рукописный код. Он будет создан компьютером, чтобы вы могли избавиться от таких вещей, как петли во многих местах. Многие вещи могут быть неоптимальными (прямой перевод не всегда может быть приспособлен к идиомам), и после ручной настройки на некоторое время это будет смесь стилей (автоматически сгенерированных и написанных от руки), которые станут кошмаром обслуживания.
По сути, вы должны относиться к этому коду C++ как к двоичному после обычной компиляции. Не могли бы вы немного подправить это, чтобы добавить новую функциональность? Нет, вы бы отредактировали исходный код и затем перекомпилировали его. Это то, что вы должны сделать здесь. C++ генерируется и является промежуточным представлением. Тот факт, что он написан на понятном человеку языке, не должен искушать вас изменить его.
Исходный код C++, сгенерированный HipHop, вполне может быть изменен. Люди используют HipHop для этого. Не было бы смысла расширяться на C++, сгенерированный HipHop, так как за ним не так просто следовать, как рукописному коду (или где-то почти столь же эффективно), но для небольших изменений (возможно, оптимизации) это можно сделать.
Также HipHop можно использовать для создания базы, которую вы можете затем полностью переписать, если хотите конвертировать PHP-скрипт в C++. Вы можете начать с просмотра кода, сгенерированного HipHop, чтобы помочь вам переписать все это вручную.