PHP плюс: Предложението P ++ ще създаде по-строг диалект

Нов диалект на PHP, с кодово име P ++, може да бъде разработен като по-строг вариант на своя динамичен предшественик, с по-разширени функции и по-малко багаж.

Предложението, пуснато в PHP общността от съоснователя на PHP Зеев Сураски, би имало P ++ или каквото и да е в крайна сметка, живеещо заедно с PHP, но не обвързано от историческата философия на PHP. P ++ не би бил вилица, но по своята същност би бил по-строг и би могъл да бъде по-смел с обратна съвместимост.

Елементи, които сега се считат за „багаж“, като например кратки тагове, могат да бъдат премахнати, докато сложни функции, особено тези за строго типизирани езици като строги оператори или въведени променливи, могат да бъдат добавяни, без да се въвежда същата сложност в диалекта на PHP.

Подобно на самия PHP, P ++ ще бъде предимно за уеб разработка от страна на сървъра. Планираното издание на PHP 8 вече се очаква да разшири PHP отвъд уеб разработката, с механизъм точно навреме и оперативна съвместимост с C / C ++ библиотеки.

По-голямата част от кода в PHP и P ++ ще бъдат идентични. Повечето кодове ще бъдат споделени между PHP и P ++ възли както в източника, така и по време на изпълнение. Но те биха имали различни изпълнения. Двоичните файлове ще бъдат идентични.

Все още не е ясно как даден файл ще бъде маркиран като P ++ файл. Вероятно щеше да има специален хедър в горната част. Конструкторите също могат да намерят начини да маркират цели пространства от имена като P ++, така че рамките не трябва да маркират всеки файл като P ++.

Структурите на данни, интерфейсите на уеб сървъра, ключовите подсистеми и почти всичко останало ще бъдат абсолютно същият код, независимо дали файлът се изпълнява като PHP или P ++. И все пак трябва да се поддържат две версии на определени части от кода. И P ++ вероятно ще има допълнителни проверки в сравнение с PHP. Разработчиците могат да комбинират и съчетават PHP и P ++ в едно и също приложение. И двата диалекта могат да се изпълняват на един сървър.

Ако се случи P ++, това би означавало различна еволюция за PHP. Строгостта и свързаните с типа функции характеристики вероятно ще отидат в P ++. Пристрастията за обратна съвместимост ще останат в PHP. Свързани функции, като подобрения на производителността на двигателя или разработки в разширения, ще бъдат налични както в P ++, така и в PHP.

Зураски посочва потенциалните възможности за езика P ++:

  • Да останете с динамичен PHP, който не би бил приет от поддръжниците на по-строг език.
  • Еволюира към по-строг PHP, неприемлив за поддръжниците на по-динамичен език.
  • Форкирането на кодовата база, чиста загуба за всички участващи.
  • Разработване на решение за обслужване на двете аудитории, което е опитът на предложението P ++.

Притесненията относно предложението P ++ включват:

  • Преобразуването на PHP код в P ++ не би било тривиално. Колко вярно ще зависи от това, което в крайна сметка се оказва в P ++.
  • PHP инструментите няма да поддържат P ++. Но може да е по-просто за доставчиците да поддържат P ++, вместо да поддържат детайлни декларации () или неограничен брой издания.
  • Нарушаване на съвместимостта с PHP. Но това по-скоро чрез нов диалект, отколкото самото разбиване на PHP, може да бъде по-вкусно.

P ++ ще се различава от езика на Hack на Facebook, който е изграден върху PHP, по това:

  • Хакът е разработен от една компания.
  • Hack и придружаващата виртуална машина HHVM нямат голямо разпространително средство на PHP.