کپیلِفت: آرمانگرایی در جامهٔ عمل
به قلمِ ریچارد استالمنهر تصمیمی که انسان میگیرد در ارزشها و اهداف زندگیاش ریشه دارد و انسانها ممکن است ارزشها و اهداف بسیاری در زندگی خود داشته باشند؛ شهرت، ثروت، عشق، بقا، شادکامی و آزادی برخی از اهدافی هستند که انسانهای خوب ممکن است در پی آنها باشند. هنگامی که یک هدف برخواسته از ارزشهای اخلاقی باشد، آن را آرمان مینامیم.
کار من در زمینهٔ نرمافزار آزاد بر پایهٔ هدفی آرمانی استوار است: گسترش آزادی و همکاری. میخواهم نرمافزار آزاد را توسعه دهم تا جایگزین نرمافزار انحصاری که مخالف همکاری است شود و بدین ترتیب جامعهمان را بهبود بخشد.
به همین دلیل پروانهٔ جامع همگانی گنو (جیپیاِل) در قالب کُپیلفت نوشته شده است. تمامی کدهای افزوده شده به برنامههایی که تحت GPL هستند باید آزاد باشند، حتی اگر در پروندهای جداگانه قرار گیرند. به منظور ترغیب دیگر برنامهنویسان به آزاد کردن نرمافزارهایشان، کدهایی که مینویسم را برای استفاده در نرمافزارهای آزاد دردسترس قرار دادهام اما نه برای استفاده در نرمافزارهای ناآزاد. از آنجا که توسعهدهندگان نرمافزار انحصاری از حق رونوشت (کپیرایت) برای جلوگیری از اشتراکگذاری استفاده میکنند، ما مشارکتکنندگان هم میتوانیم از حق رونوشت به نفع خودمان استفاده کنیم؛ بدین صورت که به دیگر مشارکتکنندگان اجازه استفاده از کُدمان را بدهیم.
البته همهٔ کسانی که از گنو GPL استفاده میکنند چنین هدفی ندارند. سالها پیش به یکی از دوستانم پیشنهاد شد که برنامهای کپیلفتدار را تحت ضوابطی خارج از کپیلفت منتشر کند، او کموبیش این گونه پاسخ داد:
«گاهی اوقات روی نرمافزار آزاد کار میکنم و گاهی روی نرمافزار انحصاری — اما هنگامی که روی نرمافزار انحصاری کار میکنم، انتظار دارم حقوق بگیرم.»
او علاقهمند بود تا کار خود را در اختیار جامعهٔ ما، جامعهای مبتنی بر اشتراکگذاری نرمافزار، قرار دهد. اما همکاری کردن با کسبوکارهایی که محصولاتی خارج از حیطهٔ جامعهٔ ما میسازند نیز از نظر او مشکلی نداشت. هدفش با من یکی نبود، با این حال به این نتیجه رسیده بود که گنو GPL برای هدف او هم مناسب است.
اما اگر میخواهید در جهان کاری را به سرانجام برسانید آرمانگرایی کافی نیست — شما باید روشی را برگزینید که برای رسیدن به هدف کارآمد است. به بیانی دیگر باید «عملگرا (پراگماتیک)» باشید. آیا GPL پروانهای عملگرا است؟ بگذارید نگاهی بیاندازیم.
مترجمِ ++C گنو را در نظر بگیرید. از خود بپرسید چرا مترجم ++C آزاد داریم؟ پاسخ این است: زیرا گنو GPL آن را ملزم به آزاد بودن کرده است. مترجم ++C گنو توسط یک کنسرسیوم صنعتی به نام MCC از مترجم C گنو متولد شد. این کنسرسیوم معمولا آثار خود را تا جای ممکن انحصاری میکند. اما آنها فرانتاِند (پیشانهٔ) مترجم ++C را به عنوان نرمافزار آزاد منتشر کردند، چراکه طبق گنو GPL این تنها گزینهشان بود. فرانتاِند ++C شامل پروندههای تازهساخت بسیاری بود، اما از آنجا که آنها به مترجم C گنو پیوند میشدند، GPL بر آنها نیز اعمال میشد. فواید این کار برای جامعهٔ ما مثل روز روشن است.
آبجتکیو-سی گنو را در نظر بگیرید. شرکت نکست (NeXT) در ابتدا میخواست که این فرانتاِند را انحصاری کند؛ آنها پیشنهاد کردند که آبجکتیو-سی را در قالب پروندههای .o منتشر کرده و سپس امکان پیوند دادن آن به مترجم C گنو را برای کاربران ایجاد کنند. آنها خیال میکردند که با این شیوه میتوانند جیپیاِل را دور بزنند. اما وکیل ما اظهار کرد که مجاز به چنین کاری نیستند و نمیتوانند مفاد پروانه را از سر باز کنند. بنابراین آنها فرانتاِند آبجکتیو-سی را آزاد منتشر کردند.
این نمونهها سالها پیش رخ دادهاند، اما گنو GPL همچنان نرمافزارهای آزاد بیشتری برایمان به ارمغان میآورد.
بسیاری از کتابخانههای گنو تحت پروانهٔ «کمتر-جامع همگانی گنو» هستند، اما نه همهٔ آنها. یکی از کتابخانههایی که تحت گنو GPL معمولی محفوظ است، Readline نام دارد که قابلیت ویرایش در خط فرمان را پیادهسازی میکند. یک بار بر حسب اتفاق متوجه شدم که یک برنامهٔ انحصاری از کتابخانهٔ Readline استفاده میکند و به توسعهدهندهاش اطلاع دادم که اجازه این کار را ندارد. او میتوانست قابلیت ویرایش در خط فرمان را از برنامه حذف کند، اما کاری که انجام داد انتشار دوباره برنامه تحت GPL بود. آن برنامه تا امروز نرمافزار آزاد است.
برنامهنویسانی که مترجم C گنو (ایمکس، بَش، لینوکس یا هر برنامهٔ تحت GPL) را توسعه و بهبود میدهند معمولاً توسط شرکتها یا دانشگاهها استخدام میشوند. هنگامی که برنامهنویس میخواهد بهبودهایش را به جامعه باز گرداند و کُد خود را در انتشار بعدی برنامه ببیند، رئیس ممکن است بگوید: «دست نگه دار — کُد تو متعلق به ماست! ما نمیخواهیم آن را به اشتراک بگذاریم؛ بلکه تصمیم گرفتهایم تا نگارش بهبودیافتهات را به یک نرمافزار انحصاری تبدیل کنیم».
اینجاست که گنو GPL به نجات میآید. برنامهنویس به رئیس نشان میدهد که انحصاری کردنِ این محصول، از مصادیق نقض حق رونوشت است، و رئیس متوجه میشود که تنها دو گزینه دارد: یا کُد جدید را آزاد منتشر کند یا اصلاً منتشر نکند. در اغلب اوقات او به برنامهنویس اجازه میدهد تا همان کاری که از ابتدا میخواست را انجام دهد و کُد به نگارش بعدی افزوده میشود.
گنو جیپیاِل بچه مثبت ماجرا نیست و به بعضی از کارهایی که افراد میخواهند انجام دهند قاطعانه نه میگوید. کاربرانی هستند که میگویند این خوب نیست — میگویند GPL همچون «مانعی» است بر سر راه انحصارینویسانی که «لازم است به جامعهٔ نرمافزار آزاد آورده شوند».
اما ما آنها را از ورود به جامعهمان منع نمیکنیم، خودشان انتخاب میکنند که به ما نپیوندند. تصمیم به انحصاری کردن نرمافزار، همان تصمیمی است که آنها را بیرون از جامعهٔ ما نگاه میدارد. حضور در جامعهٔ ما به معنی مشارکت با ماست و ما نمیتوانیم آنها را «وادار به حضور کنیم» وقتی نمیخواهند با ما مشارکت کنند.
کاری که میتوانیم انجام دهیم ایجاد انگیزه برای آنهاست تا به ما بپیوندند. گنو GPL طراحی شده تا این انگیزه را از طریق نرمافزارهایی که از پیش داریم ایجاد کند: «اگر نرمافزارتان را آزاد کنید، میتوانید از این کُد ما استفاده کنید.» البته که این راهبرد همواره پیروزِ میدان نیست، اما برخی اوقات کارساز است.
توسعهٔ نرمافزار انحصاری خدمتی به جامعهٔ ما نمیکند، اما توسعهدهندگان آن اغلب از ما خیرات میخواهند. کاربران نرمافزار آزاد میتوانند برای توسعهدهندگان نرمافزار آزاد احساس رضایت و سربلندی به ارمغان آورند — با به رسمیت شناختن و قدردانی از آنها — اما بسیار فریبنده است اگر کسبوکاری به شما بگوید «بگذار کُدهایت را در برنامهٔ انحصاریمان قرار دهیم تا هزاران هزار کاربر از برنامهات استفاده کنند!». این وسوسه بسیار قدرتمند است اما اگر در برابر آن مقاومت کنیم، در طولانی مدت هنگی از آن فایدهٔ بیشتری خواهیم برد.
تشخیص چنین وسوسهها و فریبهایی زمانی سخت است که به طور غیر مستقیم مطرح میشوند؛ مثلاً توسط سازمانهای نرمافزار آزادی که سیاست تأمین نرمافزارهای انحصاری را در پیش گرفتهاند. کنسرسیومِ ایکس X (و جانشین آن، اوپنگروپ) مصداق خوبی است: این پروژه را شرکتهایی حمایت مالی میکردند که تولیدکنندهٔ نرمافزار انحصاری بودند، آنها یک دهه تلاش کردند تا برنامهنویسان را متقاعد کنند که به سراغ کپیلفت نروند. وقتی اوپنگروپ تلاش کرد تا X11R6.4 را به یک نرمافزار ناآزاد تبدیل کند، مایی که در مقابل این فشار مقاومت کرده بودیم، خشنود شدیم.
در سپتامبر ۱۹۹۸، ماهها پس از انتشار X11R6.4 تحت پروانهای ناآزاد، شرکت اوپنگروپ از تصمیم خود صرف نظر کرد و آن را تحت همان پروانهٔ کپیلفتی که قبلا برای X11R6.3 به کار گرفته شده بود، منتشر کرد. از اوپنگروپ سپاسگزاریم — اما این تصمیم، نتیجهگیری ما دربارهٔ این حقیقت که امکان ایجاد محدودیت وجود داشته است را بیاعتبار نمیسازد.
در تفکر عملگرا، اندیشیدن به اهدافِ طولانیمدتِ بزرگتر، ارادهٔ شما برای مقاومت در برابر این فشار را تقویت میکند. اگر ذهن خود را بر روی آزادی و جامعهای که میتوانید با محکم ایستادن بسازید، متمرکز کنید، مقابله با این فشار آسانتر خواهد شد. «برای هدفی ایستادگی کنید در غیر این صورت فریب هر وسوسهای را خواهید خورد».
اگر منفیبافان آزادی و جامعه را به تمسخر میگیرند… اگر واقعگرایانِ متعصب میگویند که سود، تنها آرمان این جهان است… آنها را نادیده بگیرید، و همچنان از کُپیلفت استفاده کنید.
این مقاله در کتابِ نرمافزار آزاد، جامعهٔ آزاد: منتخبِ مقالههای ریچارد م. استالمن منتشر شده است.