Postingan ini dibuat untuk melengkapi postingan sebelumnya. Sering kali ada pertanyaan mengenai mengapa harus Java bukan PHP, dan kapan pakai PHP dan kapan mengembangkan solusi dengan Java.
Pertanyaan ini sering terjadi, dan di era AJAX, dengan lahirnya ActiveGrid sebagai solusi PHP yang memungkinkan terjadi session clustering, yang artinya membuat PHP menjadi berskala Enterprise. Membuat PHP menjadi solusi pilihan yang menarik.
Dimana kekuatan Java? Rolling Eyes
Kekuatan Java No. 1: Container Oriented Development
Sebenarnya kekuatan Java terletak pada mekanisme pemograman yang menghasilkan container, dimana container yang dihasilkan merupakan subcontainer baru. Sebagai contoh adalah implementasi Java Collection. Kasus lainnya adalah implementasi Java menjadi middleware (JavaEE, XMLRPC, SOAP-RPC), atau database (Derby, HSQL). Dimana hal ini tidak dapat dilakukan oleh sebuah aplikasi berbasis scripting seperti PHP.
Contoh implementasi dilapangan adalah dengan mengembangkan sebuah mekanisme yang dapat mereturn objek, dalam sebuah pemanggilan fungsi, dimana objek yang direturn adalah objek yang lain.
Kekuatan Java No. 2: Generator Engine
Pernah dibayangkan mengembangkan sebuah aplikasi yang sangat sering dilakukan, alias berulang-ulang dilakukan dalam pengembangan aplikasi. Untuk membuat ini sering kali melahirkan sebuah skema yang umum.
Bilamana pemograman menggunakan sebuah mekanisme yang selalu sama, dapat menggunakan Pattern, sedangkan implementasinya dapat menggunakan Framework, tetapi ternyata ada kekuatan lain yang membuat sebuah kode yang mana kode tersebut menghasilkan kode baru, ini disebut code generator.
Contoh yang dapat dilakukan adalah bilamana kita mengembangkan aplikasi dengan IDE untuk JSF atau IDE untuk Swing, mekanisme ini digunakan, setiap kita melakukan sesuatu, langsung terjadi code baru dengan scriptnya.
Didunia Open Source Java ada sebuah projek yang menggunakan metode ini, dengan menyisipkan code tambahan di remark untuk menghasilkan code lainnya, mekanisme ini telah menjadi salah satu urat nadi untuk mengefektifkan pengembangan Java, dan tentu saja tidak ada diteknologi lain selain Java, yaitu XDoclet (http://www.xdoclet.org).
Ada teknologi lainnya yang semula diciptakan nuntuk menggantikan JSP yang terkenal dengan sebutan the darkness of Java, karena mekanisme complie on the fly, yaitu Velocity dari Apache, yang mana merupakan implementasi runtime engine bukan compile on the file.
Ternyata Velocity telah bertransformasi menjadi sebuah engine code generator, artinya kita hanya perlu mengimplementasikan sebuah Java Collection dan dilempar kedalam container Velocity, ditambah dengan template + script kecil didalam Velocity, langsung menghasilkan code baru.
Mekanisme yang lebih hebat lagi adalah dengan berhasilnya membuat sebuah UML menjadi sebuah bahasa yang menghasilkan aplikasi yang berbasis MVC, lalu M-nya langsung menggenerate database yang ada, dan semau ini hanya dilakukan dengan satu perintah saja, yaitu ant.
Hasil akhir dari kegiatan ini adalah sebuah aplikasi yang siap pakai, dan database yang telah terupdate, serta isinya yang otomatis diisi (DbUnit).
Yang lebih lengkap lagi, setelah proses itu semua, hasil akhirnya di testing menggunakan metode Extreme Programming menggunakan JUnit. Mekanisme ini tidak dapat dilakukan bilamana kita menggunakan aplikasi scripting, dan lebih tepat lagi bagi aplikasi berbasis OOP yang komunitasnya tidak hidup.
Dunia Java adalah gabungan antara komunitas yang berjualan dan komunitas pengembang (Open Source), yang menghasilkan inovasi tanpa habis.
Momentum dari implementasi Generator ini adalah lahirnya Compiere yang merupakan seubah ERP yang bekerja dengan generator, satu engine generator yang menghasilkan module ERP. Yang lebih hebat lagi, Compiere juga Open Source, sekali setting aplikasi berbasis Desktop (Swing) dan Web (HTML) langsung tergenerate on the fly.
Sayangnya Compiere mengimplementasikan tidak dengan standar, untuk aplikasi yang mirip Compiere yang berbasis dari OMG (Open Management Group) yang mengimplementasikan MDA adalah OpenCRX dengan engine OpenMDX.
2 Komentar
Apo kecek kau ni yod. .
ReplyDak ngerti aku x_x
hehehe, aku sedang memahami nya bud...
Replysambil aku pahami, aku bagikan dulu postingan sebuah ni...
biar sama2 paham...
Post a Comment