کپی‌لفت: آرمان‌گرایی عمل‌گرایانه

نوشتهٔ ریچارد استالمن

هر تصمیمی که شخص می‌گیرد ریشه در ارزش‌ها و اهداف وی دارد. مردم می‌توانند ارزش‌ها و اهداف بسیار متفاوتی داشته باشند؛ شهرت، سود، عشق، بقا، سرگرمی، و آزادی تنها تعداد کمی از اهدافی هستند که یک شخص ممکن است داشته باشد. هنگامی که هدف کمک به دیگران به مانند کمک به خود باشد، آرمان‌گرایی نامیده می‌شود.

عملکرد من در رابطه با نرم‌افزار آزاد دارای انگیزش آرمان‌گرایی است: انتشار آزادی و تعاون. قصد دارم نرم‌افزار آزاد را قدرتمند سازم تا منتشر شود، جایگزین نرم‌افزار اختصاصی که تعاون را منع می‌کند شود، و جامعهٔ ما را بهتر سازد.

و این اساسی‌ترین دلیلی است که چرا اجازه‌نامهٔ جامع و عمومی گنو (GPL) به این شکل نگاشته شده است—به عنوان کپی‌لفت. تمام کدهایی که به یک نرم‌افزار تحت پوشش GPL اضافه می‌شوند باید آزاد باشند، حتی اگر در فایل جداگانه‌ای قرار گیرند. من کد خودم را به عنوان نرم‌افزار آزاد منتشر کرده‌ام، و نه به صورت نرم‌افزار اختصاصی، به این منظور که دیگر افراد را تشویق کنم نرم‌افزارهای خود را آزاد سازند. متوجه شده‌ام همانطور که نرم‌افزار اختصاصی از کپی‌رایت برای متوقف ساختن اشتراک‌گذاری استفاده می‌کند، ما می‌توانیم از کپی‌رایت برای اعطای امتیازی به دیگر همکاران استفاده کنیم: آنها می‌توانند از کد ما استفاده کنند.

تمام آنهایی که از GPL استفاده می‌کنند چنین هدفی ندارند. چندین سال پیش، از یکی از دوستان من خواسته شد که یک نرم‌افزار کپی‌لفت را تحت قوانین غیر کپی‌لفت منتشر کند. پاسخ او چیزی همانند این بود:

بعضی مواقع من روی نرم‌افزار آزاد کار می‌کنم، بعضی مواقع روی نرم‌افزار اختصاصی کار می‌کنم.—اما هنگامی که روی نرم‌افزار اختصاصی کار می‌کنم، انتظار دریافت دستمزد دارم.

او قصد داشت کار خود را با جامعه‌ای که نرم‌افزار را به اشتراک می‌گذارند، به اشتراک گذارد، اما دلیلی برای کمک به کسب و کارهایی که محصولاتی را تولید می‌کنند که باعث محدودیت جامعهٔ ما می‌شوند، نمی‌دید. هدف او با من متفاوت بود، اما متوجه شده بود که GPL برای هدف او نیز مفید است.

اگر می‌خواهید کاری را در دنیا به انجام رسانید، آرمان‌گرایی کافی نیست—روشی احتیاج دارید که شما را به هدفتان نائل کند. به عبارت دیگر، باید عمل‌گرا باشید. آیا GPL عمل‌گرایانه است؟ بیایید دلایل را برسی کنیم.

GNU C++ را در نظر بگیرید. چرا ما یک کامپایلر آزاد برای C++ داریم؟ تنها به این دلیل که GNU GPL می‌گوید که باید آزاد باشد. GNU C++ توسط یک کنسرسیوم صنعتی، MCC، با شروع از GNU C توسعه داده شد. به طور معمول MCC محصول خود را تا آن جا که ممکن است اختصاصی طراحی می‌کند. اما آنها کامپایلر C++ را به صورت نرم‌افزار آزاد توسعه دادند، چرا که GNU GPL می‌گفت که این تنها راهی است که می‌توانند برنامهٔ خود را منتشر کنند. کامپایلر C++ شامل بسیاری فایل‌های جدید می‌شد، اما از آنجایی که آنها با GCC پیوند می‌خوردند، GPL به آنها نیز اعمال می‌شد. منفعتی که به جامعهٔ ما رسیده آشکار است.

GNU Objective C را در نظر بگیرید. در آغاز NeXT قصد داشت این نرم‌افزار را به صورت اختصاصی منتشر کند؛ آنها پیشنهاد کردند که کامپایلر را به صورت فایل‌های .o منتشر کنند و کاربران آنها را به GCC پیوند کنند، با این تصور که ممکن است بتوانند التزامات GPL را دور بزنند. اما وکیل ما گفت که این امر نمی‌تواند باعث گریز از التزامات شود، اجازهٔ انجام این کار وجود ندارد. بنابراین آنان کامپایلر Objective C را به صورت نرم‌افزار آزاد منتشر کردند.

این مثال‌ها چند سال پیش اتفاق افتاده‌اند، اما GNU GPL به فراهم آوردن نرم‌افزار آزاد بیشتر برای ما ادامه می‌دهد.

بسیاری از کتابخانه‌های گنو تحت پوشش اجازه‌نامهٔ کوچکتر جامع و عمومی گنو (LGPL) قرار دارند، اما نه تمامی آنها. یکی از کتابخانه‌هایی که تحت پوشش GPL عادی قرار دارد Readline است، که ویرایش در خط فرمان را پیاده‌سازی می‌کند. زمانی متوجه شدم که یک برنامهٔ غیر آزاد به گونه‌ای طراحی شده است که از کتابخانه‌های Readline استفاده کند، و به توسعه‌دهندهٔ آن گفتم که این کار مجاز نیست. او می‌توانست ویرایش خط فرمان را از برنامه حذف کند، اما کاری که او در حقیقت انجام داد این بود که برنامه را تحت قوانین GPL منتشر سازد. حال آن برنامه یک نرم‌افزار آزاد است.

برنامه‌نویسانی که اصلاحیه‌هایی برای GCC (یا Emacs، یا Bash، یا لینوکس و یا هر برنامهٔ تحت GPL) می‌نویسند، معمولا توسط شرکت‌ها و یا دانشگاه‌ها استخدام شده‌اند. هنگامی که برنامه‌نویس می‌خواهد اصلاحیهٔ خود را به جامعه بازگرداند، و کد خود را در نسخهٔ بعد ببیند، رئیس او ممکن است بگوید ”دست نگه دار—کد تو متعلق به ما است! ما نمی‌خواهیم آن را به اشتراک بگذاریم؛ ما تصمیم گرفته‌ایم اصلاحیهٔ تو را به یک نرم‌افزار اختصاصی تبدیل کنیم.“

و اینجا است که GNU GPL برای نجات سر می‌رسد. برنامه‌نویس به رئیس نشان می‌دهد که این محصول اختصاصی تخلف از کپی‌رایت خواهد بود، و رئیس متوجه می‌شود که تنها دو انتخاب پیش رو دارد: کد جدید را به عنوان نرم‌افزار آزاد منتشر کند، و یا به هیچ وجه آن را منتشر نکند. تقریبا همیشه رئیس اجازه می‌دهد برنامه‌نویس آنچه را می‌خواسته است انجام دهد، و کد در نسخهٔ بعد قرار می‌گیرد.

GNU GPL یک آقای مؤدب نیست. GPL به بعضی از کارهایی که مردم می‌خواهند انجام دهند نه می‌گوید. تعدادی از کاربران معتقدند که این روش بدی است—اینکه GPL ”مانع ورود“ بعضی توسعه‌دهندگان نرم‌افزارهای اختصاصی که ”لازم است به جامعهٔ نرم‌افزار آزاد آورده شوند“ می‌شود.

اما ما مانع ورود آنها به جامعهٔ خود نیستیم؛ آنها خود خواسته‌اند که وارد نشوند. تصمیم آنها برای ساخت نرم‌افزار اختصاصی تصمیمی برای وارد نشدن به جامعهٔ ما است. بودن در جامعهٔ ما به این معنی است که به همکاری با ما بپیوندید؛ اگر خودشان نمی‌خواهند، ما نمی‌توانیم ”آنها را به جامعهٔ خود وارد کنیم.“

کاری که می‌توانیم انجام دهیم این است که انگیزه‌ای برای پیوستن به جامعه به آنها بدهیم. GNU GPL طراحی شده است که انگیزه‌ای از نرم‌افزارهای موجودِ ما بیافریند: ”اگر نرم‌افزار خود را آزاد سازید، می‌توانید از این کد استفاده کنید.“ مسلما این امر در همهٔ موارد باعث پیروزی نمی‌شود، اما گاهی اوقات پیروز می‌شود.

توسعهٔ نرم‌افزار اختصاصی در جامعهٔ ما جایی ندارد، اما توسعه‌دهندگان آن معمولا از ما کمک می‌طلبند. کاربران نرم‌افزار آزاد می‌توانند برای توسعه‌دهندگان رضایت خاطر—به رسمیت شناختن و قدردانی— را فراهم آورند اما اینکه تاجری به شما بگوید ”بگذار برنامهٔ تو را در نرم‌افزار اختصاصی خود قرار دهیم، و هزاران کاربر از آن استفاده خواهند کرد!“ می‌تواند بسیار اغوا کننده باشد. این وسوسه می‌تواند بسیار قدرتمند باشد، اما اگر بتوانیم در مقابل آن مقاومت کنیم، در طولانی مدت فایدهٔ بیشتری خواهیم برد.

تشخیص وسوسه و فشار هنگامی که به صورت غیر مستقیم توسط سازمان‌های نرم‌افزار آزادی که سیاست کمک به نرم‌افزارهای اختصاصی را پذیرفته‌اند، سخت‌تر خواهد بود. یک مثال آن کنسرسیومِ X (و جانشین آن، Open Group) است: آنها از شرکت‌هایی تشکیل شده بودند که نرم‌افزار اختصاصی تولید می‌کردند، آنها یک دهه را صرف این کردند که برنامه‌نویسان را متقاعد کنند از کپی‌لفت استفاده نکنند. حال که Open Group نرم‌افزار X11R6.4 را به یک نرم‌افزار غیر آزاد تبدیل کرده است، آنهایی که در مقابل فشار مقاومت کرده‌اند، خرسندند.

در سپتامبر ۱۹۹۸، چندین ماه پس از اینکه X11R6.4 تحت قوانین غیر آزاد توزیع شد، Open Group از تصمیم خود بازگشت و X11R6.4 را تحت همان قوانین کپی‌لفت که قبلا برای آن به کار گرفته شده بود، توزیع کرد. متشکریم Open Group—اما این بازگشت از تصمیم، نتیجه‌ای که ما از این حقیقت که امکان اضافه کردن محدودیت‌ها وجود داشت گرفته‌ایم را بی‌اعتبار نمی‌سازد.

اگر واقع‌بین باشیم، اندیشیدن دربارهٔ اهدافِ بزرگترِ طولانی مدت، ارادهٔ شما را برای مقاومت در برابر این فشار تقویت می‌کند. اگر ذهن خود را بر روی آزادی و جامعه‌ای که می‌توانید با محکم ایستادن بسازید، متمرکز کنید، قدرت انجام این کار را خواهید یافت. ”به خاطر چیزی ایستادگی کنید، در غیر اینصورت به خاطر هیچ سقوط می‌کنید.“

و اگر بدبین‌ها آزادی را به تمسخر می‌گیرند، جامعه را به تمسخر می‌گیرند…”اگر واقع‌بینان متعصب“ می‌گویند که سود، تنها آرمان است…آنها را ندیده بگیرید، و در تمام مدت از کپی‌لفت استفاده کنید.


این مقاله در نرم‌افزار آزاد، جامعهٔ آزاد: منتخب مقالات ریچارد استالمن منتشر شده است.