Source Code

Banyak orang mendengung-dengungkan open source, namun sebagian orang mempertanyakan ini: lalu kalau punya sourcenya, buat apa? saya kan bukan programmer?. Bukan cuma programmer yang bisa diuntungkan secara langsung dengan ketersediaan source code.

Pertama perlu saya ceritakan sedikit sejarah open source ini dalam 2 paragraf. Gerakan untuk membuka kode sumber program diawali oleh Richard Stallman, dan dinamakan sebagai Free Software Movement. Stallman menggunakan kata “free” dalam arti kebebasan, bukan dalam arti gratis. Karena kata Free ini dianggap kurang bisa “menjual”, maka muncullah istilah baru “open source”, yang ingin menekankan source code yang terbuka. Stallman sendiri tidak setuju dengan istilah open source, karena dalam kata opensource, semangat “kebebasan” tidak terasa. Sebagian orang mengambil jalan tengah dengan menggunakan istilah Free and Open Source Software (FOSS).

Kebebasan apa yang dimaksud dalam bidang software? Stallman mendefinisikan 4 tingkat kebebasan. Nomor 0: bebas menjalan program untuk keperluan apa saja, Nomor 1: bebas mempelajari program dan mengubah program semau kita, Nomor 2: bebas membagikan program ke orang lain, Nomor 3: bebas menyebarkan perubahan program ke orang lain. Membuka source code akan memberi jalan untuk kebebasan-kebebasan tersebut.

Sekarang coba kita lihat contoh-contoh di mana source code yang terbuka berguna bagi programmer dan non programmer. Kita lihat kasus sangat sederhana ini (dialami oleh ribuan orang): ada program yang fiturnya kurang sedikit dari yang kita inginkan. Ini bisa berupa aplikasi desktop, mobile atau web. Kita ambil contoh kecil, mungkin Anda cuma ingin menambahkan supaya muncul nama hari pasaran Jawa di blog Anda (Sabtu Pon misalnya). Jika Anda memakai software yang sifatnya tertutup, maka Anda perlu meminta kepada pembuat aplikasi itu. Perubahan menambahkan nama pasaran itu sangat mudah, tapi kira-kira apakah pembuatnya mau menambahkan? apakah itu memberi nilai komersial yang besar untuknya sehingga dia mau menambahkannya? Apakah perubahan itu akan merepotkan pembuat software tersebut, bagaimana jika orang dari daerah lain ingin kalender mereka juga didukung?

Nah sekarang kita lihat andaikan aplikasi itu sifatnya open source: Anda bisa minta tolong siapa saja untuk menambahkan hari pasarannya. Anda bisa memposting iklan di situs freelancer (misalnya guru.com), lalu Anda kan mendapatkan tawaran yang bersaing. Hal yang sama tidak bisa Anda lakukan jika aplikasinya tidak open source, karena hanya produsen aplikasi tersebut yang bisa melakukannya. Contoh yang saya berikan ini bukan hal yang mengada-ada. Coba Anda tengok ke situs guru.com atau situs freelancer sejenis, banyak sekali pekerjaan yang berhubungan dengan memodifikasi source code. Dengan adanya source code, sebagai end user, Anda punya pilihan. Selain pekerjaan modifikasi, Anda juga bisa memberi kontrak maintenance ke pihak manapun yang kerjanya bagus dan harganya bersaing. Nah di sini Anda sebagai user punya kebebasan.

Hal penting berikutnya adalah: Anda tidak perlu jadi programmer untuk bisa mengkompilasi program. Source code itu seperti bahan makanan plus resepnya. Ada bahan makanan instan yang bisa dimasak oleh siapapun (ada source code yang mudah sekali dikompilasi menjadi program, bahkan bisa langsung dijalankan tanpa dicompile), ada juga yang butuh persiapan yang lebih banyak.

Semua blog engine populer saat ini sifatnya open source, dan para perancang theme bisa bekerja dengan mudah karena source code tersedia. Para perancang theme blog biasanya membuat rancangannya berdasarkan source theme yang sudah ada. Banyak perancang theme yang tidak bisa memprogram apapun, tapi mereka tahu mereka bisa menyisipkan kode-kode dalam template mereka (misalnya “copy paste kode ini untuk menampilkan tanggal hari ini”).

Ada juga level pekerjaan yang lebih teknis, yang butuh source code, tapi bukan sebagai programmer. Para administrator sistem (terutama Linux, FreeBSD, dan OS open source lain) sebagian besar bukan programmer, namun mereka tiap hari berurusan dengan source code. Mereka kan mengkompilasi kernel dan aneka program agar bisa berjalan sesuai dengan yang diinginkan. Para administrator sistem operasi dengan source yang tersedia seperti Linux dan BSD bisa segera mendownload patch, mengapply patch, lalu mengkompilasi kernel, tidak perlu menunggu update dari satu vendor. Banyak dari mereka ini tidak mengerti C, tapi mereka sadar bahwa mereka bisa menambah fitur atau memperbaiki sesuatu dengan adanya source code.

Lalu ada sekelompok orang yang antusias dengan teknologi baru. Teknologi baru ini misalnya laptop atau desktop atau game console. Saya ambil contoh saja: laptop yang menggunakan prosessor MIPS (bukan Intel ataupun ARM). Banyak di antara mereka yang bukan programmer. Kelompok orang yang antusias (tapi bukan programmer ini), umumnya bisa mengkompilasi source code sendiri (terutama jika program ditulis dengan baik, cukup dengan ./configure; make install). Jika software sifatnya tertutup/komersial, untuk mendapatkan versi MIPSnya, mereka harus menunggu pembuat perangkat lunak untuk meng-compile-kan versi MIPSnya (dengan asumsi developernya punya mesin dengan prosessor MIPS dan mau membuatkan versi MIPS).

Bukan hanya prosessor baru, tapi banyak orang menggunakan OS baru, atau OS yang kurang umum. Jika pembuat software harus memberikan file executable/binary untuk semua OS dan semua prosessor, jumlah file executable yang harus diberikan sangat banyak (misalnya versi windows 32 bit/64 bit, versi linux i386/amd64/itanium/arm/mips, versi OS X tiger/leopard versi PowerPC dan Intel, FreBSD i386/amd64/sparc, open solaris, dst). Dengan open source, setiap orang bisa mengcompile sendiri, atau bisa minta tolong orang untuk mereka yang tidak tahu bagaimana caranya meng-compile.

Kasus nyata terbaru untuk hal ini: lihat Microsoft yang saat ini melirik pasar ARM. Mengubah Windows supaya bisa berjalan di ARM tidak sulit, tapi bagaimana dengan ratusan ribu program yang sudah ditulis untuk Windows? program tersebut tidak akan berjalan secara native di ARM. Para user harus menunggu para pembuat program membuat versi ARM program-program yang saat ini mereka pakai di Windows. Sedangkan software-software open source akan segera dicompile ulang oleh para programmernya, atau pihak lain yang kebetulan punya waktu.

Anda mungkin tidak mengalami beberapa hal yang saya sebutkan di atas, namun secara tidak langsung mendapatkan keuntungan dari adanya source code. Misalnya begini: Anda memakai software open source X, dan Anda senang sekali software itu punya fitur Y. Nah fitur itu mungkin saja ditambahkan oleh seseorang yang dibayar beberapa puluh atau beberapa ratus dollar untuk menambahkan fitur Y ke software X tersebut. Andaikan software itu tidak open source, orang tersebut mungkin tidak akan menambahkan fitur apapun jika hanya dibayar beberapa puluh dollar saja.

Apakah cerita ini mengada-ada? sama sekali tidak, Anda bisa melihat open source software bounty. Misalnya silakan lihat website ini FOSSFactory di situ ada tawaran uang bagi yang mau mengimplementasikan fitur X, dan fitur ini akan dibuka untuk siapa saja (bukan cuma kepada yang memberi uang), jadi sangat mungkin sekali tanpa Anda sadari, Anda sudah diuntungkan karena software yang Anda pakai sifatnya open source (dan bukan sekedar freeware, tanpa source code).

Semoga saya sudah cukup bisa menunjukkan, source code itu penting, bagi siapa saja. Kalau orang berpikiran source code itu hanya penting untuk programmer (apalagi yang ngomong itu seorang programmer), maka wawasan orang tersebut perlu diperluas.

2 thoughts on “Source Code”

  1. Hmm, seharusnya digunakan istilah open source dan bukan source code. Tapi gpp, saya setuju dengan tulisan anda walaupun ada sedikit catatan: Sekarang ini masih programmer – atau geek – kalau boleh diistilahkan yang sangat mendukung open source. Kalangan awam 😀 masih lebih menyukai solusi closed source / komersil karena faktor: support. Support komunitas open source masih kalah kalau dihadapkan dengan support komersil yg jelas dibayar tinggi.

    Bukan berarti menyerah loh – ini berarti kita semua harus mendorong non-programmer supaya lebih geek 😀 (misal: paksa bawahan pake linux kalo kerja hehehe)

    1. Mohon dibaca lagi, source code itu adalah bendanya (kodenya), open source itu gerakannya, seperti yang sudah saya jelaskan di paragraf satu sampai sampai tiga.

Leave a Reply

Your email address will not be published. Required fields are marked *