Wednesday, August 4, 2010

Java dan istri tua

Baru-baru ini muncul diskusi hangat di milis JUG Indonesia, judulnya seru: "Ask pemrograman yng keren selain java". Inti diskusinya, "Java konsumsi memory-nya besar (Isu #1) dan fitur bahasanya tidak semenarik bahasa-bahasa modern lain (Isu #2)". Blog ini adalah komentar gw soal diskusi itu.

Ingat bahwa Java(tm) terdiri dari tiga komponen:
- Java Virtual Machine (JVM)
- Java API
- Bahasa pemrograman Java (syntax)

Untuk Isu #1, Endy Muhardin berkomentar, "Ah yang bener". Gw setuju dengan Endy. Kita pakai analogi yuk. Anggaplah JVM sebagai mobil dan platform lain yang konsumsi memory-nya jauh lebih kecil sebagai motor. Untuk keliling kompleks perumahan atau ke warung, motor memang lebih ideal. Tapi kalau dari Jakarta ke Semarang, masak naik motor?

Meski ke luar kota bisa naik motor (dan beberapa orang melakukannya), bukan berarti itu cara yang ideal. Demikian juga dengan software. Untuk beberapa aplikasi mungkin kita tidak memerlukan semua bells-and-wistle sebuah JVM sehingga overhead-nya tidak bisa kita terima, tapi untuk kebanyakan aplikasi bisnis, JVM (atau secara umum, VM, seperti CLI untuk .NET) adalah platform yang ideal.

Sekarang Isu #2: Bahasa pemrograman Java tidak seksi lagi.

Java diciptakan pada tahun 1995, bahasa-bahasa lain yang lebih seksi baru muncul belakangan ini. Ini seperti membandingkan bintang film tahun 1980 dengan artis muda jaman sekarang, atau lebih tepatnya membandingkan istri tua dengan istri muda. Mereka tidak bisa dibandingkan langsung—masing-masing ada kelebihan dan kekurangannya, "penggunaannya" pun berbeda (Catatan: bukan berarti gw mendukung poligami lho).

Ada opini untuk "meremajakan" Java dengan memasukkan fitur-fitur seksi ke dalam Java. Ini seperti memaksa istri tua kita untuk operasi plastik dan pengencangan payudara. Bisa sih. Tapi apakah perlu?

Ingat bahwa bahasa pemrograman Java digunakan oleh banyak orang—istri tua kita di-sharing ramai-ramai! Beberapa orang mungkin tidak nyaman kalau sang istri sejuta umat itu diubah-ubah. They like her the way she is. Kemungkinannya ada dua:
  • Alasan psikologis. "Gw malas ah belajar yang baru lagi."
  • Alasan bisnis. Bagaimana dengan compatibility? Training? Semakin banyak fitur tentu semakin banyak yang dipelajari dan semakin banyak yang perlu di-maintain (arguably).
Jadi, untuk beberapa orang, lebih baik membiarkan istri tuanya apa adanya. Untuk beberapa kasus, selingkuh (dengan bahasa / platform lain) lebih disarankan.

UPDATE: Hira Sirojudin mengeluh, "saat suatu aplikasi diminta untuk handling hingga ribuan user bahkan diatas 100ribu connected users, investasi infrastrukturnya mahal berlipat, ngak cukup hanya dengan 1 mesin berprosesor xeon 8core dan mengandalkan cluster&balancing di sana sini.intinya dirasa antara performance dan costnya ngak seimbang, walopun itu ngak semuanya mesti disalahkan sama javanya". Keluhan diterima. Tapi sebelum menyalahkan Java, mungkin harus dilihat aplikasinya dulu. Kalau biaya rumah tangga membengkak, belum tentu itu karena salah istri tua kita kan? :)

9 comments:

  1. wakakakaka...
    bro.. dari awal gw ikut jug milis.. gw paling demen nehh komentar ente...
    Personifikasi teknologi java..
    wakkakak

    kerrennnn...

    ReplyDelete
  2. wah ternyata lebih sayang ke bini tua ya..

    ReplyDelete
  3. wah, mas, dukung penuh poligami pasti ya???
    xixixixixix.
    logikanya muter-muter????
    Apa hubungan dari Java dengan Bini??
    Xixixixi..

    ReplyDelete
  4. xixixxix.....gwa baca serius banget pengen ngerti ..eh tau-nya jadi ikut ketawa?

    ReplyDelete
  5. kayak nya istri tua java belum setua istri tua cobol, dan yg mana istri tua cobol masih banyak yg pake ;)

    ReplyDelete
  6. Pak, 'enterprise' di sini saya kira overrated. Java dipercaya untuk aplikasi yang 'besar2'. Tapi apa iya? Atau itu cuma apa yang dipakai oleh marketer/evangelist Java? Waktu sy bikin app untuk sebuah perusahaan aviation di amerika, justru bukan java yg dipakai, melainkan bahasa lain. Sy jg mau mention Blizzard, yang diakses oleh jutaan user d seluruh dunia, juga tdk pakai Java.

    Masalah scalability itu bukan masalah di bahasa, platform. Tetapi pengetahuan mendasar di algoritma. Yang saya maksud bukan algoritma sederhana seperti sorting, tetapi algoritma seperti distributed locking, network protocol, dan lain-lain yang merupakan kunci untuk skalabilitas.

    ReplyDelete
  7. @RMS trims untuk komentarnya pak. berdasarkan pengalaman saya, Java memang benar dipakai untuk enterprise, tapi tidak benar kalau hanya Java (satu-satunya) yang dipakai di dunia enterprise. berhubung ini blog "Javanese Java" dan waktu itu topiknya diangkat di milis Java, agak bias isi blognya, harap maklum :)

    ReplyDelete
  8. Mungkin selain perubahan pada faktor kosmetik perbaruan bisa difokuskan pada penambahan kemampuan, analoginya misal sang istri tua kita lengkapi dengan 2 tangan tambahan dan 2 mata di belakang kepala sehingga bisa masak sekaligus nyuci piring dan mengawasi masakan :D

    ReplyDelete