Programovanie

PHP plus: Návrh P ++ by vytvoril prísnejší dialekt

Nový dialekt jazyka PHP s kódovým označením P ++ by sa mohol vyvinúť ako prísnejšia varianta jeho dynamického predchodcu s pokročilejšími funkciami a menšou batožinou.

Tento návrh, ktorý v komunite PHP predloží spoluzakladateľ PHP Zeev Suraski, bude mať P ++, alebo ako sa to nakoniec volá, žiť popri PHP, ale nebude viazaný historickou filozofiou PHP. P ++ by nebol vidličkou, ale bol by zo svojej podstaty prísnejší a so spätnou kompatibilitou by mohol byť odvážnejší.

Prvky, ktoré sa v súčasnosti považujú za „batožinu“, ako napríklad krátke značky, by sa dali odstrániť, zatiaľ čo zložité funkcie, najmä tie pre prísne zadané jazyky, ako sú prísne operátory alebo zadané premenné, by sa dali pridať bez zavedenia rovnakej zložitosti do dialektu PHP.

Rovnako ako samotné PHP, aj P ++ by bolo prevažne na vývoj webov na strane servera. Očakáva sa, že plánované vydanie PHP 8 už rozšíri PHP nad rámec webového vývoja, s motorom just-in-time a interoperabilitou s knižnicami C / C ++.

Drvivá väčšina kódu v PHP a P ++ by bola identická. Väčšina kódu by bola zdieľaná medzi uzlami PHP a P ++, a to ako v zdroji, tak aj za behu. Mali by však rôzne implementácie. Binárne súbory budú identické.

Zatiaľ nie je jasné, ako by bol súbor označený ako súbor P ++. Asi by to malo špeciálnu hlavičku v hornej časti. Stavitelia tiež mohli nájsť spôsoby, ako označiť celé priestory názvov ako P ++, takže rámce nemusia označovať každý súbor ako P ++.

Dátové štruktúry, rozhrania webového servera, kľúčové subsystémy a hlavne všetko ostatné bude presne ten istý kód bez ohľadu na to, či sa súbor vykonáva ako PHP alebo P ++. Stále by bolo potrebné zachovať dve verzie určitých častí kódu. A P ++ pravdepodobne bude mať v porovnaní s PHP ďalšie kontroly. Vývojári mohli kombinovať PHP a P ++ v tej istej aplikácii. Oba dialekty bolo možné spustiť na jednom serveri.

Ak dôjde k P ++, znamenalo by to pre PHP iný vývoj. Prísnosť a typové vlastnosti pravdepodobne pôjdu v P ++. Predpätie pre spätnú kompatibilitu zostane v PHP. Nesúvisiace funkcie, ako napríklad vylepšenie výkonu v jadre alebo vývoj rozšírení, by boli k dispozícii v P ++ aj PHP.

Zuraski poukazuje na možné možnosti pre jazyk P ++:

  • Zostať pri dynamickom PHP, ktoré by navrhovatelia prísnejšieho jazyka neprijali.
  • Vývoj smerom k prísnejšiemu PHP, čo je neprijateľné pre zástancov dynamickejšieho jazyka.
  • Vidlica kódu, čistá strata pre všetkých zúčastnených.
  • Navrhnutie riešenia zameraného na obe publiká, o čo sa pokúša návrh P ++.

Medzi obavy týkajúce sa návrhu P ++ patria:

  • Konverzia kódu PHP na P ++ by nebola triviálna. To, aká je to pravda, bude závisieť od toho, čo nakoniec skončí v P ++.
  • Nástroje PHP nebudú podporovať P ++. Pre dodávateľov by však mohlo byť jednoduchšie podporovať P ++, ako podporovať granular declare () alebo neobmedzené množstvo vydaní.
  • Porušenie kompatibility s PHP. Ale robiť to pomocou nového dialektu a nie rozbíjať samotné PHP by mohlo byť chutnejšie.

Jazyk P ++ by sa líšil od jazyka Hack’s Facebook, ktorý bol postavený na PHP, v tom, že:

  • Hack bol vyvinutý jedinou spoločnosťou.
  • Hack a sprievodný virtuálny stroj HHVM nemajú veľké distribučné vozidlo PHP.