Tuesday, January 12, 2010

Mengapa Spring untuk Web Development?


Alasan awal saya sendiri pake Spring karena de facto & propaganda saja, banyak yg pake Spring.

Terus, library2 yang dipakai, nyaris semua punya Spring integration. Lebih jarang yang bilang "Jboss integration", "Guice integration", "EJB integration", apalagi "CDI integration". Contoh: Apache Camel, Apache CXF, ...

"Keunggulan" lainnya adalah aplikasi Spring bisa jalan di container standard Tomcat, jadi kalo misalnya mau nyoba di hosting, murah bahkan mungkin free. nggak perlu dedicated atau VPS. Belakangan saya tau kalo JBoss Seam juga bisa jalan di Tomcat, tapi harus modify instalasi Tomcatnya, kalo shared hosting kan tetep nggak bisa?

Soal JBoss Seam, jujur saya tertarik, karena lebih full-stack dan convention-nya jelas. Di Spring lebih cenderung mix-and-match. Bisa pake Spring MVC atau pake yg lain. Bisa pake Spring Web Flow kalau mau ala JSF. Framework yang didukung SpringSource sendiri ada beberapa: Spring MVC, Spring MVC + Web Flow, Spring Roo, dan Grails. Enaknya, banyak framework Java pakai Spring Framework sebagai core, jadi menurut saya skill Spring cukup dibutuhkan bagi programmer Java.

Google Apps Engine developmen juga menarik, dan meski lebih cepat kalo plain servlet, tapi masih reasonable kalo pake Spring core maupun Spring MVC. Kalo pake JBoss Seam, saya sangat yakin... bahkan jalan saja kayanya enggak.

Murni JavaEE? Buat saya Java EE = EJB dkk. Kalo yg dimaksud plain servlet, saya bukan tipe orang se-lowlevel itu hehe. Cuma memang saya mulai berusaha agar thin server-side dan fat client-side, seperti saya tulis di AdaRuby - Quest for Fluid Web Framework : http://www.adaruby.com/2010/01/08/quest-for-the-fluid-web-framework/

(Intermezzo: Sayangnya setelah beberapa eksperimen, ternyata "thin server-side" ini agak sulit direalisasikan secara pure. Ada beberapa kepentingan, misalnya authentication, security, ORM, dan inpage SEO.. yang membuat thin server-side kurang practical.)

Bagaimana dengan Anda, punya preferensi web framework Java ?

No comments:

Post a Comment