Sumber terbuka: kebebasan, tanggung jawab, dan pilihan
SUMBER TERBUKA
Perangkat lunak sumber terbuka berdiri di atas gagasan sederhana: orang seharusnya dapat memahami, memakai, mengubah, dan membagikan perangkat lunak yang menjadi tumpuan pekerjaannya — sejauh diizinkan oleh lisensinya.
Mengapa hal ini penting
Gagasan itu berakibat jauh melampaui dunia pemrograman. Ia menentukan siapa yang mengendalikan teknologi, bagaimana pengetahuan dibagikan, apakah perbaikan dapat dinikmati orang lain, dan pilihan apa yang masih tersisa ketika keadaan berubah.
Sumber terbuka bukan janji bahwa segalanya tanpa biaya, dan bukan janji bahwa merawat perangkat lunak tidak memerlukan usaha. Yang dijaga dengan sengaja adalah kebebasan tertentu, sehingga orang dapat membangun di atas karya yang sudah ada alih-alih sepenuhnya bergantung pada siapa pun yang membuatnya lebih dahulu.
Untuk memahami mengapa itu penting, ada gunanya mengetahui apa itu sumber terbuka, bagaimana ia berkembang, tanggung jawab apa yang menyertainya, dan mengapa banyak orang tetap membuka karyanya kepada orang lain.
Apa itu sumber terbuka
Kode sumber adalah bentuk perangkat lunak yang dapat dibaca manusia: instruksi yang ditulis pengembang dalam bahasa pemrograman. Sebagian program diterjemahkan lebih dahulu menjadi instruksi mesin, sebagian lain dijalankan melalui runtime perangkat lunak. Pada kedua kasus, akses ke kode sumber memungkinkan seseorang mempelajari bagaimana program itu ditulis dan mengubahnya.
Akses itulah yang membedakan perangkat lunak yang hanya bisa dipakai dari perangkat lunak yang bisa diperiksa. Tanpa bentuk yang dapat dibaca, Anda hanya dapat mengamati perilakunya; dengan bentuk yang dapat dibaca, Anda atau orang yang Anda tunjuk dapat melihat mengapa perilakunya demikian, data apa yang dikirimnya ke jaringan, di mana letak kerusakannya, dan di bagian mana perubahan perlu dilakukan.
Sumber terbuka bukan gambaran tentang cara perangkat lunak dibuat, dan bukan kebetulan bahwa kodenya terlihat. Ia adalah seperangkat izin yang dilekatkan pada perangkat lunak melalui lisensinya, dan ada definisi tertulis yang luas dipakai tentang isi izin tersebut.
Open Source Initiative memelihara definisi itu dan memakainya untuk menilai lisensi mana yang pantas disebut sumber terbuka. Kriterianya antara lain: perangkat lunak boleh disebarluaskan kembali dengan bebas; kode sumber tersedia dalam bentuk yang benar-benar dipakai programmer untuk mengubahnya; versi yang telah diubah dan karya turunannya boleh dibuat dan disebarkan; lisensi tidak membatasi siapa yang boleh memakainya maupun untuk keperluan apa; serta tidak ada bagiannya yang bergantung pada teknologi atau gaya antarmuka tertentu. Definisi ini disusun dari pedoman Debian, dan itulah sebabnya istilah ini bermakna tertentu alih-alih sekadar terdengar baik.
Empat kebebasan, dalam bahasa sehari-hari
Tradisi perangkat lunak bebas menyatakan gagasan yang sama secara lebih konkret, sebagai empat kebebasan yang wajib dijaga oleh sebuah lisensi.
| Kebebasan | Artinya dalam praktik |
|---|---|
| Menjalankan program sesuai kehendak Anda, untuk keperluan apa pun | Pakai perangkat lunak itu untuk pekerjaan, usaha, atau organisasi Anda. Tidak ada yang boleh membatasi untuk apa ia dipakai. |
| Mempelajari cara kerja program dan mengubahnya | Baca kode sumbernya, pahami apa yang dilakukannya, dan sesuaikan dengan kebutuhan nyata Anda. Akses ke kode sumber yang memungkinkan hal ini. |
| Menyebarkan salinan program itu | Teruskan perangkat lunak itu kepada kolega, klien, atau siapa pun yang dapat memakainya, dengan syarat yang dilekatkan lisensinya. |
| Menyebarkan salinan versi yang Anda ubah | Jika Anda memperbaiki perangkat lunak itu, Anda boleh membagikan versi Anda, sehingga orang lain memperoleh manfaat yang sama. |
Bebas dalam arti kebebasan, bukan tanpa biaya
Dalam percakapan sehari-hari, kata bebas punya dua arti yang mudah tertukar: bebas dari ikatan, dan tanpa biaya. Perangkat lunak bebas memakai arti yang pertama — bebas seperti bebas berbicara, bukan gratis seperti makan siang gratis. Kebetulan keduanya dapat bertemu, karena lisensi seperti Apache-2.0 tidak meminta royalti; namun keduanya tetap hal yang berbeda.
Perangkat lunak sumber terbuka memerlukan waktu, keterampilan, dan biaya untuk dijalankan. Seseorang harus menyiapkan hosting, memelihara pembaruan, menangani masalah keamanan, dan menjawab pertanyaan pengguna. Yang tidak diminta oleh lisensi adalah pembayaran izin; yang tetap harus ada adalah pekerjaan. Menyadari kedua hal itu membuat pilihan perangkat lunak dapat diambil dengan mata terbuka.
Lisensi permisif dan lisensi copyleft
Lisensi permisif, seperti Apache-2.0 dan MIT, memberi izin dengan syarat ringan. Anda boleh memakai, mengubah, dan menyebarkan perangkat lunaknya, termasuk di dalam layanan berbayar, selama pemberitahuan hak cipta serta atribusi yang Anda terima tetap dipertahankan.
Lisensi copyleft, seperti GNU GPL, memberi kebebasan yang sama tetapi menambahkan syarat tentang penyebaran: apabila Anda menyebarkan salinan atau versi yang Anda ubah, karya turunan itu harus memakai lisensi yang setara. Dengan begitu, kebebasan tidak hilang di tangan penerima berikutnya.
Perbedaannya bukan soal longgar atau ketat, melainkan soal apa yang ingin dijaga oleh penulisnya. Keduanya diakui sebagai lisensi sumber terbuka, dan keduanya memperlakukan kewajiban yang sama sebagai sesuatu yang melekat pada penyebaran, bukan pada pemakaian pribadi.
Izin tertulis dan kemampuan yang nyata
Lisensi memberi izin; ia tidak memberi kemampuan. Anda boleh memindahkan situs dari satu penyedia ke penyedia lain, tetapi Anda tetap perlu memiliki akses ke repositori, mengetahui konfigurasi yang dipakai, dan memahami urutan penerapannya.
Salinan berkas hampir tidak berguna jika domain, akun hosting, dan pengaturan build-nya milik orang lain. Karena itu, pernyataan bahwa sesuatu dapat dipindahkan sebaiknya diperiksa, bukan sekadar dipercaya. Foundation memisahkan kedua hal tersebut: izin diberikan secara permanen oleh lisensi, sedangkan kemampuan nyata dijaga oleh cara proyek menyusun repositori, konfigurasi, aset, dan manual operasinya.
Sejarah berbagi perangkat lunak
Berbagi perangkat lunak tidak lahir bersama internet; ia mendahuluinya. Pada tahun 1950-an dan 1960-an, perangkat lunak tumbuh di dalam lingkungan penelitian dan komputer besar, dan pengguna saling menukar kode melalui kelompok pengguna seperti SHARE (1955) dan DECUS (1961). Pada masa itu perangkat lunak sering dianggap pelengkap perangkat keras: sesuatu yang datang bersama mesinnya, bukan produk tersendiri.
Keadaan itu berubah ketika perusahaan mulai memasarkan perangkat lunak secara terpisah dari perangkat keras, dan ketika pengguna makin jarang menerima kode sumbernya. Pada akhir 1970-an dan awal 1980-an, hukum hak cipta di Amerika Serikat menegaskan bahwa program komputer adalah karya yang dilindungi — definisi program komputer ditambahkan pada 1980, dan putusan pengadilan pada 1983 menegaskan hal yang sama untuk kode objek. Surat terbuka Bill Gates pada 1976 tentang penyalinan Altair BASIC tanpa izin adalah tanda awal bahwa model berbagi yang sebelumnya biasa kini dianggap pelanggaran.
Sesudah itu, berbagi tetap mungkin, tetapi harus diberi izin tertulis lebih dahulu. Sumber terbuka modern adalah jawaban atas keadaan tersebut: bukan gerakan untuk mengembalikan masa lalu, melainkan cara membuat kebebasan berbagi menjadi sah dan dapat diandalkan.
GNU dan gerakan perangkat lunak bebas
Pada 1983 Richard Stallman mengumumkan proyek GNU, sebuah usaha membuat sistem operasi lengkap yang bebas dipakai, dipelajari, diubah, dan disebarkan. Pada 1985 ia mendirikan Free Software Foundation dan menulis GNU Manifesto, yang menjelaskan alasannya bukan sebagai soal teknis melainkan soal kebebasan pengguna.
Proyek itu menghasilkan bagian-bagian penting: penyunting Emacs, kompilator GCC, debugger, pustaka, dan perkakas baris perintah. Yang paling berpengaruh justru lisensinya. GNU General Public License, yang pertama dirilis pada 1989 dan versi keduanya pada 1991, memakai hak cipta untuk menjamin kebebasan: siapa pun boleh memakai dan mengubah, tetapi karya turunan yang disebarkan harus memakai lisensi yang sama. Gagasan itu disebut copyleft, dan ia mengubah kebebasan dari imbauan menjadi syarat hukum.
Sampai awal 1990-an, yang belum ada adalah kernel: bagian inti sistem yang mengatur perangkat keras. Kekosongan itulah yang kemudian diisi oleh karya orang lain.
Linux dan pengembangan bersama
Pada 1991 Linus Torvalds mengumumkan sebuah kernel yang ia tulis sebagai hobi, dan mengundang orang lain untuk mengomentari serta memperbaikinya. Digabungkan dengan perkakas GNU yang sudah ada, kernel itu membentuk sistem lengkap yang kemudian disebut GNU/Linux.
Yang membuatnya penting bukan hanya hasilnya, melainkan caranya. Pengembangan berlangsung terbuka di internet: tambalan dikirim lewat milis, didiskusikan di depan umum, dan diterima atau ditolak secara terbuka pula. Cara kerja itu kemudian tertanam dalam perkakas yang kita pakai sehari-hari — Git sendiri ditulis pada 2005 untuk mengelola pengembangan kernel.
Bukti bahwa model ini dapat menghasilkan infrastruktur serius datang dari pemakaiannya: sistem berbasis Linux menjalankan sebagian besar server dunia, menjadi dasar telepon pintar, dan dipakai juga di komputer pribadi. Kebebasan mengubah dan menyebarkan membuat hasil kerja itu dapat diperiksa, disesuaikan, dan dilanjutkan oleh orang yang belum ada ketika proyeknya dimulai.
1998: lahirnya istilah sumber terbuka
Pada 22 Januari 1998 Netscape mengumumkan bahwa kode peramban Navigator akan dibuka, dan kode itu dirilis pada Maret tahun yang sama — awal dari proyek Mozilla. Peristiwa tersebut menarik perhatian dunia usaha pada pengembangan terbuka.
Beberapa hari kemudian, pada Februari 1998, sekelompok orang yang lama terlibat dalam perangkat lunak bebas bertemu di Palo Alto. Dalam pertemuan itu dipilih istilah baru, open source atau sumber terbuka, untuk menyampaikan nilai yang sama tanpa salah paham bahwa free berarti gratis. Mereka juga mendirikan Open Source Initiative, dengan definisi yang disusun dari pedoman Debian yang sudah ada sejak 1997.
Alasan pemakaian istilah baru itu praktis: pengembangan terbuka punya keunggulan yang dapat dinilai oleh perusahaan yang tidak berminat berdebat soal etika, dan pada 1998 itulah yang perlu disampaikan kepada mereka.
Dua aliran, satu praktik
Perangkat lunak bebas dan sumber terbuka sering dianggap satu hal, dan dalam praktik sehari-hari memang begitu: keduanya memakai lisensi yang sama, dan keduanya menghasilkan perangkat lunak yang boleh Anda pakai, ubah, dan sebarkan. Perbedaannya ada pada penekanan.
Tradisi perangkat lunak bebas menempatkan kebebasan pengguna sebagai tujuan pada dirinya sendiri, dan menilainya sebagai soal etika. Tradisi sumber terbuka menekankan bahwa pengembangan terbuka menghasilkan perangkat lunak yang lebih baik dan lebih dapat dipercaya, dan memakai istilah itu karena lebih mudah diterima di dunia kerja. Apache-2.0, misalnya, diakui oleh keduanya, begitu pula GNU GPL.
Perbedaan itu nyata bagi orang yang memegangnya, dan ada tulisan berpengaruh dari kedua sisi. Yang perlu Anda ingat sebagai pemakai bukan pertikaian itu, melainkan akibat praktisnya: apa yang boleh dan tidak boleh Anda lakukan ditentukan oleh lisensi yang bersangkutan, bukan oleh label yang dipakai untuk menjelaskannya.
Mengapa orang dan organisasi membuatnya
Setiap proyek sumber terbuka biasanya dimulai dari sesuatu yang kecil dan pribadi: seseorang menghadapi masalah, menulis jalan keluar, lalu menyadari bahwa orang lain menghadapi hal yang sama. Alasan lain yang sering muncul adalah belajar, keinginan agar pekerjaannya berguna, dan pengakuan dari sejawat yang menilai karyanya.
Pada organisasi, alasan yang biasa terdengar justru sangat praktis. Sebuah pustaka yang dipakai banyak pihak lebih murah dipelihara bersama daripada dibangun berulang kali oleh masing-masing perusahaan. Perusahaan juga membuka kode untuk menarik orang yang terampil, memengaruhi arah standar yang mereka andalkan, atau karena perangkat lunak itu sendiri dibiayai dana publik dan wajib tersedia bagi semua.
Ada pula alasan yang lebih luas: sebagian infrastruktur tidak sehat jika bergantung pada satu perusahaan saja. Membuka kode dan lisensinya membuat pekerjaan itu dapat dilanjutkan orang lain bila keadaan berubah.
Biaya dan pekerjaan merawat perangkat lunak bersama
Menulis kode awal hanya sebagian kecil dari pekerjaan. Sebagian besar waktu habis untuk membaca laporan masalah, menjawab pertanyaan pengguna, memperbarui dependensi, menangani masalah keamanan, menulis dan memperbaiki dokumentasi, menyiapkan rilis, dan menjaga agar pembaruan tidak mematahkan pemakaian yang sudah ada.
Banyak proyek yang penting bagi banyak orang justru dirawat oleh sangat sedikit orang. Ketergantungan pada satu orang adalah risiko nyata, karena pekerjaan itu berhenti ketika orang tersebut berhenti.
Inilah sebabnya bentuk dukungan yang tampak sederhana tetap berarti. Laporan yang jelas mengurangi waktu yang dibutuhkan untuk memperbaiki sesuatu; jawaban bagi pengguna lain mengurangi pertanyaan berulang; dan dukungan dana memungkinkan seseorang meluangkan waktu tetap untuk pekerjaan itu alih-alih menyisipkannya di sela pekerjaan lain.
Tanggung jawab dan batas yang wajar
Lisensi sumber terbuka tidak membawa jaminan mutu. Apache-2.0, seperti lisensi permisif lain, menyatakan bahwa perangkat lunak disediakan sebagaimana adanya, tanpa jaminan apa pun, dan tidak ada kewajiban bagi pemeliharanya untuk memperbaiki masalah tertentu atau menyediakan layanan.
Sebagai gantinya, Anda memperoleh kebebasan untuk bertindak sendiri: memperbaiki sendiri, menunjuk pengembang lain, atau mengganti bagian yang tidak sesuai dengan kebutuhan Anda. Foundation bekerja dengan pola yang sama, dan karena itu halaman ini tidak menjanjikan layanan yang tidak ada.
Kebebasan itu datang bersama tanggung jawab. Anda yang menentukan versi mana yang dipakai, kapan diperbarui, dan bagaimana cadangan diuji. Pilihan yang jelas lebih berguna daripada janji yang tidak dapat ditepati.
Cara ikut ambil bagian
Bantuan yang paling sering berguna adalah laporan yang tepat: apa yang Anda harapkan, apa yang sebenarnya terjadi, langkah untuk mengulanginya, dan versi Foundation yang Anda pakai. Usulan perbaikan juga lebih berguna bila menjelaskan masalah yang ingin diselesaikan, bukan hanya solusi yang Anda bayangkan.
Dokumentasi dan terjemahan berdampak langsung pada pembaca berikutnya, dan menjawab pertanyaan orang lain di tempat terbuka menolong semua orang yang datang dengan pertanyaan yang sama.
Untuk pekerjaan teknis, keputusan menerima perubahan ada di tangan pemelihara proyek. Itu tidak mengurangi kebebasan Anda atas salinan sendiri: Anda selalu boleh mengubah dan memakai versi Anda sendiri.
Mengapa Foundation memakai Apache-2.0
Apache-2.0 dipilih karena ia permisif, dikenal luas di dunia usaha, dan tidak memaksa Anda mempublikasikan karya Anda sendiri. Ia memberi izin hak cipta yang berlaku di seluruh dunia, tanpa biaya, tidak eksklusif, dan tidak dapat ditarik kembali, sehingga izin atas versi yang Anda terima tidak dapat dibatalkan kemudian.
Ia juga memuat hibah paten yang tegas dari para kontributor. Perbandingan yang mudah: lisensi permisif pendek sering diam soal paten, sedangkan Apache-2.0 menyatakannya; bagi proyek yang ingin serius soal kemandirian pemakainya, kejelasan itu lebih baik.
Syaratnya sedikit dan praktis. Bila Anda menyebarkan perangkat lunak atau versi yang Anda ubah, sertakan salinan lisensinya, tandai berkas yang Anda ubah, dan pertahankan pemberitahuan hak cipta, paten, merek, serta atribusi yang Anda terima.
Sumber terbuka dan kemandirian yang nyata
Lisensi memberi izin, tetapi kemandirian harian bergantung pada hal-hal yang lebih membumi: repositori yang Anda akses sendiri, konfigurasi yang bertipe dan tervalidasi, konten yang disimpan sebagai berkas, aset yang dapat diganti, manual operasi yang dapat dibaca siapa pun, dan alur penerapan yang dapat dijalankan orang lain tanpa bertanya kepada Provelopment.
Foundation disusun agar keduanya berjalan bersama. Izinnya datang dari Apache-2.0; kemampuan praktisnya datang dari cara proyek menyimpan dan mendokumentasikan pekerjaan. Rincian tentang siapa memiliki apa dijelaskan tersendiri di halaman Kepemilikan dan Portabilitas.
Yang tidak dihapus oleh lisensi mana pun adalah biaya menjalankannya. Sebuah situs tetap memerlukan pembaruan, pengawasan, dan pengujian — oleh Anda, oleh pengembang pilihan Anda, atau oleh penyedia layanan yang Anda bayar. Itu bukan kelemahan sumber terbuka; itu gambaran pekerjaan yang sebenarnya.
Bacaan dan rujukan
Semua yang dikutip di halaman ini dapat Anda periksa sendiri. Ini sumber-sumber utama yang dipakai, dan tidak satu pun dari lembaga yang menerbitkannya berafiliasi dengan proyek ini.
- Definisi Sumber Terbuka — Open Source Initiative
Definisi yang menjadi dasar artikel ini, lengkap dengan sepuluh kriterianya. Ringkas, dan menyelesaikan sebagian besar perdebatan tentang arti istilah ini.
- Lisensi yang disetujui OSI — Open Source Initiative
Daftar lisensi yang telah melewati penilaian Open Source Initiative beserta penanda bakunya. Tempat memeriksa apakah sebuah lisensi benar-benar sumber terbuka.
- Sejarah Open Source Initiative
Kisah resmi lembaga ini tentang penamaan pada 1998 dan pertemuan di Palo Alto, beserta daftar pustaka dari para pesertanya.
- Sejarah proyek Mozilla — Mozilla
Kronologi peristiwa yang disebut di atas menurut Mozilla sendiri: pengumuman Netscape pada 22 Januari 1998, pembentukan mozilla.org bulan berikutnya, dan rilis kode sumber pada Maret 1998.
- Apa itu perangkat lunak bebas? — Proyek GNU, Free Software Foundation
Empat kebebasan yang dinyatakan secara tepat, dan penjelasan paling jelas tentang perbedaan antara kebebasan dan harga. Sumber untuk tabel di atas.
- Ikhtisar sistem GNU — Proyek GNU
Mengapa proyek GNU dimulai, apa yang hendak dibangun, dan bagaimana ia bertemu dengan kernel Linux. Catatan utama untuk masa yang dijelaskan di bagian sejarah.
- Mengapa sumber terbuka melewatkan inti perangkat lunak bebas — Richard Stallman
Tradisi perangkat lunak bebas menjelaskan, dengan kata-katanya sendiri, bagaimana ia berbeda dari label sumber terbuka dan mengapa perbedaan itu penting baginya.
- Apache License 2.0 — Apache Software Foundation
Lisensi yang dipakai proyek ini, dalam naskah aslinya. Cukup pendek untuk dibaca sekali, dan memang layak dibaca bila Anda berniat menyebarkan perangkat lunak yang memakainya.
- Producing Open Source Software — Karl Fogel
Buku praktis tentang sisi manusia dari proyek bersama: kontributor, peninjauan, tata kelola, pembiayaan, dan harapan pengguna maupun pengembang. Dapat dibaca daring.
- CHAOSS — metrik kesehatan komunitas sumber terbuka
Proyek di bawah Linux Foundation yang menyusun metrik untuk menilai apakah sebuah proyek sumber terbuka sehat dan mungkin bertahan. Tempat melihat ketika menilai perangkat lunak yang Anda andalkan.