Apa itu Java? Saya Juga Baru 'Ngeh

Selama ini saya berfikir bahwa ...
... Jawaban dari pertanyaan tersebut adalah "Java adalah Bahasa Pemrograman".
Namun ternyata jawaban singkat tersebut, selain yang pasti tidak komprehensif, juga kurang mengena.

Jadi apa itu Java? Apa penjelasan mengenai Java yang bisa diterima oleh kebanyakan orang?

Lucunya, setelah bertahun-tahun belajar Java, bahkan pertanyaan mendasar seperti itu saja tidak bisa saya jawab dengan mudah.


Saya mendapatkan pencerahan dari salah seorang tutor saya, Sam Franklyn, yang menurutnya merupakan bahan ceramahnya bagi staf Ristek/BPPT beberapa hari yang lalu.

Java = Bahasa Pemrograman + Virtual Machine
Java bukan hanya bahasa pemrograman namun juga Virtual Machine. Pertanyaan berikutnya tentunya adalah apa itu bahasa pemrograman dan apa itu virtual machine.

Bahasa pemrograman merupakan bahasa (mungkin ini bisa jadi pertanyaan lagi, apa itu Bahasa?) yang dipakai dalam menulis kode sumber dari suatu aplikasi. Bahasa ini dapat kemudian dikompilasi, atau diterjemahkan menjadi bahasa mesin, atau singkatnya menjadi sederetan intruksi yang bisa dimengerti oleh mesin (CPU) untuk dijalankan.

Setidaknya di sini kita juga bisa mengerti sedikit mengenai 'mesin'. Mesin yang dimaksud di sini adalah perangkat keras, dengan komponen 'otak'nya yakni CPU alias Central Processing Unit. Mesin ini yang menjalankan instruksi-intruksi tersebut yang bagi kita nampak atau terasa sebagai suatu aplikasi.

Dari sini kita bsia membahas apa yang dimaksud dengan Virtual Machine. Istilah ini menggambarkan kedekatan fungsionalitas komponen ini dengan apa yang dikerjakan oleh 'real' machine atau CPU itu. Virtual Machine mengemulasi atau meniru (menurut istilah yang berterima di KBBI - seperti yang selalu diingatkan oleh dosen saya, Bapak Rinaldi Munir 'mengimakkan') fungsi dari CPU dalam hal menjalankan instruksi-instruksi tersebut.

Adanya emulasi tersebut membuat aplikasi-aplikasi yang ditulis dalam bahasa Java bisa dijalankan di atas virtual machine tersebut, independen terhadap Operating System (OS). Kita bisa lihat bahwa banyak aplikasi-aplikasi yang hanya bisa berjalan di atas OS tertentu saja. Misalnya ada aplikasi Internet Explorer dan Outlook hanya bisa berjalan di atas platform OS Windows saja, bahkan mungkin ada juga aplikasi yang hanya bisa berjalan di atas Windows versi sekian saja.

Dari segi bisnis, ketergantungan aplikasi atas operating system seperti itu, membuat posisi penjual OS menjadi sangat kuat. Pengembang aplikasi seolah-olah didikte oleh kepentingan bisnis penjual OS, yang tiap tahun mengeluarkan versi terbaru OS dengan gembar-gembor berbagai perbaikan dan fitur-fitur baru.

[Aplikasi
[Bahasa Java
[Java Virtual Machine
[Operating System
[CPU

Karena itulah Java menjadi sesuatu yang powerful sekarang ini, suatu kekuatan besar yang bisa membuat Microsoft, raksasa di industri teknologi informasi deg-degan.
Sebab saat operating system menjadi irrelevan, tidak ada lagi rasa ketergantungan terhadap operating system dari satu vendor saja

Apa konsekuensi dari kenyataan ini terhadap pedagang operating system (baca: Microsoft)? Konsumen akan semakin tidak tertarik untuk membeli update atau release selanjutnya yang menjadi inti dagangan para pedagang. Sebab aplikasitidak lagi bergantung pada OS sebagai platform tempatnya berjalan.

Bahasa Java dan JVM telah membuat suatu layer yang independen terhadap OS dan hardware sehingga apapun aplikasi yang berjalan di atasnya tidak akan lagi memiliki ketergantungan terhadap operating system apalagi hardware.
Jadi Java telah melimpahkan bargaining power dari pedagang operating system terhadap pihak lain yakni pengembang aplikasi dan end-user.

Namun tidak mungkin Java akan mencapai kekuatannya seperti ini jika tidak ada kepentingan bisnis lain dari empat pemain besar yakni IBM, BEA, ORACLE, dan SUN. SUN Microsystems yang memegang lisensi atas pengembangan teknologi Java ini. Adanya pemberian lisensi ini memberi hak bagi SUN untuk menetapkan koridor teknis yang mesti diikuti oleh pengembang teknologi, agar Java tidak dikorupsi untuk diselewengkan sehingga menjadi ketergantungan terhadap suatu platform OS tertentu. Hal ini tentunya penting sekali sebab 'kemerdekaan' dari OS merupakan salah satu prinsip mendasar dari Java.

Baca Java Lobby atau JRoller untuk pencerahan selanjutnya. Saya sendiri juga cukup menikmati pandangan-pandangan sarkastis dari Hani Soleiman, di blognya BileBlog.

Comments

Popular Posts