PHP plus: Proposal P ++ akan membuat dialek yang lebih ketat

Dialek baru PHP, dengan nama kode P ++, dapat dikembangkan sebagai varian yang lebih ketat dari pendahulunya yang dinamis, dengan fitur yang lebih canggih dan lebih sedikit bagasi.

Proposal, yang diapungkan dalam komunitas PHP oleh salah satu pendiri PHP Zeev Suraski, akan memiliki P ++, atau apa pun sebutannya, hidup bersama PHP tetapi tidak terikat oleh filosofi sejarah PHP. P ++ tidak akan menjadi garpu, tetapi akan lebih ketat secara inheren dan bisa lebih berani dengan kompatibilitas ke belakang.

Elemen yang sekarang dianggap sebagai "bagasi", seperti tag pendek, dapat dihapus sementara fitur kompleks, terutama untuk bahasa yang diketik dengan ketat seperti operator ketat atau variabel yang diketik, dapat ditambahkan tanpa memperkenalkan kerumitan yang sama pada dialek PHP.

Seperti PHP itu sendiri, P ++ sebagian besar akan digunakan untuk pengembangan web sisi server. Rilis PHP 8 yang direncanakan sudah diharapkan untuk memperluas PHP di luar pengembangan web, dengan mesin just-in-time dan interoperabilitas dengan pustaka C / C ++.

Sebagian besar kode dalam PHP dan P ++ akan identik. Sebagian besar kode akan dibagikan antara node PHP dan P ++ baik dalam sumber maupun saat runtime. Tetapi mereka akan memiliki implementasi yang berbeda. Binari akan identik.

Yang belum jelas adalah bagaimana sebuah file akan ditandai sebagai file P ++. Mungkin akan ada sundulan khusus di bagian atas. Pembuat juga dapat menemukan cara untuk menandai seluruh namespace sebagai P ++, sehingga kerangka kerja tidak harus menandai setiap file sebagai P ++.

Struktur data, antarmuka server web, subsistem kunci, dan sebagian besar lainnya akan menjadi kode yang sama persis terlepas dari apakah file dijalankan sebagai PHP atau P ++. Namun, dua versi dari potongan kode tertentu harus dipertahankan. Dan P ++ cenderung memiliki pemeriksaan tambahan dibandingkan dengan PHP. Pengembang dapat mencampur dan mencocokkan PHP dan P ++ dalam aplikasi yang sama. Kedua dialek tersebut dapat dijalankan di satu server.

Jika P ++ terjadi, itu berarti evolusi yang berbeda untuk PHP. Fitur yang berkaitan dengan keketatan dan tipe kemungkinan besar akan digunakan di P ++. Bias untuk kompatibilitas mundur akan tetap ada di PHP. Fitur yang tidak terkait, seperti peningkatan performa di mesin atau pengembangan ekstensi, akan tersedia di P ++ dan PHP.

Zuraski menunjukkan opsi potensial untuk bahasa P ++:

  • Tetap menggunakan PHP dinamis, yang tidak akan diterima oleh pendukung bahasa yang lebih ketat.
  • Berkembang menuju PHP yang lebih ketat, tidak dapat diterima oleh pendukung bahasa yang lebih dinamis.
  • Membagi basis kode, kerugian bersih untuk semua orang yang terlibat.
  • Merancang solusi untuk memenuhi kedua audiens, yang dicoba oleh proposal P ++.

Kekhawatiran tentang proposal P ++ meliputi:

  • Mengubah kode PHP menjadi P ++ tidak akan sepele. Seberapa benarnya akan tergantung pada apa yang akhirnya berakhir di P ++.
  • Alat PHP tidak mendukung P ++. Tapi bisa jadi lebih mudah bagi vendor untuk mendukung P ++ daripada mendukung deklarasi granular atau jumlah edisi yang tidak terbatas.
  • Pemutusan kompatibilitas PHP. Tetapi melakukannya melalui dialek baru daripada merusak PHP itu sendiri bisa lebih enak.

P ++ akan berbeda dari bahasa Hack Facebook, yang dibangun di atas PHP, dalam hal:

  • Hack dikembangkan oleh satu perusahaan.
  • Hack dan mesin virtual HHVM yang menyertainya tidak memiliki sarana distribusi besar PHP.