Posts filed under ‘Software Engineering’

Java, C# dan PHP

Setelah tiga bulan ini menjadi tenaga pengajar, saya mendapat cukup banyak pengalaman baru.  Melihat dunia pendidikan dari perspektif yang berbeda benar-benar mencengangkan!  Saat mahasiswa menanti-nanti tibanya libur, para dosen berdoa supaya tidak banyak libur.  Maksudnya supaya honor salary bulan tersebut tidak berkurang ;)

Saya juga kini banyak berkutat dengan salah satu bahasa pemograman yang dulu cukup saya jauhi, yaitu PHP.  Saya masih ingat salah satu pertanyaan teknis saat interview pada posisi Java developer adalah membandingkan antara PHP dan Java.  Dalam benak saya, PHP adalah solusi yang inferior dibanding Java.  Tapi setelah mulai sering menggunakan PHP, bahasa tersebut sudah mengalami banyak kemajuan dibandingkan pada saat pertama kali saya mengenalnya.

PHP 5 sudah mendukung OOP sama seperti Java.  Bila itu tidak cukup, dukungan library OOP-nya juga lengkap (walaupun mungkin tidak selengkap Java).  PHP menggunakan PEAR sebagai framework repository untuk mengelola library OOP tambahan.  Dengan PEAR2, dimana Pyrus menggantikan PEAR installer yang lama, proses instalasi library baru dapat dilakukan dengan mudah.  Walaupun mungkin tidak semudah menambahkan sebuah JAR baru ke dalam folder lib di Java.  Saya mengambil analogi bahwa Pyrus (PEAR2) di PHP sama seperti Apache Maven di Java.

Kesimpulan saya pada akhirnya adalah PHP adalah solusi bagi mereka yang cenderung aktif di otak kanan.  Walaupun tidak begitu terstruktur, PHP5 digabungkan dengan berbagai solusi lain seperti Zend Framework (wajib!), memcached, native compiler, dan sebagainya, dapat menghasilkan sebuah aplikasi web sehandal facebook dan wordpress.

Lalu ada lagi yang namanya Visual C#.  Yang ini belum pernah saya sentuh sama sekali, tapi begitu mulai mempelajarinya, sama sekali tidak ada kesulitan yang ditemui.  Maklum, saya rasa ini adalah ‘tiruan’ Java.  Secara resmi, Microsoft menyatakan bahwa C# adalah perbaikan dan penyederhanaan dari C++, tapi entah kenapa saya masih merasa kalau yang disederhanakan adalah Java.  Sepertinya, C# dan Java akan saling bersaing menukar fitur.  Soalnya bukan hanya C# yang meniru Java, tapi akhirnya Java juga mengambil beberapa kelebihan C# (hukum alam?) seperti autoboxing.

Tapi dari sisi portabilitas, C# tidak dapat menandingi Java.  Platform .NET saat ini hanya tersedia di Windows dan Linux, sementara Java punya tambahan di Solaris (UNIX).  Mungkin saja nanti platform tidak akan menjadi masalah lagi jika infrastruktur IT dialihkan ke cloud nantinya.

Kesimpulannya, apapun bahasa dan teknologi-nya, jika team dan architect memiliki pengalaman yang memadai, pasti akan menghasilkan produk secara efisien dan efektif (tanpa melihat dari sisi cost licensing ;)

02 Desember 2010 at 2:20 PM Tinggalkan Komentar

Cloud Computing: Menghitung Awan Di Langit?

Salah satu istilah yang sering dibicarakan belakangan ini adalah cloud computing. Apa itu cloud computing? Sayangnya tidak ada jawaban yang pasti, setiap pihak memiliki pendapat sendiri mengenai apa itu cloud computing. Wew, para arsitek IT memang cukup menakjubkan dalam hal menciptakan istilah baru. Salah satu penjelasan mengenai cloud computing menganggap cloud computing merupakan generasi penerus network computing yang dipadukan dengan virtualisasi.

Pada cloud computing, infrastruktur (server, storage, dsb) dapat di program. Hal ini karena aplikasi, middleware, dan OS berjalan dalam virtual machine. Masing-masing memiliki virtual machine image tersendiri. Developer tidak melakukan deployment pada infrastruktur fisik, tetapi ke virtual machine (dengan menghasilkan virtual machine image). Kelebihannya adalah skalabilitas dapat ditingkatkan dengan hanya membuat virtual machine baru berdasarkan virtual machine image yang di-deploy. Keuntungannya lainnya adalah enterprise dapat meminimalisasi resiko yang berhubungan dengan infrastruktur fisik (misalnya, resiko membeli server baru dimana ada kemungkinan aplikasi tidak suskses), dimana infrastruktur fisik dikelola oleh cloud computing provider. Developer melakukan maintenance pada model; lalu model digunakan untuk menghasilkan virtual machine image untuk di-deploy. Jika terjadi upgrade pada image, misalnya image versi baru dari OS, maka image baru dihasilkan dengan meng-apply model pada image yang mengandung OS versi baru (tidak perlu konfigurasi ulang lagi).

Cloud computing provider menerapkan tarif pay-by-use, pelanggan ditarik biaya berdasarkan cpu hours yang dipakai, volume transfer data, atau ukuran data yang disimpan. Keuntungan yang ditawarkan adalah jika terjadi permintaan layanan aplikasi yang tiba-tiba meningkat (spike), aplikasi akan turut meningkatkan skalabilitasnya. Jika spike hanya terjadi pada waktu-waktu tertentu, pelanggan hanya membayar berdasarkan “seberapa sering” aplikasinya dipakai.

Bagaimanapun juga, hanya waktu yang akan menunjukkan seberapa sukses cloud computing diadopsi nantinya :)

30 Juni 2009 at 9:00 PM Tinggalkan Komentar


Arsip


Ikuti

Get every new post delivered to your Inbox.