PHP plus: Prijedlog P ++ stvorio bi stroži dijalekt

Novi dijalekt PHP-a, kodnog naziva P ++, mogao bi se razviti kao stroža varijanta svog dinamičnog prethodnika, s naprednijim značajkama i manje prtljage.

Prijedlog, koji bi u PHP zajednicu donio suosnivač PHP-a Zeev Suraski, imao bi P ++ ili kako god se na kraju zove, koji živi zajedno s PHP-om, ali nije vezan povijesnom filozofijom PHP-a. P ++ ne bi bio račvanje, ali bi sam po sebi bio strožiji i mogao bi biti odvažniji s povratnom kompatibilnošću.

Elementi koji se sada smatraju "prtljagom", poput kratkih oznaka, mogli bi se ukloniti dok bi se složene značajke, posebno one za strogo tipizirane jezike, poput strogih operatora ili tipiziranih varijabli, mogle dodati bez uvođenja iste složenosti u PHP dijalekt.

Kao i sam PHP, P ++ bi pretežno bio namijenjen web razvoju na poslužitelju. Očekuje se da će planirano izdanje PHP 8 već proširiti PHP i izvan web razvoja, s pravovremenim mehanizmom i interoperabilnošću s C / C ++ knjižnicama.

Velika većina koda u PHP-u i P ++-u bila bi identična. Većina koda bi se dijelila između PHP i P ++ čvorova i u izvoru i za vrijeme izvođenja. Ali imali bi različite implementacije. Binarne datoteke bit će identične.

Ono što još nije jasno je kako bi datoteka bila označena kao datoteka P ++. Vjerojatno bi na vrhu imao posebno zaglavlje. Graditelji bi također mogli pronaći načine za označavanje čitavih prostora imena kao P ++, tako da okviri ne moraju svaku datoteku označavati kao P ++.

Podatkovne strukture, sučelja web poslužitelja, ključni podsustavi i većina svega ostalog bit će potpuno isti kod, bez obzira izvršava li se datoteka kao PHP ili P ++. Ipak, trebale bi se održati dvije verzije određenih dijelova koda. A P ++ će vjerojatno imati dodatne provjere u odnosu na PHP. Programeri bi mogli kombinirati i podudarati PHP i P ++ u istoj aplikaciji. Oba dijalekta mogla bi se izvoditi na jednom poslužitelju.

Ako se dogodi P ++, to bi za PHP značilo drugačiji razvoj. Strogost i značajke povezane s tipom vjerojatno će se pojaviti u P ++. Predrasude za povratnu kompatibilnost ostat će u PHP-u. Nepovezane značajke, poput poboljšanja performansi motora ili razvoja proširenja, bile bi dostupne i na P ++ i na PHP-u.

Zuraski ističe potencijalne mogućnosti za jezik P ++:

  • Ostati s dinamičnim PHP-om, što zagovornici strožeg jezika ne bi prihvatili.
  • Razvija se prema strožem PHP-u, što nije prihvatljivo zagovornicima dinamičnijeg jezika.
  • Forking kodne baze, neto gubitak za sve uključene.
  • Osmišljavanje rješenja za obje publike, što P ++ prijedlog i pokušava.

Zabrinutost oko prijedloga P ++ uključuje:

  • Pretvaranje PHP koda u P ++ ne bi bilo trivijalno. Koliko će to biti točno ovisit će o tome što će na kraju završiti u P ++.
  • PHP alati neće podržavati P ++. No, dobavljačima može biti jednostavnije podržati P ++, a ne podržavati granulirane deklaracije () ili neograničenu količinu izdanja.
  • Kršenje PHP kompatibilnosti. Ali to učiniti putem novog dijalekta, a ne razbiti sam PHP, moglo bi biti ugodnije.

P ++ bi se razlikovao od Facebookova Hack jezika koji je izgrađen na PHP-u po tome što:

  • Hack je razvila jedna tvrtka.
  • Hack i prateći HHVM virtualni stroj nemaju PHP-ovo veliko distribucijsko vozilo.