جدایی از بیتکیپر
در مجموعهٔ قبل دیدیم که هستهٔ لینوکس از یک پیام کوتاه به پروژهای با هزاران مشارکتکننده رسید. اما هرچه پروژه بزرگتر میشد، یک پرسش ساده دشوارتر میشد: این همه تغییر را چگونه باید مدیریت کرد؟
سالهای وصله و رایانامه
به نوشتهٔ کتاب رسمی گیت، در سالهای ۱۹۹۱ تا ۲۰۰۲ تغییرات هسته به شکل «وصله» (پروندههایی که تفاوت کد قدیم و جدید را نشان میدهند) و پروندههای فشرده دستبهدست میشد. برنامهنویسان وصلهها را با رایانامه میفرستادند و توروالدز آنها را یکییکی میخواند و اعمال میکرد.
این روش برای یک پروژهٔ کوچک کار میکرد، اما برای پروژهای به این بزرگی نه. نشریهٔ الدبلیوان بعدها نوشت که در آن دوران گفته میشد توروالدز «مقیاسپذیر نیست»: وصلهها گم میشدند، توسعهدهندگان شکایت داشتند و خود او خسته بود.
ابزاری بسته برای پروژهای باز
برنامهنویسی به نام لری مکوی، صاحب شرکت بیتموور، راه حلی پیشنهاد کرد: نرمافزار مدیریت نسخهٔ شرکتش به نام بیتکیپر. به گزارش الدبلیوان، او از سال ۱۹۹۹ نگران فرسودگی توروالدز بود و باور داشت با ابزار درست، مشکل حل میشود. در ۲۰۰۲، توروالدز تصمیم گرفت آن را امتحان کند.
نتیجه چشمگیر بود. بیتکیپر الگویی را جا انداخت که در آن مخزن مرکزی وجود نداشت: هر برنامهنویس میتوانست نسخهٔ کامل و مستقلی از تاریخچهٔ کد داشته باشد و تغییرات را از یک نسخه به نسخهٔ دیگر «بکشد». به نوشتهٔ الدبلیوان، سرعت پذیرش وصلهها جهش کرد و توسعهدهندگان راضی بودند.
اما یک مشکل بزرگ وجود داشت: بیتکیپر نرمافزاری انحصاری بود. نسخهٔ رایگانش با شرطهایی سخت همراه بود؛ از جمله اینکه کاربرانش حق نداشتند روی هیچ ابزار مدیریت نسخهٔ دیگری کار کنند یا سازوکار آن را کشف کنند. بسیاری از طرفداران نرمافزار آزاد از همان ابتدا با این وابستگی مخالف بودند: چرا بزرگترین پروژهٔ آزاد جهان باید به ابزاری بسته تکیه کند؟
قطع رابطه
در آوریل ۲۰۰۵، این توازن شکننده به هم خورد. اندرو تریجل، برنامهنویس استرالیایی و سازندهٔ نرمافزار شناختهشدهٔ سامبا، که مانند توروالدز از پژوهشگران ارشد اواسدیال بود، کوشید با بررسی رفتار بیتکیپر، ابزاری آزاد بسازد که بتواند با مخزنهای آن کار کند. بیتموور این کار را نقض شرایط خود دانست. به گزارش الدبلیوان، شرکت در نهایت نسخهٔ رایگان بیتکیپر را پس گرفت. تریجل چند روز بعد، به گزارش زیدینت، این ادعا را که کد بیتکیپر را نقض کرده رد کرد و در سخنرانیای نشان داد که اطلاعات لازم را میشد از راهنمای برخط خود بیتکیپر به دست آورد.
توروالدز اعلام کرد استفاده از بیتکیپر را کنار گذاشته تا گزینههای دیگر را بررسی کند و با طنز نوشت: «تا اینجا دنیای خاکستری و دلگیری است». به نوشتهٔ الدبلیوان، روشن نبود هیچیک از ابزارهای آزاد موجود بتواند بار پروژهای به بزرگی هسته را تحمل کند؛ و بازگشت به روزهای وصله و رایانامه هم گزینهٔ قابل قبولی نبود.
نقطهٔ عطف
یکشبه، بزرگترین پروژهٔ آزاد جهان ابزار اصلی کارش را از دست داد. این همان خطری بود که منتقدان سالها هشدارش را داده بودند. الدبلیوان آن روزها نوشت که نرمافزار انحصاری میتواند خوب باشد، اما همیشه این تهدید را با خود دارد که «هرگز نمیدانید فردا هم برایتان در دسترس خواهد بود یا نه». در عین حال، الدبلیوان منصفانه یادآوری کرد که بیتکیپر سه سال به پروژه خدمت کرده و هسته بدون آن به این توانایی نمیرسید.
درسی برای کسبوکارها
وابستگی حیاتی به ابزاری که کنترلش در دست شما نیست، ریسکی پنهان است. تا روزی که همهچیز خوب پیش میرود، دیده نمیشود؛ اما روزی که تأمینکننده شرایطش را عوض کند، کل کسبوکار شما گرفتار میشود. همیشه بپرسید: «اگر فردا این را از ما بگیرند، چه میکنیم؟»
دوم، شرایط قرارداد را به اندازهٔ کیفیت محصول جدی بگیرید. بیتکیپر از نظر فنی عالی بود؛ مشکل در محدودیتهای مجوزش بود.
سوم، قدردانی را فراموش نکنید. حتی وقتی رابطهای تمام میشود، شناختن ارزشی که آفریده است، به تصمیمگیری عاقلانهتر کمک میکند.
در قسمت بعد: توروالدز تصمیم گرفت منتظر نماند. او چند روز ناپدید شد و با ابزاری تازه بازگشت که نامش را با شوخی «ردیاب محتوای احمق» گذاشته بود.
منابع / Sources
"A Short History of Git", Pro Git book, git-scm.com, n.d. — https://git-scm.com/book/en/v2/Getting-Started-A-Short-History-of-Git
"The kernel and BitKeeper part ways", LWN.net, Jonathan Corbet, 2005-04-06 — https://lwn.net/Articles/130746/
"Tridgell speaks out in BitKeeper war", ZDNet, Angus Kidman, 2005-04-20 — https://www.zdnet.com/article/tridgell-speaks-out-in-bitkeeper-war/