PeachPie, PHP compiler untuk .NET

Soeleman 12 Januari 2017

PeachPie, PHP compiler untuk .NET

PeachPie merupakan PHP compiler (yang di buat menggunakan Roslyn) untuk .Net. Dengan ini dimungkinkan menjalankan kode PHP di dalam lingkungan .Net. Dan karena itu pula tools yang biasa di gunakan oleh programmer .Net dapat pula digunakan, terutama untuk debugging.

Bagaimana caranya? Script PHP akan di_compile_ PeachPie menjadi byte-code yang dimengerti dan dijalankan oleh .Net runtime. Di samping itu, kita bisa membuat kode PHP yang menggunakan library yang dimiliki oleh .Net dan sebaliknya. Walaupun ini masih proof-of-concept, PeachPie akan membuka banyak kesempatan bekerja dalam lingkungan .Net dengan menggunakan PHP.

Untuk aplikasi yang masih berbentuk script langsung (contoh WordPress) dapat dijalankan dengan .Net tanpa menggunakan PHP runtime, karena script tersebut dapat di_compile_ dahulu oleh PeachPie. Sedangkan untuk aplikasi yang menggunakan framework perlu ada penyesuaian, ini lebih ke bagaimana framework tersebut menjalankan kode PHP-nya -- yang ini masih work in progress oleh PeachPie, penyesuaian ke cli framework.

Peachpie Website

Roslyn

Membuat compiler sebuah bahasa pemogramman merupakan pekerjaan yang boleh di bilang ajaib, melihat kompleksitas untuk membuat source code menjadi execute binary. CSharp Compiler(csc) dan VisualBasic Compiler(vbc) adalah compiler yang di buat menggunakan C++ (sekarang sudah menggunakan Roslyn) untuk menterjemahkan source code menjadi .net assembly.

Oleh karena tuntutan kebutuhan developer yang memerlukan tooling dan peningkatan fitur di bahasa pemogramman-nya, akan memaksa pembuat compiler merubah-nya. Sayangnya proses itu tidak bisa cepat dilakukan dengan cara tradisional pembuatan compiler. Maka dibuatlah Software Development Kit(SDK) dengan code-name Roslyn. Nama resmi produk ini adalah .Net Compiler Platform, tapi lebih di kenal dengan code-name-nya.

Roslyn akan meng-expose service bahasa pemogramman (seperti C#, VB.Net dan lainnya) lewat API. Inilah yang akan di gunakan untuk membuat tooling seperti code analyzer di luar keperluan bahasa itu sendiri. Intinya Roslyn akan memudahkan kita membuat compiler untuk suatu bahasa dengan kemudahan membuat tooling.

PeachPie menggunakan Roslyn untuk membuat PHP compiler. Dari Roadmap PeachPie di bawah kita bisa melihat masih banyak yang perlu di lakukan dengan Roslyn ini.

alt text

Phalanger

PeachPie sendiri tidak tiba-tiba hadir, ia merupakan re-write dari project Phalanger (PHP Language Compiler). Phalanger adalah sebuah project di Charles University (Prague) pada tahun 2005 dan bahkan sudah memiliki provider(devsense) untuk dukungan komersial. Fokus Phalanger compiler ada di Dynamic Language Runtime(DLR) dan seperti compiler yang di buat dengan tradisional, perkembangannya lambat.

Phalanger sendiri sudah ada cukup lama dan cepat untuk PHP. Dan juga ada banyak aplikasi pendukung untuk bekerja dengannya. Untuk visual-studio ada extension dari devsense(komersial) yang sangat membantu bekerja dengan PHP.

Dan hasilnya benchmark-nya untuk aplikasi WordPress juga menarik. Ini hasil untuk Request.

alt text

Ini hasil untuk Response. Cukup cepat bukan, walau pun versi Phalanger berjalan di .Net atau mono.

alt text

Benchmark

Ada beberapa test yang sudah dilakukan dengan PeachPie. Kita ambil beberapa saja sebagai contoh. Di sini kita melihat potensi dari compiler PeachPie ini.

Property Assignment

Test sederhana ini akan mencoba merubah property sebuah class dalam loop, seperti yang ada di sini. Hasil test untuk Property Assignment dengan native PHP.

alt text

Pi

Menarik juga melihat benchmark dari perhitungan Pi. Bila ingin mencoba sendiri bisa lihat kode-nya di tulisan Computing Pi with Peachpie

alt text

Mungkin lebih mudah melihat komparasi-nya lewat bar chat seperti di bawah.

alt text

.Net

Karena ini dalam lingkungan .Net. Maka ini akan membuka pintu lebar bagi PHP developer untuk mendapatkan potensi yang ada. Jangan heran kalau buat aplikasi mobile(iOS, android, windows-phone) di buat dengan itu. Juga dengan .Net Core akan membuka meng-akses ke Desktop, Service atau IoT seperti Raspberry Pi.

alt text

Visual Studio Code

Dengan adanya Visual Studio Code maka dibuatlah Extension. Ini akan banyak berguna ketika menulis kode dan debug, terlebih sekarang banyak framework yang kadang memerlukan pengaturan.

Peachpie Studio Website

Referensi