После нескольких месяцев работы над Zephir мы очень довольны прогрессом. В течение нескольких месяцев мы выпустим бета-версию и сможем использовать все ее возможности. Проект собрал более 1000 коммитов и все еще многое нужно сделать. Проект позволил нам провести больше исследований в области computer science и это было очень интересно для нас.
Кроме того, хоть мы и не уверенны, на счет того, что произойдет с PHP в будущем, так или иначе — мы создаем инструмент, который позволяет использовать еще одну возможность PHP (расширения на C), которая раньше была доступна только опытным C программистам.
Также в Zephir мы реализовали фичи, о которых многие мечтали, но по тем или иным причинам их нет в PHP сейчас:



Мы верим, что все это поможет нам улучшить фреймворк и может помочь вам в создании собственных инструментов новым способом. Не всем нужны эти фичи и не все с ними согласны, но так или иначе мы надеемся, что однажды они таки окажутся в PHP. Что бы не произошло, мы надеемся что PHP продолжит развивать��я несмотря на пройденный путь.
Zephir изначально задуман, как высокоуровневый язык, создающий абстракцию над низкоуровневыми деталями ядра PHP. Он генерирует код на C, который в последствии может быть скомпилирован популярными компиляторами такими как gcc/clang/vc.
Так как Zephir высокоуровневый язык, он может работать, как мета-язык, а не просто DSL.
После некоторого обдумывания, я создал этот топик, чтобы обсудить с вами новую идею.
Если мы переделаем Zephir так, чтобы он мог генерировать и PHP и C код, тогда Zephir станет более мощным и гибким.

Генерация C:

  • Код может быть скомпилирован, повысится производительность и уменьшится расход памяти.
  • Появляется некоторый важный уровень защиты
  • Код экспортируется как C расширение


Генерация PHP:

  • PHP запустится везде, где сам php доступен (шаред-хостинги, серверы с ограничениями, другие реализации PHP)
  • Код экспортируется как библиотека на PHP


Использование расширений на C:
  • На продакшене, когда производительность необходима и установка расширения осуществима


Использование PHP:

  • Разработка/Тестирование, другие реализации PHP


Возможные минусы

  • С-код-блоки не могут быть перенесены в PHP
  • Интеграция с C-библиотеками не может быть экспортирована в PHP
  • Возможные несовместимости, из-за разных сред выполнения (может быть решено с помощью тестов)


С нетерпением ждем ваших комментариев
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Проведем хабра-голосование!
27.92%Реализовать трансляцию в PHP сейчас79
47.7%Отложить это до выхода стабильной (1.0) версии135
24.38%Не реализовывать этого вообще69
Проголосовали 283 пользователя. Воздержались 85 пользователей.