Tentang KamiPedoman Media SiberKetentuan & Kebijakan PrivasiPanduan KomunitasPeringkat PenulisCara Menulis di kumparanInformasi Kerja SamaBantuanIklanKarir
2025 © PT Dynamo Media Network
Version 1.103.0
Konten dari Pengguna
Bagaimana Komunitas merubah Dunia Java dan Menentukan Pasar Teknologi
27 Januari 2017 21:27 WIB
Diperbarui 14 Maret 2019 21:19 WIB
Tulisan dari Frans Thamura tidak mewakili pandangan dari redaksi kumparan
ADVERTISEMENT
Apakah pembaca sudah tahu, sejak tahun 2000, spesifikasi Java lahir dari komunitasnya, dan secara tidak langsung merubah ekosistem Java secara keseluruhan. Banyak vendor berusaha menahannya, karena kalau spesifikasi dari komunitas, umumnya Opensource, para perusahaan propietary bagaimana membuat solusi yang enterprise. Enterprise yang didefinisikan mahal, complex dan premium.
ADVERTISEMENT
Mekanisme ini yg dimulai oleh Sun Microsystem itu sendiri dengan donasi Tomcat ke Apache, merubah Apache dari sebuah entitas opensource (membuat httpd), menjadi sebuah entitas yang menentukan ekosistem Java dunia. Termasuk menekan Sun untuk mensahkan implementasi Java-nya bernama Harmony. Yang dipakai Google menjadi dasar Android. Yang membawa Google dan Oracle berseteru di pengadilan dengan tuntutan 2 miliar dolar.
Java memang mengisi celah enterprise yang sangat kuat, juga termasuk politiknya yang sangat keras, sekeras politik Trump vs Hillary, dan kalau di Jakarta, Ahok vs FPI.
Beberapa teknologi yang patut yang merubah muka dunia Java, dan secara langsung merubah juga model teknologi lain.
1. Apache Tomcat
Apache Tomcat adalah versi implementasi Servlet yang merupakan donasi dari Sun Microsystem tahun 1999. Apache Tomcat ini diestimasikan telah menjadi 70% container Java yang dipakai diseluruh dunia.
ADVERTISEMENT
Apache Tomcat ini kalau ditilik memiliki "adik" yaitu Glassfish (dulu merupakan teknologi Java web milik Netscape, post Microsoft melakukan implementasi monopoli Windows menekan Netscape, produk ini dijual ke AOL, lalu berlabuh ke Sun, dan ikut terakusisi oleh Oracle. Sekarang dibawah Oracle, menjadi kernel utama Weblogic, versi opensourcenya diteruskan pengembangnya dibawah Payara, yang menjadi acuan utama MicroProfile yang dipercaya menjadi masa depan teknologi Java didunia Cloud Scale).
Sekitar 2003, JBoss Advanced Server adalah versi implementasi Java EE yang menggunakan Tomcat, walaupun berakhir dengan dua pilihan salah satunya Jetty, versi microservicenya adalah JBoss Swarm.
Spring juga mengadopsi Tomcat, dan revolusinya yang menghasilkan Microservice SpringBoot, yang menjadi momentum ke-2 dunia Java container, setelah Spring Framework.
ADVERTISEMENT
Gabungan ini SpringBoot, JBoss Swarm, Payara adalah tink-tank MicroProfile
2. Apache Struts
Teknologi MVC telah diperkenalkan didunia SmallTalk sekitar 1988, yang merupakan teknologi yang menjadi acuan dari Visicalc. Diadopsi menjadi Swing (sebagai informasi Swing adalah teknologi Java untuk Desktop, dikembangkan IBM, versi acuan yang tidak standard adalah SWT dibuat IBM juga ditaruh di Eclipse Foundation).
Struts merupakan defacto development Web saat itu dan juga saat ini. Beberapa implementasi yang menggunakan Struts di Indonesia seperti KlikBCA dan beberapa bank.
Tetapi karena pendirinya (Craig MC) direkrut Sun dan diminta membuat framework baru bernama JSF, dan dipush oleh Sun menjadi standar Java EE, ini awal pecahnya implementasi standar dan semakin kuatnya Spring (setelah membuat SpringMVC).
ADVERTISEMENT
Era post JSF ini agak aneh, khususnya setelah ribut sertifikasi JBoss (tentu saja diharuskan memasukan JSF oleh Sun).
Ternyata komunitas tetap lebih menyukai MVC, efek dari JSF dan konspirasi para vendor Java EE, saingan utama Struts yaitu WebWork buatan Richard Oberg (orang Swedia yang merupakan pencipta JBoss, XWork, XDoclet, Qi4J, dan Neo4J -- BigData Graph, saat ini menetap di Malaysia) bergabung menjadi Struts2. Disini yang menarik kekuasaan para vendor menentang komunitasnya. Tapi Pasar tahu mana yang terbaik
Oracle, sang penerus pemilik Java, membuat MVC 1.0 karena dari survey, pemakaian JSF tidak populer, dan diramalkan akan masuk JavaEE 8. Agak aneh perlu 17 tahun memasukan sebuah teknologi yang populer dalam standar Java. http://blog.kaltepoth.de/posts/2016/10/07/why-mvc-1-0-is-important-for-java-ee-8.html
ADVERTISEMENT
3. Hibernate
Hibernate adalah sebuah ORM, Object Relation Mapping, dimana setiap database dipetakan menjadi obyek, sehingga query dan manipulasi database dilakukan di level obyek. Mekanisme ini membuat aplikasi agnostik terhadap database, diperlukan driver untuk membuat sebuah obyek dapat dimap dengan database, lebih dari 23 database didukung Hibernate.
Hibernate ini menjadi standard JPA, dan menjadi salah satu teknologi merubah spesifikasi JavaEE khususnya JavaEE. JPA dapat diextend menjadi EJB3.
Hibernate umumnya memiliki 2nd level cache, seperti EHCache yang memungkinkan scaling system. Dalam perkembangannya pendiri EHCache mengembangkan EHCache (setelah diakusisi terracota/Software AG), menjadi Hazelcast, sebuah teknologi in-grid memory.
Dapat dibayangkan object factory hibernate ditaruh didalam grid system, secara teori persistance lebih lambat dari direct access ke database.
ADVERTISEMENT
4. Spring Framework
Dimulai oleh pusingnya programmer JavaEE membuat aplikasi berbasis EJB, (Rod Johnson) yang membuat kita pusing kepala, era itu yang mengimplementasikan adalah bank-bank, termasuk salah satunya BCA dg KlikBCA, mungkin pembaca dapat menanyakan aristektur KlikBCA sebagai salah satu teknologi bank online yang paling populer didunia, bagaimana membuat thread managementnya.
Spring mengadopsi sebuah konsep sederhana yang disebut Injection of Control atau Depedency Injection, sebuah mekanisme memberikan obyek yang dibutuhkan bukan secara initialisasi, mekanisme yang mengotomatisasi initialisasi obyek, yang ternyata membuat pengembangan aplikasi menjadi lebih mudah dan dinamis.
Spring mengembangkan ekosistem IoC, dan akhrinya diakuisisi oleh VMware seharga 300 juta dolar. Harga yang sama dengan harga akuisisi JBoss oleh RedHat inc..
ADVERTISEMENT
Spring berkembang menjadi SpringBoot, SpringCloud, yang saat ini memposisikan diri sebagai saingan semua container Java.
Saat ini Spring dikelola dibawah Pivotal, sebuah subsidiary EMC/VMware atau Dell, dan sudah ada representativenya di Indonesia.
Spring sangat populer, saat diperkenalkan, termasuk Spring Meetup pertama di Indonesia (Java User Group Indonesia Meetup atau JaMU sekitar 2003), menjadi de-facto development di pengembangan hampir diseluruh industri dari bank, telco, multifinance, distribution, sampai SME yang mengadopsi Java di server-side.
Sebenarnya Spring memiliki produk hasil akusisi bernama CloudFoundry (hasil akusisi), yang mana CloudFoundry adalah PaaS Platform, yang mungkin implementasi lainnya yang sedang naik daun bernama Docker.
Spring IoC telah memaksa spesifikasi JavaEE memasukan CDI.
5. Apache Maven
Apache Maven adalah pecahan dari Apache Turbin yang merupakan build automation, yang dapat dikatakan sangat mature dipasaran. Dikembangkan Jason Van Zyl tahun 2002. Saat ini menjadi referensi build automation tools terbaik, walaupun komunitas Groovy mengembangkan Graddle yang membuat build automation didunia Java menjadi lebih sederhana. Graddle mendukung teknologi non Java. Android menggunakan graddle sebagai build automation defaultnya.
ADVERTISEMENT
Maven ini dapat dikatakan sebagai acuan build automation teknologi lain, karena sudah ada dipasaran sejak 2002, dan telah menjadi tools yang dipercaya perusahaan dari telco sampai bank.
Berbagai teknologi mulai membuat build automation, penulis menawarkan teknologi lain menilik bagaimana Maven bekerja, seperti nodejs dengannpm dapat mencontohnya atau go atau dotnet nuget.
6. Android
Android diakuisisi Google sekitar 2005, saat itu Java belum di opensourcekan (Opensource Java OpenJDK 2010, saat HTC merelease hp android pertama G1) Ref: https://en.wikipedia.org/wiki/HTC_Dream.
Android ini menjadi sangat populer, plus juga menjadi contoh implementasi Java yang masuk ke pengadilan dengan tuntutan mencengangkan sampai 2miliar dolar amerika, hanya gara-gara Google lebih suka dengan lisensi Apache bukan GPL, Java dilisensikan dengan GPLv2. 2-2nya OpenSource.
ADVERTISEMENT
Yang lebih mencengangkan adalah Android 7.0 (Nougat), Google menggunakan OpenJDK (versi opensource Java). https://en.wikipedia.org/wiki/Android_Nougat
Ini berita menarik setelah Google membuat Dalvik, lalu buat ulang dengan nama ART (Android Run Time), eh malah balik ke OpenJDK.
Padahal didunia Java sudah ada JavaME, penulis menunggu spesifikasi inti Android masuk ke standard Java, karena secara posisi Android adalah sebuah de-facto technology
7. In-Grid Technology
Dengan lahirnya internet, memungkinkan sebuah sistem diakses dengan user yang sangat banyak, tetapi didunia lain adanya mass-rapid transport, membuat kita juga membutuhkan sistem terpercaya yang dapat mengelola banyak pemakai.
Dunia Java ada teknologi in-grid, seperti EHCache, Terracotta (mengakusisi EHCache), Hazelcast (dikembangkan oleh pembuat EHCache post akusisi), serta Gemfire (teknologi ingrid dibawah Spring yang saat ini menjadi portofolio Pivotal).
ADVERTISEMENT
Kasus yang menarik dari In-Grid Java adalah Gemfire yang telah menjadi tumpuan kereta api di china dengan user conncurrent sampai 40 juta pemakai. Mungkin ini bisa jadi jawaban transportasi di Jakarta, karena secara size penduduk dan juga solusi para startup yang sudah memilik user banyak. http://www.slideshare.net/Pivotal/china-rail-gemfire-31905080
Java dapat dikatakan teknologi de-jure, walaupun JCP (lembaga yg mengelola standar Java adalah sebuah divisi di Oracle, dan komunitas sudah berjuang, termasuk Oracle sendiri mengajukan proposal tahun 2007, untuk spin JCP jadi badan hukum sendiri, tapi setelah didalam Oracle, malah Oracle menjadi salah satu perusahaan yang menjegal inovasi Java, karena pasarnya yang sangat besar tetapi marketshare yang dapat dimiliki Oracle tidak sesuai dengan harapan managemen-nya, oleh karena itu lahirlah JavaEE Guardian, dimana JUG Indonesia salah satu yang mendukung program ini. sebuah komunitas yang didirikan oleh pendiri Java yaitu James gosling, yang mempertanyakan masa depan JavaEE dibawah Oracle, dengan proposal MicroProfile sebuah spesifikasi Microservice Java. Sebuah platform scale-ready berbasis Internet.
ADVERTISEMENT