- PVSM.RU - https://www.pvsm.ru -

Переосмысление Zephir

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

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

Генерация C:

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

Генерация PHP:

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

Использование расширений на C:

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

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

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

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

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

С нетерпением ждем ваших комментариев [8]

Автор: hell0w0rd

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/php-2/55250

Ссылки в тексте:

[1] Статическая типизация: http://zephir-lang.com/types.html#static-types

[2] Именованные параметры: http://blog.zephir-lang.com/post/76596064349/whats-new-in-zephir-v

[3] Сокращения для геттеров/сеттеров: http://zephir-lang.com/oop.html#getter-setter-shortcuts

[4] Типизация возвращаемых значений: http://zephir-lang.com/oop.html#return-type-hints

[5] Исключения, вместо варнингов: http://zephir-lang.com/index.html

[6] Использование методов для скаляров: http://zephir-lang.com/builtin-methods.html

[7] DSL: http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA

[8] С нетерпением ждем ваших комментариев: https://github.com/phalcon/zephir/issues/201

[9] Источник: http://habrahabr.ru/post/212975/