در طول دهه گذشته، توسعهدهندگان نرمافزار آزاد بارها توسط ابزارهای توسعهای وسوسه شدهاند که توانایی ساخت نرمافزار آزاد را با کارایی بیشتر یا قدرت بالاتر فراهم میکنند.
به ما گفته میشود که تنها هزینه این کار این است که خود این ابزارها غیرآزاد هستند یا بهعنوان سرویسهای شبکهای اجرا میشوند که کدی دارند که ما نمیتوانیم ببینیم، کپی کنیم، یا خودمان اجرا کنیم. توسعهدهندگان نرمافزار آزاد در تصمیمات خود برای استفاده از این ابزارها و سرویسها—سرویسهایی مانند BitKeeper، SourceForge، Google Code و GitHub—تصمیماتی با رویکرد “هدف، وسیله را توجیه میکند” گرفتهاند که آزادی جوامع توسعهدهنده و کاربرانشان را به خطر انداخته است. این تصمیمات برای استقبال از ابزارهای توسعه غیرآزاد و خصوصی، اعتبار ما را در حمایت از آزادی نرمافزار تضعیف میکند و آزادی ما و کاربرانمان را به روشهایی به خطر میاندازد که باید آنها را رد کنیم.
در سال ۲۰۰۲، لینوس توروالدز اعلام کرد که هسته لینوکس به سیستم کنترل نسخه توزیعشده (DVCS) “BitKeeper” روی خواهد آورد. در حالی که این تصمیم نگرانی و بحث زیادی ایجاد کرد، BitKeeper به توسعهدهندگان هسته اجازه میداد به روشی توزیعشده کار کنند که در آن زمان توسط ابزارهای نرمافزار آزاد پشتیبانی نمیشد—برخی از توسعهدهندگان لینوکس به این نتیجه رسیدند که مزایای آن ارزش مبادله با آزادی توسعهدهندگان را دارد. سه سال بعد، زمانی که مالک BitKeeper، لری مکووی، مجوزهای آزاد چندین توسعهدهنده اصلی هسته را برای استفاده از BitKeeper لغو کرد—پس از آنکه اندرو تریجیل تلاش کرد یک جایگزین آزاد برای BitKeeper بنویسد—شکاکان به حقیقت رسیدند. توسعهدهندگان هسته مجبور شدند جایگزین نرمافزار آزاد خود را بنویسند: پروژهای که اکنون با نام Git شناخته میشود.
البته، رابطه نرمافزار آزاد با ابزارهای توسعه غیرآزاد بسیار فراتر از BitKeeper است. کد منبع سرویس پشتیبانی توسعه نرمافزار آزاد SourceForge زمانی در دسترس کاربرانش بود، اما نویسندگان آن به یک مدل کاملاً بسته بازگشتهاند. در حالی که SourceForge با استفاده از نرمافزار آزاد ساخته شده است، کاربران SourceForge از طریق وب با نرمافزار تعامل دارند. از آنجا که کاربران هرگز نسخهای از نرمافزار SourceForge ندارند، هرگز نمیتوانند کد منبع را مطالبه کنند. پروژههای مشابه مانند Tigris.org از CollabNet، سرویسهای “میزبانی پروژههای منبع باز” Google Code، و GitHub، هر کدام اهداف مشابهی را دنبال کردهاند و کد خود را به همین شکل دور از دسترس نگه داشتهاند. خدمات آنها اغلب بدون هزینه ارائه میشود و برای توسعه نرمافزار آزاد تبلیغ میگردد، اما این تعهد به نرمافزار خودشان که پلتفرمهای توسعه را اجرا میکند، گسترش نمییابد. کد منبع هر یک از این سیستمها خصوصی و برای توسعهدهندگانی که از این خدمات استفاده میکنند، غیرقابل تغییر باقی میماند.
این ابزارهای توسعه غیرآزاد برای بسیاری از توسعهدهندگان نرمافزار آزاد یک معضل ایجاد میکنند. هدف بسیاری از این ابزارها، از طریق توسعه کارآمدتر نرمافزار آزاد، دستیابی به نرمافزار آزاد بیشتر و آزادی بیشتر است. CollabNet، گوگل و GitHub همگی ادعا میکنند که میخواهند نرمافزار آزاد موفق شود و ادعا میکنند که میخواهند به آن کمک کنند. با این حال، به دلایلی، این شرکتها حمایت از آزادی نرمافزار را از طریق ابزارهایی انتخاب میکنند که کمتر با اخلاق نرمافزار آزاد مطابقت دارند تا ابزارهایی که در صدد ایجاد آنها هستند. نتیجه این امر توسعهدهندگانی هستند که قدرتشان گرفته شده است. آزادی نرمافزاری کدی که این هکرها تولید میکنند، وابسته به انحصاری بودن غیرقابل قبول است.
اول، استفاده از ابزارهای غیرآزاد پیامی غیرقابل قبول به کاربران نرمافزار آزاد تولید شده میفرستد. به نظر میرسد توسعهدهندگان میگویند: “آزادی نرمافزار برای شما بهعنوان کاربران مهم است، اما برای ما نه.” چنین رفتاری، اثربخشی اصلی تعهد اخلاقی قویای را که در قلب جنبش نرمافزار آزاد قرار دارد، تضعیف میکند. بهعنوان کسانی که قبلاً به نرمافزار آزاد متعهد شدهایم، باید نشان دهیم که میتوانیم با استفاده از نرمافزار آزاد موفق شویم و پیشرفت کنیم. ما باید از جایگزینهای آزاد برای سیستمهای انحصاری حمایت کنیم—مانند Savane که میتواند جایگزین SourceForge یا Google Code شود و GNU Savannah را اجرا میکند، یا Gitorious که میتواند جایگزین GitHub شود—از طریق استفاده از آنها و بهبود آنها در زمینههایی که کمبود دارند.
دوم، باید متوجه شویم که، در ادامه، نرمافزاری که تولید میکنیم تنها به اندازه نرمافزاری که برای ادامه استفاده، توزیع و تکامل خود به آن وابسته است، آزاد است.
مجوز GNU GPL و کد منبع برای کاربری که تلاش میکند برنامهای را بدون دسترسی آزاد به نرمافزار مورد نیاز برای انجام آن تغییر، اصلاح کند، معنای کمی دارد. این تنها آزادی توسعهدهندگان نیست که در خطر است، بلکه در نهایت کاربران آنها و تمام توسعهدهندگان “پاییندست” آینده نیز در خطرند. کسانی که استفاده از ابزارهای غیرآزاد را انتخاب میکنند، همه را تابع میل گروهها و افرادی قرار میدهند که ابزارهای مورد وابستگی آنها را تولید میکنند.
در حالی که ابزارهای توسعه انحصاری ممکن است در کوتاهمدت به توسعهدهندگان نرمافزار آزاد کمک کنند تا نرمافزار آزاد بیشتری ایجاد کنند، اما این با هزینهای غیرقابل قبول همراه است. در حوزه بحثبرانگیز نرمافزار انحصاری و سرویسهای شبکه، توسعهدهندگان نرمافزار آزاد باید جانب “آزادی بیش از حد” را بگیرند. به خطر انداختن اصول ما در تلاش برای دستیابی به آزادی بیشتر، خود ویرانگر، ناپایدار و در نهایت برای کاربران ما و جامعه بزرگتر توسعه نرمافزار آزاد ناعادلانه است.
همانطور که نگهبانان اولیه GNU ابتدا بر ایجاد ابزارهای آزاد برای ساخت نرمافزار آزاد تمرکز کردند، ما نیز باید اطمینان حاصل کنیم که میتوانیم نرمافزار را آزادانه و با استفاده از ابزارهای بلامنازع آزاد تولید کنیم. عدم انجام این کار منجر به نرمافزاری خواهد شد که، بهطور غیرمستقیم، آزادی کمتری دارد. ما باید در برابر استفاده از ابزارهایی که آزادیهایی را که ما تلاش میکنیم در توسعه نرمافزار برای کاربرانمان فراهم کنیم، به ما نمیدهند، مقاومت کنیم و باید بر تولیدکنندگان ابزارهای توسعه خود فشار بیاوریم. نرمافزار آزاد با به خطر انداختن اصول ما به موفقیت نرسیده است. ما با به خطر انداختن آزادی ابزارهایی که برای ساختن یک جهان آزاد استفاده میکنیم، از نظر فنی، عملی یا اخلاقی، نتیجه خوبی نخواهیم گرفت.
منبع Benjamin Mako Hill