Fork (pengembangan perangkat lunak)
Dalam rekayasa perangkat lunak, fork proyek adalah hal yang terjadi ketika suatu pengembang menyalin kode sumber dari suatu paket perangkat lunak dan memulai pengembangannya sendiri secara terpisah, menghasilkan perangkat lunak yang berbeda dan terpisah. Istilah ini biasanya mengimplikasikan tidak hanya percabangan dalam pengembangan, tetapi juga perpecahan dalam komunitas pengembangnya, sebuah bentuk skisma.[1]
Perangkat lunak bebas dan sumber terbuka adalah perangkat lunak yang, secara definisi, boleh di-fork dari tim pengembang yang asli tanpa meminta izin terlebih dahulu, tanpa melanggar hukum hak cipta. Akan tetapi, fork berlisensi dari perangkat lunak perorangan (contoh: Unix) juga bisa terjadi.
Etimologi
suntingKata "fork" telah digunakan dalam artian "membagi menjadi cabang-cabang, berpisah" sejak abad ke-14th.[2] Dalam linkungan perangkat lunak, kata ini mengacu pada panggilan sistem fork, yang menyebabkan suatu proses yang sedang berjalan membagi dirinya sendiri menjadi dua salinan yang (hampir) sama persis yang kemudian (biasanya) melakukan tugas-tugas yang berbeda.[3]
Dalam konteks pengembangan perangkat lunak, "fork" digunakan dalam artian membuat sebuah "cabang" kendali revisi oleh Eric Allman pada tahun 1980, dalam konteks SCCS:[4]
Creating a branch "forks off" a version of the program.
Istilah ini digunakan di Usenet pada tahun 1983 untuk proses pembuatan sebuah subkelompok untuk menampung topik-topik diskusi.[5]
"Fork" belum digunakan dalam artian skisma komunitas pada permulaani Lucid Emacs (sekarang XEmacs) (1991) atau berbagai BSD (1993–1994); Russ Nelson menggunakan istilah "shattering" (bahasa Indonesia: pemecahan) untuk peristiwa ini pada tahun 1993, mengatribusikannya kepada John Gilmore.[6] Akan tetapi, "fork" digunakan dalam bentuk kala kini sejak tahun 1995 untuk menjelaskan pemisahan XEmacs,[7] dan penggunaannya sudah dipahami dalam GNU Project pada tahun 1996.[8]
Lihat pula
suntingReferensi
sunting- ^ "Skisma", serta konotasinya, merupakan penggunaan yang biasa, contoh "the Lemacs/FSFmacs schism" Diarsipkan 2009-11-30 di Wayback Machine. (Jamie Zawinski, 2000), "Behind the KOffice split" Diarsipkan 6 July 2013 di Wayback Machine. (Joe Brockmeier, Linux Weekly News, 2010-12-14), "Copyright assignment - once bitten, twice shy" Diarsipkan 30 March 2012 di Wayback Machine. (Richard Hillesley, H-Online, 2010-08-06), "Forking is a feature" Diarsipkan 29 February 2012 di Wayback Machine. (Anil Dash, 2010-09-10), "The Great Software Schism" Diarsipkan 6 January 2012 di Wayback Machine. (Glyn Moody, Linux Journal, 2006-09-28), "To Fork Or Not To Fork: Lessons From Ubuntu and Debian" Diarsipkan 26 February 2012 di Wayback Machine. (Benjamin Mako Hill, 2005).
- ^ Entry 'fork' in Online Etymology Dictionary Diarsipkan 25 May 2012 di Wayback Machine.
- ^ "The term fork is derived from the POSIX standard for operating systems: the system call used so that a process generates a copy of itself is called fork()." Robles, Gregorio; González-Barahona, Jesús M. (2012). A Comprehensive Study of Software Forks: Dates, Reasons and Outcomes (PDF). OSS 2012 The Eighth International Conference on Open Source Systems. doi:10.1007/978-3-642-33442-9_1. Diarsipkan dari versi asli (PDF) tanggal 2 December 2013. Diakses tanggal 20 October 2012.
- ^ Allman, Eric. "An Introduction to the Source Code Control System." Diarsipkan 6 November 2014 di Wayback Machine. Project Ingres, University of California at Berkeley, 1980.
- ^ Can somebody fork off a "net.philosophy"? (John Gilmore, net.misc, 18 January 1983)
- ^ Shattering — good or bad? (Russell Nelson, gnu.misc.discuss, 1 October 1993)
- ^ Re: Hey Franz: 32K Windows SUCK!!!!! (Bill Dubuque, cu.cs.macl.info, 21 September 1995)
- ^ Lignux? (Marcus G. Daniels, gnu.misc.discuss, 7 June 1996)
Pranala luar
sunting- Right to Fork Diarsipkan 2015-04-24 di Wayback Machine. di Meatball Wiki
- Sebuah PhD mengamati proses fork: (Nyman, 2015) Diarsipkan 2023-07-16 di Wayback Machine. "Understanding Code Forking in Open Source Software - An examination of code forking, its effect on open source software, and how it is viewed and practiced by developers"