Morph, sebuah pustaka fullstack yang dapat disematkan untuk membangun Aplikasi Berbasis Hypermedia tanpa tahap build, telah memicu perdebatan seru di antara para pengembang tentang manfaat menggabungkan kode sisi server dan klien dengan cara mirip PHP. Pustaka ini, yang berjalan di atas Hono dan mendukung runtime Deno, Node, dan Bun, bertujuan menyederhanakan pengembangan web dengan memungkinkan komponen memanggil API mereka sendiri yang mengembalikan hypertext.
Runtime yang Didukung
- Deno
- Node.js
- Bun
Perbandingan dengan PHP
Banyak pengembang dalam komunitas telah menarik persamaan antara pendekatan Morph dan model tradisional PHP yang mencampur HTML dan kode. Perbandingan ini telah memicu diskusi signifikan tentang praktik pengembangan modern versus paradigma lama. Salah satu komentator dengan tegas mengamati bahwa pengembangan PHP modern telah berevolusi menjauhi pencampuran logika bisnis dengan template:
Modern PHP is not written in such a way where business logic is mixed with templating. For good reason.
Sentimen ini mencerminkan pergeseran industri yang lebih luas menuju pemisahan kepentingan dalam pengembangan web, di mana logika presentasi dipisahkan dari logika bisnis. Perdebatan berpusat pada apakah pendekatan Morph merupakan kemunduran ke praktik lama atau penyederhanaan pragmatis untuk kasus penggunaan tertentu.
Pertimbangan Arsitektur
Beberapa pengembang mengangkat kekhawatiran tentang bagaimana arsitektur Morph akan menangani tantangan penskalaan. Satu pengembang mencatat bahwa Morph tampaknya melewatkan salah satu poin utama penjualan PHP, yaitu metodologi shared nothing, single thread, fire and forget yang dapat diletakkan di belakang load balancer dan menjalankan 100 server. Ini menyoroti pertimbangan penting untuk setiap framework web: seberapa baik kinerjanya di bawah beban dan dalam lingkungan terdistribusi.
Diskusi juga menyentuh tentang apa yang merupakan esensi dari pengembangan mirip PHP. Beberapa berpendapat bahwa hanya mencampur HTML dan kode melalui JavaScript tagged template literals sudah mencapai apa yang dilakukan PHP, mempertanyakan nilai tambah apa yang diberikan Morph selain beberapa manfaat CSS dan templating lainnya.
Prinsip Inti Morph
- Komponen dapat memanggil API mereka sendiri yang mengembalikan hypertext
- Semua komponen di-render di sisi server dengan akses konteks sisi server
- Rendering dan re-rendering komponen secara independen
- Hierarki komponen dengan kemampuan bersarang
- JavaScript sisi klien minimal atau tidak ada
- Tidak memerlukan tahap build
- Tidak perlu merancang struktur data API terlebih dahulu
- Dapat disematkan di proyek Deno/Node/Bun manapun
Pengembangan Berorientasi Komponen
Pendekatan Morph tampaknya lebih condong ke pengembangan berorientasi komponen mirip dengan framework seperti Blazor atau Angular, daripada PHP tradisional. Pustaka ini menekankan komponen yang dirender server yang dapat dirender ulang secara independen dan disusun satu sama lain, membentuk hierarki. Model ini bertujuan untuk menggabungkan manfaat rendering sisi server dengan sifat dinamis aplikasi halaman tunggal, sambil meminimalkan JavaScript sisi klien.
Bagi pengembang yang bekerja pada proyek lebih kecil seperti bot Telegram, aplikasi desktop, atau alat internal, Morph menawarkan pengalaman pengembangan yang berpotensi lebih efisien yang tidak memerlukan pemisahan frontend dan backend menjadi layanan terpisah. Fokus pustaka ini pada tidak adanya tahap build dan JavaScript sisi klien yang minimal memposisikannya sebagai alternatif untuk framework yang lebih berat untuk proyek yang tidak memerlukan kompleksitas tersebut.
Seiring evolusi pengembangan web, alat seperti Morph mewakili eksperimen menarik dalam menemukan keseimbangan yang tepat antara pengalaman pengembang, kinerja, dan pemeliharaan. Apakah pendekatannya akan mendapatkan adopsi luas akan bergantung pada seberapa baik ia mengatasi kekhawatiran yang diangkat oleh komunitas pengembang sambil memenuhi janjinya tentang penyederhanaan.
Referensi: Morph