|
Interview kali ini saya berkesempatan untuk mewawancarai beberapa
orang yang berkecimpung dengan dunia Java di Indonesia. Saya
tertarik mewawancarai beberapa orang-orang ini untuk lebih jauh
membicarakan perkembangan dan prospek Java di Indonesia. Mungkin
Anda sudah tahu bahwa Java merupakan platform yang saat ini banyak
dipakai tidak saja di kalangan akademisi tetapi bahkan juga sebagai
solusi yang ampuh bagi perusahaan skala enterprise. Awalnya
penulis mengirimkan e-mail pertanyaan seputar Java kepada
orang-orang berikut ini.
- Frans Thamura (Intercitra)
- Eko BS (Sun Microsystems)
- Endy Muhardin
Mereka semua adalah orang-orang yang bergelut dengan Java di
perusahaan masing-masing dan juga sangat aktif di komunitas maya
maupun non-maya. Mari kita nikmati hasil wawancara dengan Frans,
Endy dan Eko berikut ini.
Platform Java memang tumbuh sangat pesat dan banyak inovasi yang
lahir di dunia Java, khususnya yang lahir dari komunitas pecinta
Java. Sekarang mari kita simak hasil interview kami berikut ini.
Sony AK Knowledge Center (SAKKC): Bagaimana keadaan perkembangan Java di Indonesia saat
ini?
Endy Muhardin (EM): Menurut saya, beberapa tahun terakhir ini, jumlah
pengguna Java di Indonesia sudah meningkat secara signifikan.
Beberapa universitas juga sudah menjadikan Java sebagai bahasa
pengantar utama dalam perkuliahan.
Dari sisi komunitas, diadakan pertemuan rutin yang dihadiri oleh
para peminat Java, baik yang expert maupun yang newbie. Dalam
beberapa bulan terakhir, jumlah pesertanya semakin banyak.
Seringkali ruangan yang disediakan tidak dapat menampung keseluruhan
peserta.
Frans Thamura (FT): Sangat hebat, sangat hebat, tetapi sayangnya vendor
kurang turun gunung, jadi yah itu programmer yang siap pakai di
industri masih sangat sedikit. Jadi sekarang sudah saatnya vendor
turun gunung, kecuali mereka bangga dengan mereknya dan dengan
promosi sendiri, wabah produk mereka yang berbasis Java akan
menyerang para member Java.
Eko BS (EBS): Sangat menarik, dari sisi komunitas mulai
menengok Java sebagai satu peluang karir, dan di sisi bisnis mulai
menengok Java sebagai satu solusi yang bisa mendukung kepentingan
strategis bisnis.
SAKKC: Bisa diceritakan teknologi-teknologi terkini yang ada
di Java saat ini?
EM: Teknologi terkini yang terkenal antara lain adalah:
- Aspect
- Annotation
Aspect digunakan untuk menambahkan fungsionalitas ke object yang
sudah ada secara transaparan. Misalnya otorisasi, siapa boleh
memanggil method apa. Kalau kita coding secara manual ke method,
akan ada kode otorisasi di semua method, sehingga banyak terjadi
duplikasi. Istilah pemrogramannya, kode seperti ini tidak ortogonal.
Tambahkan kode untuk logging, buka-tutup resource, dan lainnya, maka
kode program kita akan menjadi sangat-sangat tidak efisien dan sulit
dimaintain. Dengan Aspect, kode yang tersebar dan terduplikasi ini
dapat dikumpulkan di satu tempat saja. Tanpa Aspect, kita dapat
mencapai tujuan yang sama dengan pattern Interceptor.
Annotation adalah implementasi metaprogramming di Java.
Metaprogramming artinya memprogram program itu sendiri. Salah satu
contoh penggunaan annotation adalah untuk menerapkan Aspect pada
kode. Jadi, di dalam kode program, kita menambahkan kode annotation
untuk mengkonfigurasi Aspect. Masih banyak lagi penggunaan
annotation yang meningkatkan produktivitas. Contoh lain adalah
konfigurasi mapping tabel database dengan business object.
FT: Ada 2, satu yaitu java dari vendor (di Indonesia
kurang populer), dan Java yang light, sehingga bisa buat sistem yang
murah, setelah itu yang teknologi diatas Java Enterprise, seperti
framework JSF yang standard, integrasi beberapa produk open source
kelas dunia seperti Struts Shale dengan Webwork, Injection yang lagi
naik daun.
EBS: Service orchestration, merupakan next wave dari
penerapan teknologi Java. Service orchestration bermakna bagaimana
aplikasi-aplikasi yang pernah dikembangkan bisa diintegrasikan,
dengan mereposisi masing-masing aplikasi tsb sebagai satu service,
yang bisa dimainkan dalam satu proses kolaborasi.
SAKKC: Java itu sebenarnya Free atau Open Source atau
bagaimana? Bisa dijelaskan?
EM: Java sebenarnya adalah kumpulan spesifikasi yang free,
dikeluarkan oleh Sun Microsystems. Mulai dari bahasa pemrogramannya,
berbagai aplikasi server, dan juga spesifikasi komponen yang dapat
dijalankan di server adalah berupa spesifikasi/standar. Implementasi
dari standar ini bisa dibuat oleh siapa saja. Untuk saat ini,
implementasi bahasa pemrograman yang umum digunakan antara lain Sun
Microsystems, IBM, dan BEA.
Implementasi ini gratis dan bebas digunakan untuk perorangan,
tapi ada batasan-batasan khusus dalam pendistribusiannya. Artinya,
kita boleh pakai dengan gratis atau bebas, tapi kita belum tentu
boleh untuk memberikannya pada orang lain. Selain itu, juga ada
implementasi yang open source misalnya Blackdown dan gcj.
Di luar bahasa pemrogramannya sendiri, ada banyak kumpulan
framework, library, dan aplikasi yang open source. Salah satunya
adalah project Jakarta milik Apache Software Foundation. Project
Jakarta ini menampung banyak komponen siap pakai yang open source.
Ini mungkin berbeda dengan bahasa pemrograman seperti yang kita
kenal dulu, misalnya VB atau Delphi. VB atau Delphi adalah sebuah
produk, bukan spesifikasi. Jadi, hanya ada satu implementasi dari
VB, yaitu buatan Microsoft, dan hanya ada satu implementasi Delphi,
yaitu yang diterbitkan Borland.
Untuk platform .NET, Microsoft juga mengambil pendekatan
spesifikasi-implementasi seperti Java. Spesifikasinya tersedia bagi
umum, dan Microsoft menyediakan implementasinya berupa Visual Studio
.NET. Tapi masyarakat umum juga bisa membuat implementasi sendiri,
misalnya project Mono (http://www.mono-project.com).
FT: Java lebih tepat disebut sebagai standard dibawah
JCP.org saat ini, dan salah satu implementasinya dengan nama sama
Java dari Sun yang disebut Sun Java SDK, sedangkan implementasi
lainnya seperti GCJ, Harmony, Javali dan Classpath adalah yang
lainnya.
Harmony dan Classpath yang paling agresif untuk mengadopsi
standard JCP, yang nantinya dalam beberapa tahun ke depan akan
menjadi alternatif dari Sun Java SDK.
EBS: Pertanyaan yang cukup irrelevant, Java sebagai sebuah
platform pemrograman yang dikembangkan melalui Java Community
Process. Java Community Process adalah satu organisasi yang
beranggotakan wakil-wakil berbagai perusahaan dan komunitas yang
menggodok standar-standar bagi teknologi Java. Ini menjadikan Java
mempunyai standar-standar yang bersifat terbuka atau open-standard.
Standard-standard ini kemudian diimplementasikan oleh berbagai
pihak, baik perusahaan bisnis maupun kelompok lain. Implementasi
dari standar-standar ini pada akhirnya bisa bersifat free, atau bisa
juga bersifat open source, tergantung vendor atau pihak-pihak
tersebut.
Untuk Java Virtual Machine misalnya, ada implementasi dari Sun
Microsystems, yang bersifat FREE tapi bukan open source. Ada juga
inisiatif dari Apache Harmony yang diarahkan ke open source.
SAKKC: Bagaimana mengenai pangsa pasar pengguna Java di
Indonesia dibandingkan dengan platform yang lain?
EM: -
FT: Java naik terus, saat ini dibawah JUG sendiri kurang
lebih ada 200-an perusahaan yang mulai ke Java, ini termasuk yang
100% Java company seperti Intercitra atau yang Microsoft partner
yang melirik ke Java.
Maklum Java itu benar-benar end-to-end dari mobile sampai
enterprise clustering, dan semuanya sudah ada tuh perusahaan yang
bergerak disana.
EBS: Sangat prospektif terutama ke depan, saat tantangan
pengembangan sistem informasi berarah kepada bagaimana melakukan
integrasi antar aplikasi.
SAKKC: Banyak orang saat ini mengatakan bahwa saat ini Java
bertempur melawan .NET, bagaimana pendapat Anda mengenai hal
tersebut? Siapa yang bakal menang dan bagaimana kesiapan Java dalam
menghadapi pesaing lainnya?
EM: Siapa yang menang atau kalah itu masih perlu kita
saksikan. Satu hal yang jelas, cakupan pasar Java jauh lebih besar
daripada .NET. .NET hanya bisa berjalan 100% pada Windows.
Implementasi Mono yang bisa berjalan di Linux masih belum memiliki
seluruh fitur yang ada dalam spesifikasi.
FT: Wah itu mah gak usah dibahas, .NET itu pasarnya beda,
dengan Java dan sudah gak bisa dibandingkan, secara marketing satu
menguatkan Windows satu sebagai platform, jadi jangan disamakan
tetapi memang diakui .NET dan Java adalah teknologi Virtual Machine.
Siapa yang menang? .NET akan ada pasar, karena kekuasaan
Microsoft di desktop, Java tentu saja di enterprise market dan
mobile. Tetapi jangan kaget Mustang lagi ke desktop juga, dan
Microsoft yang punya super cross selling product, pasti ada strategi
menjual .NET. ABAP dari SAP saja ada yang pakai, masa .NET gak ada.
Demikian juga dengan Java yang didukung 700 lebih (anggota JCP)
perusahaan, gak akan mudah hilang. RPG aja yang sudah kaleng butut,
IBM sudah suruh migrasi ke Java masih ada.
EBS: Saya kira ada ruang-ruang di mana Java lebih cocok
digunakan dari .NET, dan juga sebaliknya. Kompetisi di antara Java
dan .NET bisa jadi juga irrelevant, bahkan pun untuk bersaing dengan
bahasa pemrograman ataupun platform lain.
Dunia IT, khususnya software development, terus bergerak ke
depan, menemukan tantangan-tantangan baru untuk mengembangkan solusi
bagi mendukung proses-proses bisnis. Dengan paradigma ini,
mempertentangkan Java, .NET dan katakanlah PHP, Ruby, Python atau
Perl bisa menjadi irrelevant. Karena ada satu problem domain yang
spesifik di mana masing-masing bisa dipilih sebagai solusi paling
tepat.
SAKKC: Java banyak digunakan oleh kalangan enterprise dan juga
akademisi, bagaimana menurut Anda akan hal tersebut? Apakah Java
sudah layak untuk kebutuhan enterprise?
EM: Java didukung oleh vendor-vendor terkemuka di dunia,
misalnya IBM, BEA, Oracle, dan sebagainya. Perusahaan tempat saya
bekerja banyak menangani pembangunan aplikasi di perusahaan nasional
dan internasional. Hampir seluruh proyek yang dikelola menggunakan
Java sebagai teknologi utama. Menurut saya, kelayakan Java untuk
kebutuhan enterprise sudah tidak perlu dipertanyakan lagi.
FT: Java memang sangat kuat di enterprise pasar yang hanya
dimiliki oleh para vendor UNIX. Itu gak usah dipungkiri lagi.
EBS: Dari sisi desain dan arsitektur, Java mempunyai
solusi-solusi untuk menjawab kebutuhan pengembangan aplikasi
enterprise.
SAKKC: Kebanyakan orang yang ingin belajar Java selalu
mengatakan susah untuk memulainya. Apa ada saran-saran agar mudah
belajar Java?
EM: Segala hal yang baru dipelajari itu sulit. Akan
menjadi mudah kalau kita sudah bisa. Semua orang mengalami kesulitan
waktu pertama kali belajar berjalan, naik sepeda, ataupun
mengendarai mobil. Sama saja dengan bahasa pemrograman. Saran saya
adalah:
- Menerima kenyataan bahwa belajar itu sulit. Tapi sulit bukan
berarti TIDAK FUN.
- Membuat proyek kecil/sederhana dengan menggunakan Java.
Saran ini tidak hanya untuk Java, tapi juga bahasa pemrograman
lainnya. Saya selalu membuat aplikasi kecil apabila ingin
belajar bahasa/teknologi baru. Ini akan meningkatkan pemahaman
tentang hal-hal teknis praktis.
- Aktif dalam komunitas, baik bertanya, maupun menjawab.
Banyak pemula di mailing-list yang saya ikuti ragu-ragu untuk
menjawab walaupun sebenarnya pertanyaannya sederhana (biasanya
diajukan oleh yang lebih pemula lagi :D) Padahal dalam proses
menjawab itu, si penjawab akan mendapatkan pengalaman yang
penting. Misalnya pengalaman mencari solusi di internet,
pengalaman menerima koreksi (apabila jawabannya salah), dan juga
pengalaman berdiskusi secara dewasa.
FT: Karena terbiasa dengan drag and drop VB, yah itu salah
sendiri, tetapi dengan VB.NET yang secara teknologi berbeda jauh
dengan VB6, serta fitur VB.NET yang tidak sebanyak C#, serta C# yang
sama dengan JAva. Jadi yah sudah gak ada pilihan, ke Java atau
keluar dari market IT.
EBS: Temukan satu problem di dunia riil yang cocok untuk
dipecahkan dengan teknologi Java. Lalu mulai belajar Java, bukan
sebagai sebatas teknologi, tetapi sebagai solusi untuk memecahkan
masalah tersebut.
Anda akan merasa susah belajar Java, jika Anda mengibaratkan diri
susahnya mempelajari traktor, untuk membajak tanah, sementara
menurut Anda menggunakan cangkul jauh lebih sederhana. Anda perlu
menemukan masalah yang jauh lebih kompleks, di mana Java mempunyai
solusi-solusi yang sangat membantu Anda.
SAKKC: Bisa diceritakan ketika Anda pertama kali kenal dengan
Java? Bagaimana pandangan Anda waktu itu?
EM: Saya pertama kali mendengar tentang Java pada saat
kuliah, kira-kira tahun 1998. Pada saat itu, Java terkenal sebagai
bahasa yang bisa berjalan di segala platform. Tetapi, saya baru
mempelajari Java secara serius pada tahun 2002 karena tuntutan
pekerjaan. Saya harus menjadi instruktur dan mengajarkan Java pada
peserta training.
Pandangan saya pada saat mulai belajar adalah:
- Sintaksnya mirip dengan PHP yang pada saat itu sudah lebih
dulu saya kuasai.
- Mempelajari (dan bisa berpikir secara) Object Oriented lebih
sulit daripada belajar Java itu sendiri.
- Sangat produktif, karena tidak perlu penyesuaian apalagi
kompilasi ulang apabila ingin berganti Linux -> Windows atau
sebaliknya. Kita juga tidak perlu mengelola memori seperti C
atau C++.
FT: Saya di-email oleh Rasmus sang pembuat PHP, karena
pertanyaan saya mengenai positioning PHP, saat itu saya mengasuh
Linux Indonesia dan juga teman saya salah satu commiter PHPNuke,
akhirnya gara-gara email itu, saya ke Java, dan hebatnya setelah
statement itu, terbukti Apache sekarang jadi komunitas Java yang
besar di dunia.
EBS: Lambat, tetapi mempunyai fitur-fitur yang sangat
lengkap dan sangat memudahkan programmer. Kenyataannya lambat bisa
dipecahkan dengan membeli hardware yang lebih baik, yang bisa jadi
jauh lebih cepat ketimbang mesti mengembangkan solusi dengan bahasa
pemrograman seperti C++ yang bisa jadi lebih cepat.
SAKKC: Apa kira-kira tantangan yang akan dihadapi Java dan
developer Java di masa-masa yang akan datang?
EM: Buat teknologi Java, tantangannya adalah bagaimana
meningkatkan produktifitas developer.
Pada waktu saya belajar Java dulu, Java sangat produktif, karena
tidak perlu mengelola memori sendiri, tidak seperti C atau C++. Ini
sangat meningkatkan produktivitas, karena kegiatan mengelola memori
membutuhkan banyak usaha dan juga rentan terhadap bug. Saat ini,
hampir semua bahasa populer sudah memiliki fitur ini, sehingga Java
tidak lagi unggul dalam hal ini.
Sekarang ini, Java dianggap tidak produktif, karena banyak sekali
overhead yang harus dilakukan dalam membuat aplikasi, misalnya
membuat konfigurasi xml, deployment, dsb. Di lain pihak, sekarang
banyak bermunculan bahasa/teknik pemrograman/framwork yang jauh
lebih efisien, misalnya Ruby.
Developer Java, menurut saya, dituntut untuk:
- Mengubah mindset yang selama ini sudah menjadi tradisi.
Framework Ruby on Rails yang sekarang sedang populer, tidak
sepenuhnya hebat karena bahasa Ruby-nya. Memang Ruby
memungkinkan kita untuk melakukan meta-programming dengan lebih
mudah, tetapi framework Rails sendiri memperkenalkan paradigma
baru yang lebih efisien daripada yang selama ini dianut
developer Java.
Misalnya, paradigma 'configuration based on convention' dan
'smart default' yang digunakan di Ruby on Rails. Artinya,
desainer framework berusaha membuat konfigurasi standar (yang
tidak membutuhkan effort tambahan dari developer) tapi dapat
diganti apabila perlu. Pada 80% kasus, konfigurasi standar
tersebut sudah mencukupi, sehingga programmer tidak dibebani
kegiatan konfigurasi.
- Tidak berpuas diri dan selalu meningkatkan kemampuan.
Posisi market leader di enterprise di Java sangat berpotensi
menimbulkan rasa superioritas di para developer Java. Kita
sebagai developer Java harus selalu siap menerima konsep baru
yang datang dari luar dunia Java.
FT: Akan semakin menarik, dengan masuknya pervasive
computing dan lisensi Java di mobile yang dipegang Sun dan tidak
gratis, membuat teknologi alternatif lainyna akan berkembang,
seperti Erlang.
EBS: Terjebak kepada perkembangan-perkembangan teknologi
Java yg setiap hari selalu muncul hal yang baru. Dan lupa
mengembangkan solusi-solusi tepat guna untuk memecahkan masalah yang
ada. Tanpa perlu menunggu solusi terbaru atau merombaknya terus
menerus untuk mengikuti perkembangan terbaru.
SAKKC: Apa ada pesan-pesan lain bagi rekan-rekan yang ingin
memperdalam Java?
EM: Saat ini, Java di Indonesia masih dalam taraf
pertumbuhan, sehingga diharapkan kebutuhan developer Java masih akan
meningkat terus. Jadi, belajar Java masih menjadi investasi yang
berprospek cerah. Jangan ragu untuk belajar Java. Walaupun terasa
lebih sulit, Java membuat kita menjadi terbuka wawasannya terhadap
masalah-masalah enterprise, misalnya database connection pooling,
clustering, distributed transaction, dan lainnya. Banyak konsep
penting yang dapat kita peroleh dibandingkan cara cepat
klik-and-drag.
FT: Percaya pada kemampuan sendiri, jangan lupa untuk
membagi ilmunya terutama ilmu yang didapat dari komunitas.
EBS: Competition of giving ! Jika Anda berlomba memberi,
maka Anda akan mendapatkan jauh lebih banyak.
SAKKC: Di mana tempat yang enak untuk belajar atau kursus
Java? Ada yang tahu?
EM: Berdasarkan pengalaman, saya menganjurkan untuk
otodidak belajar sendiri di rumah. Cukup download tutorial dan SDK
dari situs Sun dan belajar dari situ. Tentu saja penguasaan bahasa
Inggris mutlak diperlukan. Pertanyaan atau keraguan bisa dicari
solusinya di milis Java.
FT: Belajar sendiri dan sharing dengan teman.
EBS: -
SAKKC: Apa Java IDE yang Anda sukai? Apa alasannya?
EM: Persyaratan IDE layak pakai bagi saya cuma satu: bisa
mewarnai source code. Tambahan autocomplete, refactoring tools, dan
integrasi dengan server itu cuma sekedar kosmetik saja. Programmer
yang baik seharusnya tidak bergantung pada kecanggihan tools.
FT: Saya pengemar Eclipse, tetapi sedang belajar Netbeans
dan JDeveloper, sebab semuanya dah gratis, coba semua.
EBS: Netbeans 5.5 ... karena tidak membutuhkan lagi
plug-in-plug-in untuk aplikasi Java EE 5.
SAKKC: Oh ya, kami dengar saat ini ada program yang dinamakan
Java Champion. Bagaimana menurut Anda mengenai program tersebut? Apa
saja kira-kira keuntungannya bagi pemegang gelar Java Champion ini?
EM: Saat ini belum ada komentar tentang program JC.
FT: Saat ini Java Champions sudah ada, tetapi program
nyatanya lagi digodok, yang pasti saat ini sih seorang JC bisa
kenalan dengan orang Java beken dunia, walaupun secara mailing list.
Keuntungan lain, JC adalah keren-kerenan.
Maklum bagi saya yang sudah dapat, tidak memberikan nilai income
tambahan selain keren, tetapi kerennya juga masih kurang afdol,
mungkin 2-3 tahun lagi yah. Maklum JC adalah program Sun global
divisi outreach sebenarnya.
EBS: -
Sekilas Endy Muhardin
Endy Muhardin adalah praktisi IT yang berdomisili di Jakarta. Saat
ini bekerja di salah satu perusahaan software development terbesar
di Indonesia pada divisi Software Engineering Process Group.
Kompetensi utama meliputi Linux, Java, dan framework Open Source.
Situs Endy Muhardin bisa dilihat pada http://endy.artivisi.com/ atau
e-mail di endy@artivisi.com dan
bisa juga ditemui melalui Yahoo! Messenger-nya dengan ID endymuhardin.
Sekilas Frans Thamura
Frans Thamura adalah praktisi TI dan pecinta Java. Saat ini bekerja
di Intercitra. Beliau bisa dijumpai melalui e-mail
frans@intercitra.com atau di Yahoo! Messenger dengan ID fthamura.
Sekilas Eko Budhi Suprasetiawan
Java System Technical Lead di Professional Service, Sun Microsystems
Indonesia.
Demikian wawancara singkat seputar perkembangan teknologi Java dan
hal lainnya di Indonesia. Semoga bermanfaat bagi Anda
semuanya. Jika ada saran atau komentar bisa dikirimkan melalui
sony-ak@sony-ak.com. Untuk membaca tulisan menarik lainnya silakan menuju ke
situs Sony AK Knowledge Center yang beralamat di
www.sony-ak.com.
Terima kasih.
| Send
your comments or suggestions |
|
|
|