Sunday, September 24, 2006

Platform - Which way 2 go? (Only 4 Techies)

Confused?
Sebelum mulai membaca, saya jelaskan dulu bahwa saya bingung untuk menentukan pilihan platform Java dan .NET. Saya memiliki beberapa pemikiran dan saya berharap anda dapat membantu saya untuk memberikan ide-ide atau pendapat mengenai kedua platform ini.
Saya sendiri bergerak di bidang pembuatan aplikasi perangkat lunak tailor-made (sesuai permintaan customer). Aplikasi dibuat dengan Borland Delphi dan semuanya merupakan desktop application. (bukan web-based)
These thoughts are my personal opinion, not related with company I work for.

Platform

Saat ini ada dua kutub platform software yang terkemuka dan menjadi perdebatan sejak lama. Saya tidak tahu kapan persisnya perdebatan itu dimulai, tapi saya mulai memikirkan tentang keunggulan dan kekurangan dua platform ini sejak sekitar tahun 2001. Anda tentu langsung bisa menebak bahwa platform ini adalah Java dan .NET.

Bagi kalangan programmer menguasai pembuatan program pada kedua platform berbeda sekaligus bukanlah hal yang mudah. Mungkin penguasaan pembuatan program pada kedua platform ini wajib kita lakukan ketika kuliah di jurusan Teknik Informatika. Ketika dalam dunia studi kita memang selalu dituntut untuk bisa mempelajari ilmu gado-gado. Sebenarnya ini bagus juga, karena kita dipaksa untuk mencoba berbagai macam alternatif yang ada. Namun ketika kita mulai beralih ke dunia kerja, tentunya kita dituntut untuk menjadi semakin mahir. Menurut saya, kita tidak mungkin bisa menjadi mahir dalam dua platform sekaligus, kecuali kita memang mendapat bakat tersendiri untuk ini. Jadi seorang yang ingin mulai berkarir sebagai programmer, atau mungkin merencanakan untuk menjadi seorang pebisnis di bidang pembuatan software, harus membuat pilihan penting ini. Pilihan untuk memperdalam ilmu di platform Java atau di .NET.

Memperdalam ilmu di platform Java, tentunya kita harus mempelajari bahasa Java. Bahasa Java untuk tingkat advanced (yang berkaitan dengan J2EE), menurut saya cukup susah untuk dipelajari karena menurut pengalaman saya mencari resource untuk belajar Java itu susah. Buku yang membahas J2EE di Indonesia masih sangat sedikit.

Memperdalam ilmu di platform .NET, kita memiliki lebih banyak pilihan. Namun kelihatannya yang paling banyak digunakan adalah bahasa C# dan VB.NET. Mempelajari C# dan VB.NET lebih mudah karena resource dan buku-buku banyak tersedia.

Situasi Saat Ini
Sebelum membahas lebih lanjut mengenai pemilihan platform, kita lihat dulu situasi saat ini. Saat ini di negara kita, Indonesia, sistem operasi yang paling banyak dipakai di dunia bisnis adalah Microsoft Windows. Windows yang paling banyak dipakai adalah Windows XP dan beberapa masih memakai Windows 98. Dan perlu kita ingat, walaupun Windows ini sangat mendominasi di berbagai perusahaan, namun sebagian besar di antaranya adalah bajakan.
Beberapa perusahaan ada yang menggunakan Linux, sebagian terpaksa karena takut kena razia pembajakan yang akhir-akhir ini sering menjadi isu yang santer.
Saya sendiri tidak tahu, pemakaian Linux ini menyebabkan terjadinya penurunan produktivitas karyawan atau tidak, mengingat mayoritas pemakai komputer di negara ini belum terbiasa menggunakannya.

Saya sempat menanyakan harga software Microsoft dan seingat saya harga Ms Windows XP Home (setahu saya XP Home ini tidak bisa join di active directory) di kisaran $70, sedangkan Ms Windows XP Professional di kisaran $140.
Bila sebuah perusahaan kecil memiliki sekitar 10 komputer, dan hati nurani si bos mengingatkannya untuk menjalankan usaha dengan legal, maka bisa dihitung sendiri berapa biaya yang harus dikeluarkan untuk membeli sistem operasi. Sedangkan kita semua tahu sistem operasi Linux itu gratis.

Karena masih didominasi sistem operasi Windows 98 dan Windows XP, saat ini sebagian besar software house masih menggunakan bahasa pemrograman VB6 atau Borland Delphi 7 dalam pengembangan aplikasi. Namun saya melihat bahwa kedua bahasa pemrograman ini mulai out-of-date. Saya menganggapnya out-of-date setelah melihat lowongan-lowongan pekerjaan di luar negeri. Untuk platform Windows XP dan Windows 98, kedua bahasa pemrograman itu memang masih sangat mumpuni dan dapat dikatakan sudah memuaskan. Tetapi dengan ada rencana munculnya Windows Vista dalam waktu dekat dan melihat perkembangan tren di luar negeri, tampaknya kita harus mulai berpikir ke depan dan mempelajari sesuatu yang baru.

Situasi Selanjutnya
Sistem operasi dari Microsoft yang akan diluncurkan adalah Windows Vista. Windows Vista ini sendiri masih dapat menjalankan aplikasi Win32 dengan baik. Namun untuk bisa memanfaatkan kelebihan Windows Vista, para pengembang aplikasi untuk sistem operasi Windows sepertinya mau tidak mau harus mengembangkan aplikasi di atas platform .NET, yang dalam waktu dekat juga akan dirilis versi terbarunya (.NET 3.0).
Kita lihat lagi situasi di negara kita. Siapkah perusahaan-perusahaan yang saat ini menggunakan sistem operasi Microsoft bajakan menggantinya dengan Microsoft Windows Vista asli. Jika mereka tidak siap, dapatkah mereka mencari Microsoft Windows Vista bajakan? Kelihatannya Microsoft semakin pandai dalam hal mencegah pembajakan software. Jika perusahaan itu tidak bisa mendapatkan Vista bajakan akankah mereka bertahan terus dengan Windows XP bajakannya?

Jika mereka memilih untuk menjadi perusahaan yang maju, mereka harus memilih: tetap setia pada produk Microsoft (yang artinya mereka harus mengeluarkan kocek lebih untuk membeli Windows Vista), atau beralih ke sistem operasi alternatif seperti Linux.
Sebenarnya Linux juga bukan tanpa biaya, karena bila SDM perusahaan tersebut tidak siap juga dapat mengakibatkan penurunan produktifitas kerja. Belum lagi bila perusahaan tersebut harus melatih SDM bagian IT untuk menyiapkan setting jaringan baru di bawah sistem operasi Linux.

Posisi Kita Sebagai Pembuat Software
Sebagai orang IT, khususnya sebagai penyedia solusi di bidang perangkat lunak. Kita harus memikirkan jalan mana yang akan kita tempuh. Saya sendiri cukup bingung dengan hal ini. Saya melihat ada 3 jalan, yang semuanya ke arah yang berbeda:
a. Jalan Pertama
Kita mencukupkan diri dengan bahasa pemrograman yang kita pakai saat ini yang berjalan di platform Win32 (bisa Borland Delphi 7, VB6, atau Visual Foxpro).
Bila kita tetap di titik ini kita berharap masih banyak perusahaan yang menggunakan Windows XP untuk jangka waktu yang cukup lama. Dan seandainya banyak perusahaan yang beralih ke Windows Vista, kita tetap bisa berharap perusahaan-perusahaan tersebut sudah cukup puas dengan program spesifikasi Win32 kita (tidak memanfaatkan kelebihan Windows Vista dan platform .NET-nya) yang berjalan smooth di sistem operasi Vista.
Bila kita tetap memilih jalan ini, maka sekarang kita gunakan waktu kita untuk tetap memperdalam ilmu di bahasa pemrograman yang sedang kita pakai. Kita juga bisa memanfaatkan waktu luang kita untuk mencoba membuat modul-modul atau komponen-komponen program sehingga kita dapat menghasilkan suatu aplikasi dengan lebih cepat.

Kalau memilih jalan ini, saya mengasumsikan bahwa konsumen kita adalah konsumen yang kurang memperhatikan perkembangan teknologi. Ini mungkin tidak menjadi masalah karena di negara kita masih banyak pengusaha-pengusaha yang tidak begitu peduli dengan perkembangan teknologi. Dia hanya ingin software kita dapat membantu usahanya dan tidak peduli teknologi apa yang digunakan. Buktinya beberapa perusahaan sampai saat ini masih ada yang memakai software yang dibuat dengan foxpro for DOS. Bahkan di tahun 2006 ini saya masih menjumpai ada yang menggunakan Lotus.

b. Jalan Kedua
Memilih berada di platform .NET. Dengan memilih berada di platform .NET berarti dengan sendirinya kita mengakrabkan diri dengan teknologi Microsoft. Kita mengikuti perkembangan Windows Vista dan mulai menggunakan waktu luang kita untuk mempelajari bahasa C# atau VB.NET. Bahasa C# dan VB.NET sendiri sekarang telah tersedia versi gratisnya (Express Edition) sehingga kita tidak perlu dipusingkan dengan soal pembajakan.
TETAPI, bila perusahaan yang menjadi klien kita hanya menggunakan Windows XP dan kita tidak membuat aplikasi berbasis web, tidak ada gunanya kita mempelajari .NET karena semua bisa kita selesaikan dengan bahasa pemrograman Win 32 (Delphi 7, VB6, VFP).
Jadi dengan memilih jalan ini, diasumsikan kita akan membuat aplikasi berbasis Web atau membidik konsumen perusahaan-perusahaan yang memakai Windows Vista.

Perlu diingat juga kalau perusahaan tersebut memiliki dana cukup untuk membeli Vista asli, berarti kemungkinan besar mereka juga memiliki dana yang cukup untuk membeli aplikasi-aplikasi bisnis dari perusahaan software mancanegara. Jadi bersiaplah bersaing dengan vendor dari luar negeri. Ingat, Microsoft juga mulai membidik UKM.

Kalau memilih jalan ini, kita harus yakin kalau perusahaan kita dapat menyediakan aplikasi yang benar-benar memiliki nilai lebih daripada program-program jadi yang dikeluarkan oleh perusahaan-perusahaan besar.

c. Jalan Ketiga
Banting setir ke dunia Java dan Linux.
Mulai gunakan waktu luang yang ada untuk menggali ilmu sebanyak-banyaknya tentang platform Java. Kalau anda sudah mahir di platform Java, tidak jadi soal apakah nantinya klien anda perusahaan yang menggunakan sistem operasi Microsoft atau menggunakan sistem operasi Linux. Java runs everywhere.
Mungkin ada yang sekarang segera bangkit dan berkata, .NET juga bisa jalan di Linux (mis: Mono). Ok, saya juga tahu sedikit tentang ini. Tapi setahu saya, .NET yang berjalan di Linux tidak memiliki 100% kemampuan seperti .NET yang dijalankan di sistem operasi Windows. Please, correct me if I’m wrong….
Sekali lagi, kalau anda menempuh jalan ini, yang harus diingat adalah terjun ke dunia Java itu susah, tidak semudah di dunia Microsoft yang resoure untuk belajarnya tersedia melimpah, mulai dari MSDN sampai buku-buku terbitan lokal.
3rd party component untuk Java saya rasa juga tidak sebanyak aplikasi yang dikembangkan di sistem operasi Windows. Kalau kita mengembangkan aplikasi Win32 atau .NET banyak tersedia komponen 3rd party yang harganya tidak terlalu mahal dan bisa sangat membantu kita untuk mempercepat pembuatan suatu aplikasi. (Misalnya: komponen datagrid yang canggih, komponen transfer report ke Excel)

Kalau memilih jalan ini, saya mengasumsikan bahwa klien kita cukup kritis dengan budget (karena dia memilih menggunakan Linux yang gratis). Di sisi lain, usaha yang harus kita keluarkan untuk menjadi mahir dalam platform Java saya rasa bisa sangat besar. Untuk menjadi mahir di platform Java, kita memerlukan invest waktu lebih banyak daripada untuk mahir di platform .NET.

Jadi ketiga jalan ini memang tidak mudah. Kalau anda sekarang bergerak di bidang aplikasi tailor-made yang menggunakan platform Win32, jalan mana yang akan anda tempuh?
Atau mungkin anda memiliki jalan lain yang tidak bisa saya lihat?

Saya sangat mengharapkan pendapat anda semua
and please… correct me if I’m wrong…..