Terjadi pergeseran kebutuhan dari web-platform ke web-framework. Hal ini disebabkan karena perbedaan role antara administrator dengan developer. Web-framework ini bukan hanya untuk membuat web-dinamis dengan cepat namun juga harus siap menjadi dasar pembuatan CMS (Content Management System). Pasar masih menunggu beberapa standar de-facto untuk web-framework.
Bagian ini adalah kesimpulan dari empat judul yang ditulis terakhir yaitu:
Jadi silakan baca keempat judul di atas.
Pada saat memulai blog ini, sebetulnya saya sedang berkecil-hati karena dua hal:
Bagaimanapun, belum terlampau terlambat untuk mencari ilmu.
Dan terutama, membagi ringkasannya kepada yang berminat supaya
Selasa, 03 Februari 2009
Perubahan Requirement Web
Framework versus CMS
Agar dapat berfokus, mari kita bedah CMS menjadi tiga bagian. Yaitu Framework Feature, CMS Core dan CMS Feature. Peletakan ketiganya juga tidak harus kaku, asal jangan digabung semua. Developer CMS berbasis PHP seringkali rancu menggabungkan ketiganya.
Framework Feature
CMS Core: Must-Have-Feature
CMS: Nice Feature
Standar De-Facto Web
Yang sedang terjadi adalah pergeseran filosofi.
"dari web-platform ke web-framework."
Kandidat standar de-facto adalah Rails, Zope dan Coocon.
Secara umum hubungan-nya adalah:. Platform --- Framework -- CMS
Dari suatu Platform bisa dibangun beberapa jenis Framework berbeda. Dari satu Framework dapat dibangun beberapa CMS berbeda. CMS yang sudah jadi tidak dapat diganti frameworknya tanpa mengubah core system CMS itu sendiri. Ini sebabnya usaha membalik proses seringkali tidak sepadan. Ini sebabnya CMS di PHP menjadi kaku. Sangat ironi mengingat tahun 2009 ini CMS berbasis PHP akan sangat laku di pasaran.
Framework di platform PHP kurang bagus karena desain PHP sendiri yang ketinggalan zaman. Sepuluh tahun lalu yang menjadi standar de-facto web-platform adalah ASP dan PHP4. JSP masih merupakan pilihan. Yang kita butuhkan dua tahun belakangan ini adalah standar de-facto untuk web-framework.
Umumnya kita harus mengucapkan selamat tinggal kepada PHP4 maupun ASP. Mengapa? Isunya bukan lagi platform, namun framework. Kalaupun PHP mengeluarkan PHP6, nasibnya akan sama dengan Perl. Arsitektur PHP yang membuat framework di bawahnya tambal sulam. Pengelolaan perubahan requirement di PHP ada di tatar teknis, bukan konsep. Terimakasih PacktPub, sekarang penulis berpindah platform.
Keterlambatan memahami perubahan kebutuhan inilah yang membuat kebanyakan Framework dan CMS tidak menyatu, betapapun hebat features yang dipakai, seradikal apapun konsepnya. Untuk dapat menjadi dasar dari beberapa CMS, suatu Framework harus netral terhadap konsep dalam CMS, tidak terpaku dengan feature-nya.
Jadi masalahnya adalah pergeseran kebutuhan. Lingkup sekarang tidak memenuhi requirement. Requirement sekarang adalah framework yang mendukung pembuatan CMS.
Solusi
"Ganti framework. Keluar lingkup."
Tentunya secara langsung harus ganti platform (bahasa pemrograman) juga. Tiap Platform ternyata memiliki culture masing-masing.
Saat ini belum ada standar de-facto untuk web-framework untuk membuat CMS. Namun kandidatnya ada dua yaitu Rails dan Zope. Rails memakai bahasa pemrograman Ruby sedangkan Zope memakai bahasa pemrograman Python. Beberapa tadi adalah solusi umum (generic) framework yang matang, namun di atasnya, belum banyak pilihan CMS yang mudah di-implementasikan.
Secara lebih detail
Sebetulnya ada framework lain seperti Ruby/Merb dan Python/Django. Namun nasib mereka sama dengan rekannya di PHP5. Yaitu belum berhasil untuk membuat CMS, kecuali untuk para hackers. Sedangkan Java bersifat enterprise dan tidak dibutuhkan untuk pekerjaan yang remeh-temeh.
Lebih Mendetail Mengenai Kandidat
Plone CMS sudah lengkap sistem administrasi-nya, namun berat. Sedangkan Radiant masih jauh di bawah Joomla dalam hal administrasi. Radiant sangat sexy bagi developer. Sebetulnya yang menggairahkan adalah framework-nya yaitu Rails.
Tahun depan akan lebih menarik lagi. Fusi Framework Rails-3/Merb-2 secara radikal berencana membuat dirinya agnostik terhadap kebutuhan spesifik tertentu ini. Artinya, memangkas standar yang telah dibuatnya sendiri.
Radiant diciptakan sebagai CMS minimalis. Membandingkan Radiant dengan Joomla mungkin tidak apple to apple.
Rails membutuhkan waktu untuk menciptakan CMS yang mempunyai fungsi lengkap menyamai joomla. Joomla akan sangat kesulitan untuk menyamai arsitektur Rails. Ini bukan sesuatu yang bagus. Tahapannya masih begitu. Mengingat masa depan rails lebih menjanjikan, harapkan saja ada bundle CMS yang lengkap yang berbasis Rails.
Radiant terlalu sederhana karena memang di-design untuk team kecil. CMS sederhana namun dapat diperluas. Radiant cocok bila developer cuma satu, admin cuma satu dan pengisi content cuma satu. Atau bahkan semua dijadikan satu.
Atau mungkin suatu saat ada alternatif lain yaitu CMS sederhana, namun bisa di-bundle-ulang, baik dengan nama baru, atau dengan nama yang sama. Dengan feature lengkap untuk noobie
Note: Penulis berusaha tidak bias. Sayang sekali penulis masih terbelakang soal Java, belum sempat mencoba Coocon, dan dahulu hanya sempat bermain sebentar dengan Tomcat tanpa menghasilkan satu proyek nyata. Mohon maaf.
Perbedaan Role antara CMS dan Framework
"CMS untuk admin. Framework untuk developer."
Belum ada gabungan Framework-CMS yang berjalan di atas PHP. Dari hasil coba-coba berbagai CMS di atas ternyata kedua-role ini belum ketemu. Pemisahan membuat fokus. Namun yang lebih penting adalah integrasinya.
Hasil survey lalu menuntun ke survey berikutnya yaitu Framework CMS yang menarik berdasarkan platform tertentu untuk proyek kecil, misalnya intranet. Jadi berikutnya penulis mensurvey beberapa framework. Dulu pernah membangun proyek dengan CodeIgniter. Namun sekarang cukup melihat hubungannya dengan CMS.
Targetnya berbeda
Bagi developer yang penting bukanlah kemudahan dalam administrasi, namun kecepatan me-release software. Dalam hal ini yang dibicarakan adalah framework. Mencoba framework baru memang menantang, namun tanpa CMS, framework bukanlah solusi siap pakai.
Trend framework sekarang adalah mendukung MVC (Model-View-Controller). Ada banyak PHP Framework yaitu CodeIgniter, Kohana, Zend, CakePHP, Prado, SeaGull, Dojo dan Symfoni. Tidak semua sudah dicoba. CMS berbasis Zend atau Cake kurang berkembang. Bahkan bisa dibilang tidak ada live-CMS yang terbukti berkembang di bawah Framework berbasis PHP.
Note: Bukan Role CMS
Role untuk developing CMS dan Role untuk penggunaan CMS adalah bidang yang berbeda. Kita tidak membicarakan Role CMS. Berikut adalah role CMS agar jelas.
Masalah
Belum ada gabungan Framework-CMS yang berjalan di atas PHP.
Ya! ternyata belum ada satupun Framework PHP4/PHP5 yang berhasil dibuat untuk mendevelop CMS. Yang terjadi adalah CMS yang mempunyai built-in Framework. Hanya dua CMS yang mempunya built-in framework yang ketat dalam hal MVC yaitu Joomla (1.6) dan SilverStripe.
Jangan salah tangkap, penulis sangat kagum kepada para pembikin CMS ini. Dengan segala hormat, bukan salah mereka kalau ada produk yang lebih cocok bagi pengembang kecil-kecilan.
Permasalahan dari built-in framework adalah tidak modular. Suatu module diciptakan untuk tugas tertentu CMS secara spesifik. Pada saat kebutuhan berkembang, susah untuk membuatnya menjadi general. Akibatnya framework terpaku pada produk tertentu, atau konsep tertentu yang menjadi obsolete di kemudian hari.
Library yang tidak standar dapat menjadi sumber masalah di CMS yang kaku (tidak netral). Contohnya adalah Joomla, kita tidak dapat memasang javascript-mootolos-1.2 tanpa mengubah core system karena Joomla-1.5 telah terpaku pada javascript-mootools-1.1. Mengubah core system berarti menyusahkan diri sendiri saat meng-update Joomla. Pendekatan lain harus dilakukan.
CMS berbasis PHP yang bagus
Terimakasih kepada PacktPub CMS award. Sekarang penulis memiliki bahan untuk meriset berbagai CMS berbasis PHP agar tidak lagi seperti katak dalam tempurung. Pendekatannya pragmatis untuk pekerjaan sehari-hari, bukan akademis yang bermain konsep.
Tujuan awal sebetulnya hanya mencari CMS berbasis PHP yang lebih baik Joomla untuk proyek kecil, terutama dari sisi kecepatan developing. Butuh waktu tiga bulan untuk mencoba-coba.Research CMS
Yang sudah dicoba:
Bila kelengkapan di atas cukup membuat ngeri, mungkin anda dapat mengerti alasan penulis, mengapa tidak memberi penjelasan mendetail (secara panjang lebar lebih lanjut yang tentunya sangat membosankan).
Hasilnya:
Secara umum ada gerakan untuk goPHP5 di roadmap mereka kecuali community WordPress yang menentang advokasi goPHP5. Trend di forum maupun official roadmap mudah ditebak. Dengan OOP di PHP5, developer PHP-based-CMS berencana membuat framework.
Tidak ada perubahan radikal di CMS yang telah disebutkan di atas, kecuali sapphire yang untuk pertama kalinya memisahkan framework dari nol, lalu mengintegrasikan dengan CMS SilverStripe. Lalu membuat built-in ORM yang tidak lazim. Sungguh langkah yang sangat berani.
Catatan: Project yang di-exclude:
Sebagai pengembang, penulis tidak puas dengan CMS berbasis PHP karena tidak memiliki framework yang dapat menjadi dasar pengembangan.
Alternatif Perangkat Lunak di Desktop Windows
Bagi yang sudah merasakan enaknya memakai Mozilla Firefox. Mungkin tahu bahwa perangkat lunak yang tidak ada serial-number-nya bisa lebih baik. Walaupun beberapa orang membenci openoffice.org, tetap saja banyak orang lain melakukan migrasi. Daftar software berikut pilihan bagus, bukan hanya karena gratis, namun juga agar pembaca tidak perlu was-was karena legal. Artikel ini berisi daftar software yang menarik agar pembaca tidak perlu survey sendiri.
Bila anda pengguna Windows. Software gratis yang popular dapat dicari di downloads.com atau FileHippo. Walaupun penulis memakai Debian, namun penulis sering membuat kompilasi DVD bagi yang belum siap bermigrasi ke linux. Saat ini lebih mudah mengunduhnya dari internet langsung, maka jadilah artikel ini.
Berikut di bawah adalah perangkat lunak cross platform yang layak dicoba. Tidak semua dimasukkan hasil kompilasi ditulis di sini.
Desktop Pribadi/Kantor:
Tools:
Grafis:
Developer Tools:
Java Based
Lumayan bagi yang tidak menyukai b*j*k*n.
Berikut tidak cross-platform, namun layak dicoba:
Cross Platform namun kurang nyaman bagi pengguna windows:
Masih banyak usaha komunitas untuk melakukan port ke MS-Windows/Mac sehingga aplikasi menjadi cross-platform. Beberapa tahun lagi bahkan kita dapat melihat windows diganti oleh ReactOS (bukan linux). Desktop milik XP akan dapat diganti dengan GNOME 3.0 dan Windows on KDE. Sementara itu, Linux akan hidup damai berdampingan dengan Hurd.
Ada lagi trend baru bagi developer, yaitu mendefinisikan ulang kebutuhan paling mendasar, lalu memangkas berbagai kelebihan/ feature yang tidak perlu. Ini antithesis paradigma sekarang yang menjejalkan berbagai feature yang tidak perlu.
Ada yang mau nambah?
Penulis juga butuh jurus baru.
Selamat Mencoba. Sampai jumpa!
Terima Kasih Perhatiannya.
~epsi
Situs favorit untuk open-source: Kambing.
Framework favorit: Rails.