Open Source Framework, bisnis serius di ranah Web 2.0 dalam pandangan teknis dan bisnis

Framework
Framework

Framework merupakan tool untuk membangun sebuah website. Di dunia website, framework adalah tool yang menyediakan bahan-bahan yang dibutuhkan developer untuk membangun sebuah situs. Dipisahkan menurut lisensi, framework tersedia menjadi dua jenis, proprietary (berbayar) dan open-source (free). Pada umumnya pada proprietary, client pengguna framework tersebut mendapatkan back-up service penuh dari company. Sedangkan pada open-source, service yang diberikan dapat berasal dari komunitas pendukungnya atau perusahaan pendukungnya. Lalu bagaimana kaitan antara framework dengan situs-situs besar? pernah mendengar Yahoo!, Twitter, NyTimes dan Kompas? ya, situs-situs ini menggunakan framework open-source untuk mengatasi jutaan pengunjung yang datang! tertarik memahami open source framework?

Mari mengenali sisi framework dalam pandangan teknis terlebih dahulu sebelum menuju pandangan bisnis. Framework biasanya digolongkan menurut bahasa pemogramannya. PHP, Ruby, Python, Perl merupakan salah satu dari bahasa pemograman web yang open-source. Mari kita kupas semua lebih detil sebagai berikut :

1. PHP
Bahasa yang ditulis oleh Rasmus Lerdorf (bekerja di Yahoo!) mendapatkan mendapatkan dukungan dari para developer. Selain itu, hampir hosting seluruh dunia menyediakan jasa pada "web-scripting languages" ini. PHP sering disandingkan dengan apache dan mysql sebagai paket yang hemat. Tidak heran bahasa ini booming dan populer karena memiliki karakteristik algoritama pemograman yang memudahkan bagi pemula. Framework pada PHP terbilang banyak dibandingkan bahasa lainnya. CakePHP, CodeIgniter, Symfony, Zend Framework, merupakan salah satu framework terkenal di dunia PHP. Tiap framework memiliki banyak kelebihan satu dengan yang lain.

CakePHP (nate dan gwoo) memiliki karakteristik strict dan kaku. Framework dengan MIT license ini merupakan turunan dari Ruby on Rail pada bahasa ruby. CakePHP memiliki dukungan komunitas yang kuat serta dokumentasi yang "mulai dibangun dengan baik". CakePHP memiliki fitur-fitur yang mirip seperti Ruby on Rails. Pada skala penggunaan, CakePHP terasa ideal pada website dengan kompleksitas menengah dan tinggi. Contoh : Mozilla Add-on.

CodeIgniter (ellisLab) memiliki karakteristik ringan dan fleksible. Framework yang didukung komunitas dan perusahaan ini terkenal dengan kemudahan penggunaannya karena semua tata struktur penulisan scripting diserahkan sepenuhnya pada developer. Framework ini disukai oleh Rasmus Ledorf karena kebebasan penulisan kode PHP murni didalamnya. CodeIgniter terasa ideal pada website dengan kompleksitas ringan. Contoh : Kompas.

Symfony (Fabien Potencie) memiliki karakteristik terstruktur, detail dan berat. Framework yang didukung komunitas dan perhatian dari Yahoo! ini terkenal dengan kehebatannya mengatasi project website dalam skala besar dan kompleks. Kemudahan dalam generate berbagai project dengan satu blueprint desain menjadi keunggulannya. Symfony terasa ideal pada website dengan kompleksitas tinggi. Contoh : Answer Yahoo.

Zend Framework (Andi Gutmans and Zeev Surask), memiliki karakteristik modular dan lengkap. Framework yang didukung oleh co-founded core developer PHP (termasuk Rasmus Ledorf) dan Zend Company ini terkenal dengan komponen pendukung yang banyak. Framework ini seringkali menjadi sandaran bagi situs-situs besar seperti Ning, Google, Amazon dan Flickr dalam API services. Zend terasa ideal pada website dengan kompleksitas menengah dan tinggi. Contoh : Amazon API services

2. Ruby
Ruby yang ditulis oleh Yukihiro "Matz" Matsumoto di Jepang pada era pertengahan 90-an merupakan bahasa pemograman yang sedang naik daun saat ini. Ruby yang sering dibandingkan dengan ColdFusion ini justru terkenal ke publik developer website dari framework Ruby on Rails. Framework yang ditulis oleh David Heinemeier Hansson menjadi barang langka saat ini karena cenderung masih sedikit developer yang menggunakannya. Secara syntax, Ruby on Rails lebih mudah dan mirip seperti Ptyhon. Ruby on Rails terdiri banyak fitur spesial dalam mengatasi website dengan tingkat kompleksitas sedang dan tinggi. Fitur-fitur yang menarik pada Ruby on Rails menjadi dasar bagi CakePHP sebagai cerminnya dalam bahasa PHP.
Contoh : Twitter

3. Python
Python yang ditulis oleh Guido van Rossum (bekerja di Google) terkenal sebagai scientific languanges. Memiliki kedekatan dengan bahasa induk C, python sering dipilih oleh banyak kalangan peneliti dan akademik dalam menyelesaikan berbagai masalah. Google sendiri menggunakan python dalam membangun search engine yang sangat kompleks dan tera-byte data. Bahasa yang OOP (Object Oriented Programming) ini memiliki banyak dukungan komunitas. Ringan dan cepat menjadi ciri khas dari bahasa ini. Terdapat beberapa Framework terkenal yang berbasis Python seperti Django, webpy, TurboGear dan Pylons.

Django yang dibangun oleh Adrian Holovaty, terdengar baru di kalangan developer website. Cal Henderson (Flickr) memberikan seminarnya dengan judul "Why I hate Django" pada DjangoConf 2008 salah satunya karena umurnya yang masih muda. Menariknya, framework yang masih muda ini mendapatkan dukungan dari Google dan komunitas python. Framework ini memiliki fitur yang menghubungkan antara python dengan dunia website. Framework ini ideal untuk situs dengan kompleksitas ringan sampai tinggi.
contoh : ChessPark.com.

Gosip dan perkembangan terbaru seputar teknis di dunia framework

1. PHP
Sering disebut bahasa pemograman mainan, karena bukan OOP murni dan semua orang dapat menggunakannya dengan mudah. CakePHP seringkali disebut framework yang rumit dan kaku. Selain itu dokumentasi yang susah serta aturan-aturannya yang merepotkan developer. Hal ini kenapa CakePHP kurang disukai oleh programmer. CodeIgniter yang bersifat sangat fleksible ternyata sering dijadikan bumerang. Bila algoritma developer tidak efisien tentu membuat situs yang dibangun akan terasa lamban dan tidak efisien. Itu kenapa terkadang CodeIgniter disebut mini-framework karena cocok untuk project website yang tidak kompleks. Symfony memang memiliki fitur yang banyak dan kompleks, namun load yang berat serta susah dalam mempelajarinya membuat developer PHP enggan menggunakannya. Zend Framework yang dibuat oleh contributor core PHP juga memiliki syntax pemograman yang rumit. Modul yang banyak dan harus memasukkan satu-persatu sering membuat lelah para developer-nya.

2. Ruby
Bahasa pemograman ini sering mendapatkan komentar tentang performance-nya. Developer twitter mengatakan ruby lamban! dan ini yang menjadi kendala twitter sering down pada traffik yang tinggi. Ruby on Rails sendiri seakan-akan merupakan hype semata dan cenderung dipandang kurang efisien pada load yang tinggi.

3. Python
Bahasa pemograman ini terkesan sangat rumit dalam penulisan syntax-nya. Secara scripting, indentasi pada python dan Django terasa sangat merepotkan. Indentasi dengan 4 spasi sering mendapatkan komentar bahwa scripting di Django akan membuat sakit kepala. Django dinilai sangat buruk dalam scripting karena kerumitan struktur penulisannya. Walaupun memiliki syntax yang mirip Django, namun Ruby on Rails tetap terkesan memudahkan developer.

Lalu bagaimana secara bisnis? Kalau anda melihat framework didukung oleh perusahaan dan komunitas yang besar tentu dapat terlihat efek domino yang ada. Semakin populer suatu framework akan menaikkan nilai project situs yang dibangun. Nilai ini tentu bisa dilihat melalui harga developer, jasa service hosting, donasi kepada komunitas dan sebagainya. Berikut contoh efek bisnis yang ada :

1. Django merupakan framework yang hostingnya nyaris susah ditemukan termasuk di Indonesia. Google App Engine menyediakan jasa hosting bagi situs berbasis Django. Anda dapat membayangkan bagaimana efek ketergantungan yang ada? ya, akhirnya banyak pengguna Django menggunakan Google sebagai hostingnya dan ini adalah profit.

2. Developer Ruby on Rails terkesan masih langka, sehingga ini akan memberikan harga yang tinggi. Jasa hosting pada Ruby on Rails juga masih sedikit, sehingga jasa Hosting dapat mematok harga yang lebih. 37signals.com yang memiliki produk Ruby on Rails ini tentu akan kebanjiran project mengingat masih sedikit developer yang mumpuni di Ruby on Rails. Slogan "We created an open-source web framework called Ruby on Rails" menjadi branding dan profit tinggi bagi perusahaan ini.

3. PHP yang semakin diminati pada developer membuat jasa hosting berlomba-lomba memberikan support hosting pada bahasa ini. Contoh profit dari framework PHP adalah seiring popularitas CodeIgniter, tentu ini akan memberikan profit bagi perusahaannya dibelakangnya yaitu ellislab. Dukungan services dan support akan menjadi salah satu jalan untuk menarik pundi-pundi keuntungan.

Akhirnya terlihat bahwa efek domino bisnis dari framework terlihat pada perusahaan yang memberikan jasa dan pendukungnya serta developernya. Memberikan produk berupa framework open-source ternyata mampu memberikan profit yang tinggi. Kualitas framework dan kemudahan dalam penggunaannya menjadi faktor penting dalam bisnis ini.

Saya pribadi menggunakan CakePHP dan Django dalam pengembangan website. Pertimbangannya adalah kecocokan karakteristik dan kebiasaan algoritma pemograman. Nah, dari statement saya dapat diambil kesimpulan bahwa developer tentu menyukai framework yang 'cocok' dengan pola pikirnya. Semakin mudah digunakan maka framework tersebut akan semakin terkenal dan ini berlaku sebaliknya.

Ulasan ini berangkat dari ide dan referensi Navinot tentang Framework, yaitu :
"Ada banyak sekali framework dan library yang bermunculan tiap hari. Ada yang bagus, sangat bagus. Berguna, atau sekedar proof of concept saja. Yang manakah yang ideal? Sepertinya lebih mudah jika kita berangkat dari yang tida ideal. Jadi apa saja yang membuat framework atau library menjadi tidak ideal?"

Ikut meramaikan Kontes Navinot :


Note:
1. Perl tidak bahas karena saya pribadi belum pernah menggunakannya.
2. Semua yang saya tulis adalah mengacu pada pengalaman pribadi yang didapatkan dari sharing, membaca dan aktivitas sehari-hari. Anda dapat memberikan komentar bila terdapat sesuatu yang dirasa tidak benar.

Comments

Python ini kan bahasanya udah lama banget.. Kalo gak salah aku SD udah ada dehh...
Banyak dipake di OS Linux.. Dan bahasa ini setauku kurang terlalu populer di Indo..

Btw.. Kok Kohana nggak dibahas??
Kohana merupakan fork dari CodeIgniter yang didukung penuh oleh komunitas. Sehingga kalo ada bug, dengan cepat diperbaiki...

Hmm.. tapi pada intinya aku gak fanatik pada suatu bahasa/framework tertentu.. Yang penting hasil akhir memuaskan. End-user tidak perduli anda buat pake apa, kompleksnya kayak apa, proses pembuatannya gimana... End-user cuma pengen pake dan mendapatkan hasil/manfaat dari yang sudah para developer buat..

Hello,

mo komen dikit soal python nih ...
"Bahasa pemograman ini terkesan sangat rumit dalam penulisan syntax-nya."

well, justru python adalah bahasa pemrograman dengan syntax yang paling mudah dan menarik selain ruby tentunya, apalagi bila di bandingkan PHP atau java .
misal yg simple saja utk mendapatkan list (atau array di php) genap di bawah bilangan 10 :
python :

print [x for x in xrange(10) if x%2 == 0]

php :

$bil = array(0,1,2,3,4,5,6,7,8,9);
$genap = array();
for($i=0; $i

saya sendiri 'selingkuh' ke python dari php karena syntax nya lebih cantik dan mudah daripada php.

"Secara scripting, indentasi pada python dan Django terasa sangat merepotkan. Indentasi dengan 4 spasi sering mendapatkan komentar bahwa scripting di Django akan membuat sakit kepala. Django dinilai sangat buruk dalam scripting karena kerumitan struktur penulisannya."

well, kata2 ini sangat menyakitkan, banyak programmer yang tidak suka dengan keharusan identasi untuk membedakan blok di python, dan banyak diskusi akan hal itu, tapi bila di nilai sangat buruk karena kerumitannya dan bikin sakit kepala ini sangat tidak masuk akal. karena python sendiri banyak di nilai sebagai bahasa yang mudah di baca kembali, apalagi di bandingkan dengan php / java dan hal itu karena python 'memaksa' programmer untuk memberikan sepasi/identasi dan menghilangkan akhir ';' atau pembuka blok '{' yg kadang berlebihan sehingga akhirnya memudahkan hidup programmer lain yg membacanya. anda akan mengerti bila pernah melihat program php yg di buat oleh programmer yg memiliki cita rasa seni yg buruk :P.

Django sendiri sekarang ini merupakan pesaing serius dari rails, apalagi untuk programmer yang ingin menulis code yg indah tp ingin tetap mengetahui apa yang terjadi di bagian dalam framework. dan persentasi Cal Henderson itu bisa terjadi karena menurut saya komunitas python/django cerdas, rendah hati dan sangatlah terbuka untuk menerima kritik, tidak seperti yg terjadi di komunitas rails yg cukup 'panas'. yg menarik adalah zed shaw (pembuat mongrel) yg merupakan tokoh terkenal di rails mengkritik dg pedas komunitas rails dg tulisan di blog nya 'rails is a ghetto' dan terakhir beliau ikutan seminar di eurodjangocon 2009. Dan masih bisa di temukan banyak kritik2 pedas baik di tujukan utk bahasa lain ato utk komunitas rails sendiri di blog2 komunitas rails di luar (yg rame belakangan ini adalah kritik utk railsconf 2009).

that's it but dont get me wrong. saya ga bermaksud membandingkan python dg yg lain, sy sendiri suka php, ruby dan python dan menggunakan ketiganya tp bila anda mencoba menilai kelemahan python ada pada syntax nya itu merupakan sisi yg salah. seperti bahasa yg lain python jg tidak sempurna dan banyak kelemahan yg lain yg worth it utk di bahas apabila ingin di bandingkan dg bahasa yg lain.

Wow, sangat mendetail. Anda memberikan penjelasan secara teknis juga secara segi sosial. Memang zed shaw akhirnya lari ke Django karena isu pengaruh kepentingan ekonomis dibalik project open source ruby on rails. saya setuju dengan pendapat dan pandangan anda.

Ketika Django memang sudah mature, saya langsung menggunakannya.
Satu kata dari saya, Pyhton adalah bahasa investasi masa depan!