Episode #8 indo java podcast terasa sangat istimewa dengan kedatangan Didiet (@lynkluna) dari mijix. Kita ngobrol panjang lebar kesana-kemari tentang platform java yang sucks big time. Banyak hal di platform java yang sekarang nyaris tidak relevan lagi digerus teknologi baru yang lebih baik. Misalnya Java Desktop yang kalah pamornya dibanding cocoa di mac atau GTK di linux, Java ME yang nasibnya tinggal menunggu waktu digerus sama Android. Praktis Java Platform hanya menyisakan Java EE saja.

Obrolan makin seru dengan membahas VM yang sekarang ada di pasaran, seperti interpreter-nya python, interpreternya PHP dan Ruby. Kemudian perbincangan menyerempet konsep Thread vs Fork-Join Process di Unix dan windows, dimana sebenernya di low level implementation JVM menterjemahkan Thread sebagai Light Weigth Process di *nix tetapi JVM tidak bisa menterjemahkan Thread menjadi Process di windows platform karena membuat process baru di windows cost-nya sangat tinggi. Inilah alasan utama kenapa Java multithreading mempunyai kinerja lebih tinggi di *nix platform dibanding di windows platform.

Obrolan beralih ke topik Synchronous vs Asynchronous Socket, dimana dulunya socket programming tidak mendukung synchronous excecution, karena model asynchronous socket itu susah sekali dihandling di dalam kode aplikasi, maka diperkenalkanlah synchronous socket, di java semua class di dalam java.io menerapkan synchronous socket. Application server java versi lama seperti tomcat 5 ke bawah menggunakan synchronous socket. Ternyata belakangan synchronous socket tidak disukai karena performancenya cenderung turun kalau request-nya sangat banyak. Diperkenalkanlah lagi konsep asynchronous socket, package java.nio menggunakan asynchronous socket, dan application server yang lebih baru seperti tomcat 6 ke atas menggunakan asynchronous socket, hasilnya kinerja tomcat 6 dengan load tinggi sangat stabil dan tidak ada gejala penurunan kinerja. Didiet juga mengutarakan kalau PHP tidak bisa menggunakan asynchronous socket, makanya didiet nggak ngefan dengan PHP :D .

#8 http://indo-java-podcast.googlecode.com/files/indo-java-podcast%238.mp3
- Java Sucks
- JVM dan VM lain
- Multithreading dan Fork-Join paralelism
- Synchronous vs Asynchronous Socket

Happy Podcasting