Programování

PHP plus: Návrh P ++ by vytvořil přísnější dialekt

Nový dialekt PHP s kódovým názvem P ++ by mohl být vyvinut jako přísnější varianta jeho dynamického předchůdce s pokročilejšími funkcemi a menšími zavazadly.

Tento návrh, který v komunitě PHP zavedl spoluzakladatel PHP Zeev Suraski, by měl P ++, nebo jak se to nakonec jmenuje, žít po boku PHP, ale není vázán historickou filozofií PHP. P ++ by nebyla vidlice, ale byla by ze své podstaty přísnější a mohla by být odvážnější se zpětnou kompatibilitou.

Prvky, které jsou nyní považovány za „zavazadla“, jako jsou krátké značky, lze odstranit, zatímco složité funkce, zejména ty pro přísně zadané jazyky, jako jsou přísné operátory nebo zadané proměnné, lze přidat, aniž by to vneslo do dialektu PHP stejnou složitost.

Stejně jako samotné PHP by P ++ bylo převážně pro vývoj webů na straně serveru. Očekává se, že plánované vydání PHP 8 již rozšíří PHP nad vývoj webových aplikací, s modulem just-in-time a interoperabilitou s knihovnami C / C ++.

Drtivá většina kódu v PHP a P ++ by byla identická. Většina kódu by byla sdílena mezi uzly PHP a P ++, a to jak ve zdroji, tak za běhu. Měli by ale různé implementace. Binární soubory budou identické.

Zatím není jasné, jak by byl soubor označen jako soubor P ++. Pravděpodobně by to mělo speciální záhlaví nahoře. Tvůrci také mohli najít způsoby, jak označit celé jmenné prostory jako P ++, takže rámce nemusí každý soubor označit jako P ++.

Datové struktury, rozhraní webového serveru, klíčové subsystémy a většina všeho bude přesně stejný kód bez ohledu na to, zda je soubor spuštěn jako PHP nebo P ++. Přesto by musely být zachovány dvě verze určitých částí kódu. A P ++ pravděpodobně bude mít ve srovnání s PHP další kontroly. Vývojáři mohli kombinovat PHP a P ++ ve stejné aplikaci. Oba dialekty lze provozovat na jednom serveru.

Pokud dojde k P ++, znamenalo by to pro PHP jiný vývoj. Přísnost a funkce související s typem pravděpodobně půjdou v P ++. Předpětí pro zpětnou kompatibilitu zůstane v PHP. Nesouvisející funkce, jako je vylepšení výkonu v enginu nebo vývoj v rozšířeních, budou k dispozici v P ++ i PHP.

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

  • Pobyt s dynamickým PHP, který by nepřijali navrhovatelé přísnějšího jazyka.
  • Vývoj směrem k přísnějšímu PHP, nepřijatelný pro zastánce dynamičtějšího jazyka.
  • Rozvětvení základny kódu, čistá ztráta pro všechny zúčastněné.
  • Vytvoření řešení pro obě cílové skupiny, o které se pokusí návrh P ++.

Obavy z návrhu P ++ zahrnují:

  • Převod kódu PHP na P ++ by nebyl triviální. Jak pravdivé to bude, bude záviset na tom, co nakonec skončí v P ++.
  • Nástroje PHP nebudou podporovat P ++. Pro dodavatele by ale mohlo být jednodušší podporovat P ++, než podporovat granular declare () s nebo neomezené množství edic.
  • Prolomení kompatibility s PHP. Ale dělat to pomocí nového dialektu, spíše než rozbít samotné PHP, by mohlo být chutnější.

P ++ by se lišil od jazyka Facebook Hack, který byl postaven na PHP, v tom, že:

  • Hack byl vyvinut jedinou společností.
  • Hack a doprovodný virtuální stroj HHVM nemají velké distribuční vozidlo PHP.
$config[zx-auto] not found$config[zx-overlay] not found