The Cathedral and the Bazaar

แปลโดย : Claude 3 Opus (Pro)

The Cathedral and the Bazaar

Free software projects were traditionally carried out by small pockets of developers working from dedicated tech hubs, like MIT’s AI Lab. But as he started working on GNU, Stallman invited other developers to help develop his project as well. Leveraging the nascent internet, hackers could even contribute code from all around the world.

Even though Stallman typically did not offer contributors any financial compensation for their work, many developers were willing to help make GNU a reality regardless. Maybe some of them hoped to earn respect or status from their programmer peers by contributing, as had always been a factor within the hacker community. Others may have contributed because they wanted to use GNU themselves. Yet others may have found the challenge inherently interesting enough to be a part of it. And, perhaps, some just wanted to make the world a better place, and saw this project as a means to that end.

Whatever their reasons were, they were contributing. What’s more, their contributions were valuable. These volunteer programmers were, somewhat remarkably, producing high-quality code, which allowed Stallman to complete many of the separate parts of the GNU operating system a few years later—a momentous feat.

It was at this point that Finnish software engineer Linus Torvalds gladly used the freedom offered by the GNU General Public License. Taking much of Stallman’s GNU code but adding his own kernel (a program at the core of a computer’s operating system), in 1992 Torvalds released Linux. It represented the first fully functional operating system consisting entirely of free software.

But Torvalds’s main innovation arguably wasn’t the Linux kernel itself. It was how he produced it. Over the years, the software engineer developed a process explicitly designed to collaborate over the internet.

As explored in depth by Linux contributor Eric S. Raymond in his 1997 essay “The Cathedral & The Bazaar” and (later) book with the same name, the biggest adjustment Torvalds made pertained to the project’s approach to security.

Until then, free software developers had considered bugs and other vulnerabilities to be great risks that should be taken care of by dedicated experts who meticulously reviewed their software, including—perhaps most importantly—the code they received from outside contributors. They would only release the code once they were confident it was safe to use. Raymond dubbed this top-down approach the “cathedral” model.

Torvalds instead adopted what Raymond referred to as the “bazaar” model. This model used a more flexible process to integrate contributions, which also allowed developers to more directly upload their changes into different versions of the software. Other contributors could then download this software, test it, and potentially adopt the changes into their own versions.

This could lead to versions of the software with more bugs than the software of their cathedral counterparts. However, with the development process happening out in the open, other contributors also tended to more quickly catch these mistakes, and fix them. If needed, the fix was immediately included in a new release; under the bazaar model, software updates happen faster and more frequently.

“Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone,” Raymond wrote in his essay, summing up one of the key lessons he’d learned over the years. “Or, less formally, ‘Given enough eyeballs, all bugs are shallow.’”

He dubbed the adage Linus’s Law.

Interestingly, Raymond believed that this development model could offer benefits even to businesses and people that did not share Stallman’s concerns about proprietary software, but just wanted high-quality code at low cost. He suspected, however, that many of them (businesses, in particular) were hesitant to use free software exactly because they were put off by the ideological narrative around it. To de-emphasize Stallman’s original motivations and focus more on the pragmatic benefits, Raymond therefore in the late 1990s led the effort to rebrand free software as “open source software.”

Stallman himself was not on board with the rebrand, however. For him, freedom was the point, and speaking of “open source” diluted that message.

Today, the terms “free software” and “open source software” in almost all cases refer to the same practical concept, but the difference in terminology continues to represent the philosophical rift. The term “free and open source software” (FOSS) is used to explicitly include both sides of the schism.

แคธีดรัลกับบาซาร์

โครงการซอฟต์แวร์เสรีแต่เดิมดำเนินการโดยกลุ่มนักพัฒนาขนาดเล็กที่ทำงานจากศูนย์เทคโนโลยีเฉพาะทาง เช่น AI Lab ของ MIT แต่เมื่อเขาเริ่มทำงานกับ GNU สตอลแมนก็เชิญนักพัฒนาคนอื่น ๆ มาช่วยพัฒนาโครงการของเขาด้วย โดยใช้ประโยชน์จากอินเทอร์เน็ตเกิดใหม่ แฮกเกอร์สามารถมีส่วนร่วมในการเขียนโค้ดจากทั่วทุกมุมโลก

แม้ว่าสตอลแมนมักจะไม่เสนอค่าตอบแทนทางการเงินให้กับผู้มีส่วนร่วมสำหรับงานของพวกเขา แต่นักพัฒนาหลายคนก็ยินดีที่จะช่วยทำให้ GNU เป็นจริงโดยไม่คำนึงถึง บางคนอาจหวังว่าจะได้รับความเคารพหรือสถานะจากเพื่อนโปรแกรมเมอร์โดยการมีส่วนร่วม เช่นเดียวกับที่เคยเป็นปัจจัยภายในชุมชนแฮกเกอร์มาโดยตลอด คนอื่น ๆ อาจมีส่วนร่วมเพราะพวกเขาต้องการใช้ GNU ด้วยตนเอง บางคนอาจพบว่าความท้าทายน่าสนใจพอที่จะเป็นส่วนหนึ่งของมัน และบางทีบางคนอาจแค่ต้องการทำให้โลกน่าอยู่ขึ้น และมองโครงการนี้เป็นหนทางสู่จุดหมายนั้น

ไม่ว่าเหตุผลของพวกเขาจะเป็นอะไร พวกเขาก็ให้ความร่วมมือ ยิ่งไปกว่านั้น ผลงานของพวกเขามีคุณค่า โปรแกรมเมอร์อาสาสมัครเหล่านี้ผลิตโค้ดคุณภาพสูงอย่างน่าทึ่งพอสมควร ซึ่งทำให้สตอลแมนสามารถทำส่วนต่าง ๆ ของระบบปฏิบัติการ GNU ให้เสร็จสมบูรณ์ได้ในอีกไม่กี่ปีต่อมา นับเป็นความสำเร็จอย่างยิ่งใหญ่

ณ จุดนี้เอง ที่วิศวกรซอฟต์แวร์ชาวฟินแลนด์ ลีนุส ทอร์วาลส์ ใช้ประโยชน์จากเสรีภาพที่ GNU General Public License มอบให้อย่างยินดี โดยนำโค้ด GNU ส่วนใหญ่ของสตอลแมน แต่เพิ่มเคอร์เนลของตัวเอง (โปรแกรมหลักของระบบปฏิบัติการคอมพิวเตอร์) ในปี 1992 ทอร์วาลส์ได้ปล่อย Linux ออกมา ซึ่งเป็นระบบปฏิบัติการที่สมบูรณ์เต็มรูปแบบเป็นครั้งแรกที่ประกอบด้วยซอฟต์แวร์เสรีทั้งหมด

แต่นวัตกรรมหลักของทอร์วาลส์อาจไม่ใช่เคอร์เนล Linux เอง แต่เป็นวิธีที่เขาผลิตมัน เมื่อเวลาผ่านไป วิศวกรซอฟต์แวร์ได้พัฒนากระบวนการที่ออกแบบมาอย่างชัดเจนเพื่อให้ร่วมมือกันผ่านอินเทอร์เน็ต

ดังที่ Eric S. Raymond ผู้มีส่วนร่วมใน Linux ได้สำรวจอย่างลึกซึ้งในบทความของเขาปี 1997 เรื่อง "The Cathedral & The Bazaar" และหนังสือที่มีชื่อเดียวกัน (ในภายหลัง) การปรับเปลี่ยนที่ใหญ่ที่สุดที่ทอร์วาลส์ทำเกี่ยวข้องกับแนวทางด้านความปลอดภัยของโครงการ

จนถึงตอนนั้น นักพัฒนาซอฟต์แวร์เสรีถือว่าบั๊กและช่องโหว่อื่นๆ เป็นความเสี่ยงที่ยิ่งใหญ่ที่ควรได้รับการดูแลโดยผู้เชี่ยวชาญที่ทุ่มเทซึ่งตรวจสอบซอฟต์แวร์ของพวกเขาอย่างละเอียด รวมถึง อาจจะสำคัญที่สุด คือโค้ดที่พวกเขาได้รับจากผู้มีส่วนร่วมภายนอก พวกเขาจะเผยแพร่โค้ดก็ต่อเมื่อมั่นใจแล้วว่าปลอดภัยที่จะใช้ Raymond ขนานนามแนวทางจากบนลงล่างนี้ว่าเป็นแบบ "แคธีดรัล"

ในทางกลับกัน ทอร์วาลส์นำมาใช้สิ่งที่ Raymond เรียกว่าโมเดล "บาซาร์" โมเดลนี้ใช้กระบวนการที่ยืดหยุ่นมากขึ้นในการรวมการมีส่วนร่วม ซึ่งยังช่วยให้นักพัฒนาสามารถอัปโหลดการเปลี่ยนแปลงของพวกเขาเข้าไปในเวอร์ชันต่างๆ ของซอฟต์แวร์ได้โดยตรงมากขึ้น ผู้มีส่วนร่วมรายอื่นสามารถดาวน์โหลดซอฟต์แวร์นี้ ทดสอบ และอาจนำการเปลี่ยนแปลงไปใช้ในเวอร์ชันของตนเอง

สิ่งนี้อาจนำไปสู่เวอร์ชันของซอฟต์แวร์ที่มีบั๊กมากกว่าซอฟต์แวร์ของคู่แข่งที่เป็นแบบแคธีดรัล อย่างไรก็ตาม ด้วยกระบวนการพัฒนาที่เกิดขึ้นอย่างเปิดเผย ผู้มีส่วนร่วมรายอื่นก็มีแนวโน้มที่จะจับข้อผิดพลาดเหล่านี้ได้เร็วขึ้น และแก้ไขมัน หากจำเป็น การแก้ไขจะรวมอยู่ในรุ่นใหม่ทันที ภายใต้โมเดลบาซาร์ การอัปเดตซอฟต์แวร์เกิดขึ้นเร็วขึ้นและบ่อยขึ้น

Raymond เขียนในบทความของเขาว่า "หากมีผู้ทดสอบเบต้าและฐานผู้ร่วมพัฒนาที่ใหญ่พอ ปัญหาเกือบทุกอย่างจะถูกระบุอย่างรวดเร็วและการแก้ไขก็จะเห็นได้ชัดเจนสำหรับใครบางคน" โดยสรุปบทเรียนสำคัญที่เขาได้เรียนรู้มาหลายปี "หรือพูดอย่างไม่เป็นทางการ 'หากมีดวงตามากพอ บั๊กทั้งหมดก็ตื้น'"

เขาขนานนามสุภาษิตนี้ว่ากฎของลีนุส (Linus's Law)

น่าสนใจที่ Raymond เชื่อว่าโมเดลการพัฒนานี้สามารถให้ประโยชน์แม้กระทั่งกับธุรกิจและคนที่ไม่ได้แบ่งปันความกังวลของสตอลแมนเกี่ยวกับซอฟต์แวร์กรรมสิทธิ์ แต่แค่ต้องการโค้ดคุณภาพสูงในราคาต่ำ อย่างไรก็ตาม เขาสงสัยว่าหลายคน (โดยเฉพาะธุรกิจ) ลังเลที่จะใช้ซอฟต์แวร์เสรีเพราะพวกเขารู้สึกไม่ชอบเรื่องราวทางอุดมการณ์รอบๆ มัน ดังนั้นเพื่อลดความสำคัญของแรงจูงใจเดิมของสตอลแมน และเน้นประโยชน์ในทางปฏิบัติมากขึ้น ในช่วงปลายทศวรรษ 1990 Raymond จึงนำความพยายามในการสร้างแบรนด์ใหม่ให้ซอฟต์แวร์เสรีเป็น "ซอฟต์แวร์โอเพนซอร์ส"

อย่างไรก็ตาม สตอลแมนเองไม่เห็นด้วยกับการสร้างแบรนด์ใหม่ สำหรับเขา เสรีภาพเป็นประเด็นสำคัญ และการพูดถึง "โอเพนซอร์ส" ทำให้ข้อความนั้นจางลง

ปัจจุบัน คำว่า "ซอฟต์แวร์เสรี" และ "ซอฟต์แวร์โอเพนซอร์ส" ในเกือบทุกกรณีหมายถึงแนวคิดในทางปฏิบัติเดียวกัน แต่ความแตกต่างในคำศัพท์ยังคงแสดงถึงความแตกแยกทางปรัชญา คำว่า "ซอฟต์แวร์เสรีและโอเพนซอร์ส" (FOSS) ใช้เพื่อรวมทั้งสองฝ่ายของความขัดแย้งอย่างชัดเจน

Last updated