Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ PHP ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ P++, Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ со строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ языка PHP выступили с ΠΈΠ΄Π΅Π΅ΠΉ ΠΏΠΎ созданию Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π° P++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ вывСсти язык PHP Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ PHP ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ сохранСния совмСстимости с ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ web-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ€Π°ΠΌΠΊΠ°Ρ…. Π’ качСствС Π²Ρ‹Ρ…ΠΎΠ΄Π° прСдлагаСтся ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ PHP — P++, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅ΡΡ‚ΠΈΡΡŒ Π±Π΅Π· оглядки Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ сохранСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² язык Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ.

НаиболСС Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌΠΈ измСнСниями Π² P++ станСт ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ использованию строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ примСнСния Ρ‚Π΅Π³ΠΎΠ² «‹?», ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ array() Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ синтаксиса «[]» ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‚ использования глобального пространства ΠΈΠΌΡ‘Π½ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ имя P++ (PHP Plus Plus) ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Π‘++. PHP ΠΈ P++ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ runtime. НС связанныС с синтаксисом Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, структуры Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ для PHP ΠΈ P++, Π½ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ PHP Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ, Π° Π² P++ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ языка.

Код Π½Π° PHP ΠΈ P++ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ раздСлСния ΠΊΠΎΠ΄Π° ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½. ΠŸΡ€ΠΈ этом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΏΠ»Π°Π½ΠΎΠ² ΠΏΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ Π²Π΅Ρ‚ΠΊΠΈ PHP 8, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ планируСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ JIT-компилятор ΠΈ срСдства для обСспСчСния пСрСносимости с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ Π½Π° C/C++. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ P++ ΠΏΠΎΠΊΠ° находится Π½Π° стадии обсуТдСния прСдлоТСния. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ сторонником P++ являСтся Π—Π΅Π΅Π² Бураски (Zeev Suraski), ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΠΈΠ΄Π΅Ρ€ΠΎΠ² сообщСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² PHP, ΡΠΎΠΎΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Zend Technologies ΠΈ Π°Π²Ρ‚ΠΎΡ€ Π΄Π²ΠΈΠΆΠΊΠ° Zend Engine.

Из Π²ΠΎΠ·Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΠΏΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ опасСниС Π² нСдостаткС рСсурсов для продвиТСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ дня Π½Π°Π΄ PHP Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ всСго Π΄Π²Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ сообщСства, конкурСнция с ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ языком Hack (PHP со статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ), ΠΎΠΏΡ‹Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° HHVM (Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счётС ΠΎΡ‚ΠΊΠ°Π·Π°Π²ΡˆΠ΅Π³ΠΎΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ runtime PHP ΠΈ Hack), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ измСнСния сСмантики для строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ стагнации PHP ΠΈ развития Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² P++, вопросы ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ сосущСствования ΠΈ взаимодСйствия PHP ΠΈ P++ (Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° PHP Π² P++ (синтаксис ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΎΠΉΡ‚ΠΈΡΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ потрСбуСтся пСрСписываниС прилоТСния), Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ P++ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ инструмСнтариями для PHP ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² инструмСнтариСв, систСм тСстирования ΠΈ IDE ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½ΠΎΠ²ΠΎΠΉ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru