Klorofil Explained - Part 1
Sambil merefactor kode klorofil/purefect untuk rilis yang sebentar lagi dilakukan, saya mo bagi motivasi, idealisme dan cerita-cerita dibalik project klorofil. Tujuannya sih supaya yang lain bisa ngerti dan ikut ngembangin, ato kalo tiba-tiba saya harus cabut dari project ini, mudah-mudahan project ini tetep bisa jalan.
Pada bagian ini saya mo nerangin tentang klorofil. Dibagian-bagian selanjutnya nanti saya akan menjelasin tentang purefect desktop, dan hubungan antar klorofil platform dan purefect desktop dan teknologi-teknologi spesifik yang ada klorofil seperti object serialization dan distributed object (televoke).
Klorofil
——–
Pertanyaan yang paling sering diajukan ke saya, “Apa sih klorofil itu ?” Jujur, versi jawaban yang saya keluarin udah bermacem-macem tergantung dari siapa yang bertanya. Tapi dari dalem hati saya (dan jarang banget saya ceritain ke orang lain), klorofil itu adalah usaha untuk mencari framework pemrograman untuk membangun aplikasi enterprise yang mudah, cepat dan menyenangkan.
Yup, yang dicari adalah framework pemrograman, jadi gak ekslusif ke bahasa pemrograman tertentu. Walaupun akhirnya saat ini klorofil berpusat ke PHP dan Javascript, tapi sejujurnya klorofil pertama kali dibangun diatas Java, kemudian saya pernah coba implementasi diatas Pike (C++ like scripting). PHP akhirnya dipilih karena performansinya memuaskan waktu itu. Ditambah bahasanya dekat dengan C/C++ (bahasa yang cukup saya kuasai) dan base programmernya sangat banyak didunia. Library fungsi yang tersedia sudah sangat banyak, walaupun pemakaiannya masih procedure oriented.
Lagi pula PHP waktu itu mempunyai stigma negatif diantara pengguna IT, PHP tidak bisa membuat aplikasi enterprise. Oleh karena itu, buat klorofil yang sedang mencari/membangun framework baru untuk aplikasi enterprise menganggap PHP sangat cocok.
Pertanyaan pertama, apa sih definisi aplikasi enterprise ? Mungkin banyak definisi aplikasi enterprise yang sudah dikeluarkan ahli IT, tapi bagi saya (yang pandangannya lebih dekat ke programmer) aplikasi enterprise adalah aplikasi yang memiliki karakteristik pendukung yang dibutuhkan dalam penggunaan di enterprise wide scale seperti berjalan di beberapa komputer klien maupun server yang saling berhubungan baik dari satu site maupun lain site yang berjauhan, mudah untuk ditingkatkan skalabilitasnya seperti jumlah klien, fungsi dan besarnya data, memiliki interoperabilitas yang baik dengan teknologi-teknologi lain seperti protokol-protokol jaringan, bahasa pemrograman atau teknologi propietary lain yang sudah ada sebelumnya dan memiliki fasilitas yang dipersiapkan untuk menghadapai interoperabilitas dengan teknologi lain yang akan muncul belakangan.
Dari sisi pembangangunan perangkat lunak, aplikasi enterprise memiliki struktur yang tidak sederhana, biasanya terdiri dari beberapa modul sehingga biasanya aplikasi enterprise dibangun oleh beberapa programmer bahkan beberapa instansi. Penggunaan prebuild modul ato komponen adalah salah satu hal biasa. Dan kalau dilihat dari sisi programming, aplikasi enterprise walaupun biasanya rumit tapi memiliki style tertentu yang pasti, jadi untuk melakukan beberapa hal yang sebenarnya mirip, maka cara memrogramnya pun pasti mirip.
Oleh karena itu framework pemrograman enterprise harus menangani semua isu yang mungkin muncul dari karakteristik diatas, seperti memiliki fitur aplikasi terdistribusi, baik kode, fungsi maupun objek yang dipergunakan dalam proses, kemampuan interoperabilitas, object oriented (ato malah organization unit oriented ? soal ini nanti saya bahas), fitur pembagian modul dengan pakage dan library dan fitur penggunaan komponen. Framework seperti inilah yang dibangun di klorofil.
Dan yang paling penting adalah mudah, cepat dan menyenangkan. Yup, semua bagian dari klorofil dibangun dengan kemauan kuat dalam hati bahwa klorofil harus bisa dipergunakan secara mudah, cepat dan menyenangkan. Hal ini sebenernya berkaitan dengan kondisi pembangunan software saat ini yang berusaha untuk mengeliminir peran programmer. Bukan tidak menghargai usaha para IT engineer yang berusaha untuk memformalkan semua sisi IT dari proses sampai bahasa pemrograman, tapi kalau kita bisa membuat program secara cepat, mudah dan menyenangkan kenapa tidak. Saya tau maksudnya para engineer untuk memformalkan proses pembangunan untuk memastikan kualitas software yang dihasilkan sesuai dengan yang diharapkan, tapi saya tidak percaya bahwa memformalkan proses berarti harus mengorbankan programmer dengan pattern dan framework pemrograman yang rumit untuk mencapai semantik pemrograman yang sempurna.
Saya percaya perkembangan bahasa pemrograman dari awal ilmu IT hadir bertujuan untuk mempermudah dan mempercepat pemrograman. Dari Assembly ke bahasa pemrograman tingkat tinggi, dari prosedural ke object oriented semuanya bertujuan untuk mempermudah dan mempercepat pemrograman, walaupun akhirnya kita bisa membuat ilmu algoritma dengan semantik yang sempurna. Tapi kenapa saat bahasa pemrograman tidak begitu banyak berkembang lagi, dengan tujuan kesempurnaan semantik kita malah membuat pattern dan framework yang rumit sehingga mengorbankan kemudahan, kecepatan dan kesenangan.
(bersambung)
November 26th, 2007 at 10:56 am
jadi sambungannya mana nih?