Akuisisi Oracle atas Sun telah membuat orang khawatir tentang masa depan Java, apakah Oracle dapat terus mempertahankan keterbukaan Java, dan menghadapi kebangkitan sejumlah bahasa ringan seperti Ruby, Python, atau PHP. , apakah Java bisa terus mempertahankan popularitasnya dalam bidang pembangunan?
14 tahun yang lalu, ketika seorang jenius pemasaran dari Sun mengubah nama bahasa eksperimental lintas platform dari Oak yang melambangkan soliditas menjadi Java yang penuh keharuman, dia mungkin tidak menyangka bahwa bahasa ini berpotensi menjadi bahasa populer. Faktanya, jika Sun sekarang ingin mengubah nama bahasa ini agar mencerminkan posisinya secara akurat di industri komputer, tampaknya Oak lebih jelas. Saat ini, meskipun bahasa Java tidak benar-benar berkembang di mana-mana, bahasa Java telah muncul di banyak kesempatan dan perangkat, dan memiliki reputasi pengoperasian yang stabil dan dirancang dengan baik; kode Java mungkin tidak mendominasi semua komputer atau semua platform, tetapi hampir sama menjadi bahasa universal berada dalam jangkauan.
James Gosling, bapak Java, mengemukakan hal ini ketika dia berbicara di konferensi OpenWorld yang diselenggarakan oleh Oracle. Dia menampilkan tayangan slide JavaFX dengan serangkaian statistik: lebih dari 850 juta desktop yang mendukung Java dan sekitar 10 miliar perangkat yang mendukung Java. Faktanya, mesin virtual Java umum ditemukan di perangkat elektronik: pembaca e-book Kindle, pemutar disk Blu-ray dan ponsel pintar (termasuk ponsel yang kurang pintar), dll. Aplikasi iPhone berjalan di ribuan iPhone, namun Java tertanam di 2,6 miliar ponsel, mulai dari ponsel yang tidak terlalu pintar yang dapat Anda beli seharga $20 hingga BlackBerry generasi terbaru dan ponsel Android Tidak ada yang disertakan.
Mengundang Gosling untuk berbicara di konferensi OpenWorld hanyalah salah satu cara yang diharapkan oleh kepala Oracle Larry Ellison untuk meyakinkan para insinyur bahwa bahasa tersebut memiliki masa depan yang cerah. Oracle ingin mengakuisisi Sun Microsystems, namun masih harus menunggu regulator Eropa menyetujui keputusan tersebut. Pemerintah AS telah memberikan lampu hijau, namun pejabat pemerintah Eropa belum menyetujui kesepakatan tersebut karena kekhawatiran terhadap pengembangan MySQL. Baik Gosling maupun Ketua Sun McNealy mengatakan bahwa setelah merger dan akuisisi selesai, Java akan menerima lebih banyak perhatian dan sumber daya dari Oracle dibandingkan sebelumnya.
Dalam jangka pendek, sinyal yang disampaikan Ellison mungkin tidak terlalu penting, karena saat ini Jawa sudah menjadi iklim, tidak mudah mengubah arah pembangunan. Tentu saja, sebagian orang percaya bahwa model bisnis Oracle sangat berbeda sehingga pasti akan membuat perubahan besar pada setiap bagian ekosistem Java. Secara keseluruhan, untuk setiap alasan mengapa Java mungkin berubah, ada alasan yang sama bagusnya mengapa Oracle mungkin ingin mempertahankan status quo.
Aplikasi tingkat perusahaan adalah medan perang utama
Java pertama kali menemukan tempatnya di sisi server, dan area ini masih menjadi tempat utama di mana mesin virtual Java diharapkan dapat terlihat di masa depan. Untuk semua produk Oracle, server besar juga menjadi rumah utama, jadi masuk akal jika pasangan ini muncul. Meskipun pemrogram PHP lebih menyukai MySQL, untuk aplikasi perusahaan yang intensif data, banyak proyek paling penting masih menggunakan Java yang dibungkus dengan arsitektur berbasis Oracle, dan situasi ini tidak akan berubah dalam waktu dekat.
Sun mengatakan server aplikasi GlassFish diunduh lebih dari 1 juta kali sebulan, dan platform lama seperti Tomcat masih umum. Karena teknologinya sangat dihormati, cepat, dan benar-benar lintas platform, perusahaan besar (seperti bank dan perusahaan asuransi) memiliki permintaan yang tinggi terhadap pengembang Java.
Namun, Java tidak lagi dianggap sebagai sintaksis terbaru dan paling keren. Beberapa pemrogram mengeluhkan struktur bahasa yang diketik secara statis dan beralih ke bahasa yang lebih baru atau lebih sederhana, seperti Ruby, Python, atau PHP. Banyak aplikasi web sederhana saat ini dikembangkan dalam bahasa-bahasa ini karena kode yang ditulisnya mudah dimodifikasi dan dapat dibuat prototipe dengan cepat. Namun, bahasa baru yang mudah digunakan ini sering kali mengandalkan Java: Pengembang Ruby sering menggunakan JRuby (bahasa Ruby berbasis Java) karena mesin virtual Java dapat menangani tugas-tugas berat dengan lebih baik dan membebaskan banyak thread. Jython (bahasa Python berdasarkan Java) serupa.
Java kini menggabungkan beberapa teknik pemrograman terbaru untuk mengekang intrusi bahasa-bahasa baru ini. Grails jelas meniru banyak pola deklaratif sederhana dari Ruby on Rails; kerangka kerja Grails menggabungkan plug-in skrip seperti Groovy dengan middleware database yang disebut Hibernate. Groovy sendiri menambahkan banyak opsi dinamis untuk memfasilitasi interpretasi kode, dan dapat langsung dihubungkan ke bagian mana pun dari Java Application Programming Interface (API). Bahkan tidak perlu memikirkan tentang Python atau Ruby, karena Groovy, dengan sintaksis yang apik dan modern, memberi pemrogram Java akses ke beragam perpustakaan besar dan mesin virtual dasar yang kokoh.
Gunakan perangkat seluler
Jumlah ponsel Java (diperkirakan sekitar 2,6 miliar) sangat mencengangkan, karena banyak ponsel paling sederhana di pasaran yang menjalankan Java Platform Micro Edition (Java ME). Hal ini memungkinkan perusahaan seperti Wattpad.com membangun platform pembacaan dokumen yang bekerja dengan lancar di seluruh dunia ketiga.
Namun, jumlah ponsel pintar yang menjalankan Java relatif sedikit. Kesuksesan besar iPhone telah menginspirasi banyak orang untuk mempelajari kembali Objective C. Bahasa ini memungkinkan pemrogram meningkatkan kendali mereka atas beberapa masalah sistem seperti penggunaan memori. Java menyembunyikan sebagian besar masalah mendasar dari pemrogram, yang merupakan keuntungannya, tetapi premisnya adalah tidak perlu mengelola sumber daya seperti memori, karena jika ada kesalahan kecil dalam pengumpulan sampah, beberapa permainan tidak akan berjalan. Sayangnya, karena masa pakai baterai merupakan faktor yang penting, ponsel cerdas memerlukan pengelolaan sumber daya yang lebih ketat dibandingkan platform lainnya.
Namun, pemrogram Java masih banyak diminati karena BlackBerry terus menggunakan Java ME pada platform barunya: ia menambahkan dukungan untuk layar sentuh dan sensor orientasi ke profil ponsel. Ada faktor yang tidak dapat diprediksi di Android. Sejak Google membuka penggunaan Android, banyak produsen ponsel yang ikut-ikutan menggunakan Android.
Android Google dibuat dengan sumber terbuka Apache Harmony dan kelas-kelasnya, bukan pada Java Development Kit (JDK) dan Java ME yang dikembangkan oleh Sun. Bagi seseorang yang menulis kode di Eclipse, kode tersebut akan terlihat hampir sama. Dalam banyak kasus lainnya, hal ini tidak menjadi masalah karena pengembangan Android menggunakan banyak bentuk XML, namun jika kedua kerangka pengembangan saling menjauh, pemisahan ini dapat menjadi masalah besar.
Dapatkan kembali landasan desktop
Kebanyakan orang masih berpikir bahwa Java tidak pernah berhasil di desktop, dan itu adalah masa lalu. Saat ini, Java perlahan tapi pasti merambah ke setiap sudut sistem operasi modern. Meskipun aplikasi standar yang ditulis dalam Swing terus mengalami kesulitan dalam mencoba menargetkan bagian paling dasar dari setiap platform, dengan platform pengembangan dan kerangka kerja yang lebih baru seperti JavaFX dan Web Start, penerapan perangkat lunak secara efektif melalui Web dapat dilakukan. Platform asli menangani semua caching Java Archives (JAR). Dengan mengklik link, terkadang diikuti dengan beberapa klik pada kotak dialog pemberian izin, perangkat lunak dapat diinstal dan diperbarui, serta dapat dijalankan kapan saja.
JavaFX masih belum diketahui. Kemampuan grafis sekarang bersaing dengan Adobe Flash; mesin komputasi mendukung sebagian besar Java API, tetapi bahasanya merupakan campuran aneh dari Java asli, JavaScript, dan bahasa markup lainnya. Kodenya lebih sederhana dari Java biasa, sehingga programmer Java harus mempelajari hal-hal baru. Namun, untuk alat desktop yang sangat interaktif, kelas animasi baru mungkin layak untuk dipelajari. Web Start perlahan-lahan terus meningkatkan kemampuan untuk menyebarkan perangkat lunak langsung ke desktop melalui browser.
Rebut bidang yang disematkan
Java juga tumbuh subur di tempat-tempat yang paling tidak diduga oleh orang-orang. Meskipun pemrogram C mungkin tidak pernah mengakui kemampuan penyimpanan cerdas dan eksekusi cepat dari Mesin Virtual Java, keberhasilan Java pada perangkat non-smartphone, dekoder, chip tertanam, Kindle, dan perangkat berdaya rendah lainnya menunjukkan: Sepenuhnya mampu tampil dalam aplikasi yang tertanam. Popularitas Java juga membantu programmer bermigrasi dari platform besar ke platform kecil. Meskipun tidak mudah untuk beralih dari pengembangan aplikasi tingkat perusahaan untuk mainframe ke pengembangan kode kecil yang tertanam, standar Java membuat transisi ini jauh lebih mudah dibandingkan dengan banyak alat lainnya.
Paket Java juga menjadi semakin kecil. Gosling menggunakan debu untuk menggambarkan komputer Java-aware seukuran koin. JavaCard, mesin virtual dan API untuk paket kecil tersebut, akan meluncurkan versi 3.0, versi tonggak sejarah yang akan menambah kemampuan konektivitas jaringan. Meskipun titik-titik kecil ini belum cukup kecil untuk dapat dilihat oleh mata manusia, kemampuan untuk berbicara langsung melalui Internet membuatnya sangat menggoda.
Akankah mitra berpisah?
Kekhawatiran terbesar bagi semua pengembang adalah: Konflik kepentingan seperti apa yang akan berubah jika akuisisi Sun oleh Oracle selesai? Oracle telah berkembang dengan membebankan biaya lisensi perangkat lunak yang besar, dan perangkat lunaknya dapat berjalan pada perangkat keras apa pun yang ingin dibeli oleh pelanggan. Sun, sebaliknya, biasanya memberikan perangkat lunak secara gratis dan kemudian menghasilkan sejumlah uang dengan menjual server. Strategi distribusi ini mungkin tidak langsung berubah karena terlalu banyak kelembaman, namun tidak ada yang tahu keputusan apa yang akan diambil Oracle di masa depan.
Beberapa orang percaya kegagalan Oracle dalam membebankan biaya lisensi yang besar di masa lalu hanya akan mendorong Ellison untuk mengadopsi taktik serupa dengan Sun. Mungkin tim penjualan Oracle sedang mendambakan peluang ini saat ini: secara bertahap meningkatkan biaya lisensi dimana Java dulunya gratis. Untuk menghindari penulisan ulang aplikasi Java Platform Enterprise Edition (Java EE), banyak perusahaan mungkin lebih memilih membayar $100, $200, atau bahkan $1 juta per CPU.
Kritikus menunjukkan bahwa Oracle dapat dengan mudah mengembangkan versi baru mesin virtual Java dengan tingkat kinerja berbeda untuk pasar berbeda. Mesin virtual desktop mungkin tetap gratis, Oracle bahkan mungkin membayar vendor komputer untuk memasarkan Java dan JavaFX, dan peningkatan kinerja dalam menangani multi-threading yang ekstrim mungkin memerlukan biaya yang sangat tinggi. Ada banyak cara untuk menghasilkan uang dari pengguna, dan biaya lisensi seringkali jauh lebih murah: Jauh lebih mahal jika pemrogram yang bandel terlebih dahulu mempelajari bahasa baru dan kemudian menulis ulang basis kode.
Namun beberapa orang berpendapat bahwa Oracle mungkin tidak akan mengadopsi langkah ini. Sebuah sumber yang dekat dengan Sleepycat, perusahaan database open source yang diakuisisi oleh Oracle pada tahun 2006, mengatakan bahwa Oracle telah menggandakan jumlah tim teknisnya, sementara semua model lisensi ganda tetap utuh. Perangkat lunak masih hadir dalam bentuk lisensi sumber terbuka atau komersial. Jika Oracle memperlakukan Java seperti Sleepycat, lisensi komunitas dan opsi lainnya akan tetap gratis dan tersedia secara luas, dan lebih banyak insinyur akan tersedia untuk meningkatkan kodenya.
Masih ada pertanyaan yang lebih mendalam mengenai hubungan jangka panjang dengan mitra-mitra besar lainnya di Jawa. Google terus mendukung Apache Harmony, sebuah proyek dengan lebih dari 1,25 juta baris kode yang tampaknya cenderung melemahkan status Sun sebagai pusat dunia. IBM kalah dalam perang penawaran untuk Sun dan kini saingannya, Oracle, lebih kuat. IBM merancang alat pengembangan Eclipse dan mungkin juga mulai membawa platform Java ke arah lain.
Mitra lain lebih agresif. Chief Technology Officer SAP Vishal Sikka telah berulang kali meminta Sun untuk merilis Java Community Process (JCP), dengan fokus pada rencana yang diusulkan oleh Oracle pada tahun 2007: menyerahkan kendali kepada organisasi standar yang terbuka, independen, netral terhadap vendor, dan semua organisasi standar. Para anggota berpartisipasi atas dasar persamaan kesempatan. Meskipun Oracle sebagian besar bungkam mengenai detailnya, dapat diasumsikan bahwa perusahaan akan mendapatkan kembali rasa hormat terhadap beberapa ide yang diwarisi dari Sun.
Namun, meskipun mitra lain mungkin terlibat dalam intimidasi, mereka mungkin mempertimbangkan masalah derajat, karena setiap orang sebenarnya saling menahan diri, dan perilaku berlebihan apa pun kemungkinan besar akan diblokir, karena semua orang menyadari bahwa begitu tertulis, di mana-mana Keuntungan dari konsep pengoperasian. Jika kode yang ditulis untuk ponsel Android tidak dapat dengan mudah dimigrasikan ke pemutar Blu-ray Sony atau server Glassfish, ada kemungkinan bahasa lain akan muncul. Faktanya, beberapa perusahaan sudah menulis toolkit yang memungkinkan pengguna menjalankan perangkat lunak Ruby on Rails atau Python dengan mudah di iPhone.
Selain itu, banyak dari bahasa-bahasa baru ini mungkin menjadi pesaing yang serius, dan terlalu banyak pertikaian hanya akan membantu bahasa-bahasa tersebut mendapatkan popularitas. Ada lusinan paket open source yang sangat bagus dan kurang dikenal di luar sana yang biasanya dapat di-porting ke setiap platform dengan sedikit konversi oleh para penggemar yang berdedikasi. Misalnya, Python sudah menjadi bahasa utama di beberapa bidang ilmiah, dan Google memilih Python, bukan Java, sebagai bahasa pertama yang didukung oleh App Engine-nya. Meskipun IBM, Oracle, dan Google mungkin saling bersaing dalam perebutan dominasi, mereka harus menyadari bahwa semua pihak mendapat manfaat dari standardisasi, bukan monopoli. Jika ada yang berani mengecualikan orang lain terlalu banyak dan mencoba mengendalikan Java, vendor lain mungkin akan menyerbu pesaingnya.
Apakah Java juga membuka toko aplikasi?
Fakta bahwa basis kode Java masih relatif kohesif dan relatif terstandarisasi telah memicu spekulasi tentang bagaimana Sun (dan Oracle, jika merger berhasil dilakukan) dapat mengeksploitasi keberadaan Java untuk menghasilkan keuntungan tanpa menaikkan biaya lisensi dan menekan semua orang? Bagaimana jika seseorang mengembangkan App Store untuk keseluruhan ekosistem Java, menjual widget yang ditulis dalam Java seperti halnya aplikasi untuk iPhone? Bisa saja di desktop, ponsel, pemutar Blu-ray, atau Bagaimana jika widget tersebut dapat berjalan di platform lain yang menggunakan Java ?
Baru-baru ini, terdapat banyak sekali aplikasi untuk ponsel Android, dan Sun juga merencanakan toko Java sehingga orang dapat dengan mudah menyeret aplikasi tersebut ke desktop, atau cukup menulis sedikit kode lagi untuk menambahkan setiap aplikasi ke Gabungan desktop , mereka dapat berjalan di hampir setiap sudut dunia Java. Namun, berurusan dengan layar dan antarmuka pengguna yang sangat berbeda dapat menjadi sebuah tantangan.
Bayangkan betapa menariknya skenario ini: sebuah aplikasi yang ditulis oleh seorang pengembang berjalan di ponsel Android, dia mengerjakan tugas di mejanya, dan sesampainya di rumah, aplikasi itu berjalan dengan lancar di pemutar Blu-ray di ruang tamu.
Menghadirkan aplikasi Java kepada orang-orang yang duduk di sofa bahkan agak tidak terduga, karena bahasa Java pada awalnya dimaksudkan untuk dijalankan di dekoder pada awalnya ketika masih disebut Oak. Visi ini akan bergantung pada keunggulan terbesar platform Java: popularitas dan stabilitas lintas platform. Mungkin keunggulan ini akan membantu Java mendatangkan pendapatan tetap bagi penemunya.