از نرم‌افزار آزاد؛ تا آزادی نرم‌افزار

دید من نسبت به نرم‌افزار‌های آزاد و متن‌باز، نگاهی به آزادی نرم‌افزار و وضعیت آن در ایران #نرم‌افزار #آزادی_نرم‌افزار

بخش زیادی از کلمات این‌جا تنها نقطه‌نظرات و دید شخصی من نسبت به موضوع است؛ اما سعی می‌کنم در معانی پایه به قسمت‌های دیگر ارجاع دهم.

حدود یک ماه پیش متنی از «علی حسینی» با عنوان «خانم‌ها، آقایان، نرم‌افزار آزاد شکست خورده است» خواندم. با این‌که به‌نظرم بعضی از قسمت‌های این متن مشکلات جدی دارد، اما من را به فکر وا داشت که بار دیگر درباره این موضوع فکر کنم. بعد از خواندن نوشته‌های مصطفی آهنگرها (@ahangarha@mas.to) و محمدرضا طیبی (@tayyebi@mastodon.social) در این باب، تصمیم گرفتم نتیجه افکارم را مکتوب کنم.

نرم‌افزار چیست؟

نرم‌افزار شاید بیشتر علم باشد تا ابزار. علی حسینی در نوشته خود بیان می‌کند که همیشه نرم‌افزار یک ابزار است. سپس با این فرضیه عنوان می‌کند که ابزار چیزی نیست که برای آن بجنگیم. ما برای استفاده از یک ابزار، آن‌را می‌خریم و مهم نیست که درون آن چه‌کار می‌کند و کارخانه آن‌را به چه صورت ساخته‌ است. شاید این قیاس از ابتدا کاملا صحیح نباشد. اگر نرم‌افزار را شکلی از علم بدانیم، سپس می‌توان شیوه‌ی ساخت علم و مقاله‌های علمی را با نرم‌افزار قیاس کرد. به‌نظر من این درک صحیح‌تری از نرم‌افزار است؛ چرا که مانند ساخت یک مقاله در نرم‌افزار نیز شیوه‌های جدید و بهتر عنوان، آزمایش و پیاده‌سازی می‌شوند. مانند ساخت یک مقاله، نرم‌افزار می‌تواند بر دوش ساخته‌های پیشین خود بایستد و از آنان بهره ببرد. و مهم‌تر از همه، مانند یک مقاله، نرم‌افزار نیز می‌تواند تنها به این دلیل ساخته شود که نشان دهد می‌توان راه‌حل بهتری را برای یک مسئله طرح کرد؛ نه این‌که با فروختن یک محصول به سرمایه رسید.

هویداست که این نسخه را نمی‌توان برای همه‌ی نرم‌افزار‌ها پیچید اما خلاف آن هم کامل صدق می‌کند. نرم‌افزار شاید در نهایت پلی بین علم یا ‌ابزار (یا همان محصول) باشد. با این دید می‌توانیم نرم‌افزار را طوری ببینیم که هدف نهایی آن در چارچوب علم، آزاد‌ بودن باشد یا در چارچوب محصول، تولید سرمایه باشد. همچنین، می‌دانم که آزاد یا متن‌باز بودن یک نرم‌افزار ربطی به قیمت آن به‌عنوان محصول ندارد. اما این مطلب نقش به‌سزایی در چگونگی مدل درامدی آن به عنوان محصول دارد.

مدینه فاضله آزادی نرم‌افزار

I cannot agree to that compromise, and my experience teaches me that it won't be temporary. ... What our community needs most is more spine in rejection of non-free software. It has far too much willingness to compromise — Richard Stallman
جواب ساده است: جایی که در آن هیچ چیز غیر آزاد نباشد. با توجه به استانداردهایی که بنیاد نرم‌افزار آزاد عنوان می‌کند و از حرف‌های استالمن می‌توان چنین حالتی را پیش‌بینی کرد. اگر همه مردم ناگهان تصمیم بگیرند به این مدینه فاضله بپیوندند، می‌بایست برای دسکتاپ از سیستم‌عامل‌های تمام‌آزاد (که شامل درصد کمی از معدود کاربران گنو/لینوکس است) استفاده کنند، جاوا‌اسکریپت هیچ وبسایتی را اجرا نکنند، از سرویس‌های PaaS استفاده نکنند و حتی الآن، اگر از سخت‌افزار تمام آزاد نکنند تمام تلاش‌ها بی‌فایده بوده است. برای لپ‌تاپ، سخت‌افزار‌های تمام‌آزاد فقط شامل تعداد انگشت‌شمار از Thinkpadهای قدیمی هستند و برای تلفن همراه تقریبا ممکن نیست. به همین دلیل، استالمن بارها اعلام کرده است که نباید تلفن‌همراه داشت.
The speed at which the free software movement is progressing, suggesting that temporary compromises should be made for long-term gains. This could raise awareness of the software and thus increase the free software movement's influence on relevant standards and legislation. — Eric Raymond
این فقره که هدف بنیاد نرم‌افزار آزاد تا چه حد قابل دسترس است به شما بستگی دارد. من فکر می‌کنم که دنبال‌کردن آن زیادی ایده‌ال‌گرایانه‌ست. چیزی که ریموند به عنوان «سازش» از آن یاد می‌کند نیز ممکن است برای افراد متفاوت باشد. همه چیز به این برمی‌گردد که خط بین ایده‌ال و راحتی را کجا می‌کشید. به زبان دیگر، تا کجا حاضرید وقت و سرمایه و یا حتی امکانات بیشتر را فدای ایده‌ال کنید.

نکته‌ای که فکر می‌کنم اغلب از آن چشم‌پوشی می‌شود، تناسب بین انتخاب مقدار آزادی نرم‌افزار و سخت‌افزارهاست. مثلا اگر می‌خواهید از سیستم‌عامل تمام‌آزاد استفاده کنید درحالی که سخت‌افزار لپ‌تاپ‌تان تمام‌آزاد نیست، از نظر فنی میزانی که به ایده‌ال نزدیک می‌شوید ناچیز و کار شما بیهوده است. یا مثلا اگر سعی می‌کنید از تلگرام را حذف کنید ولی بعد از پل بین ماتریس و تلگرام استفاده کنید، عملا ذره‌ای به آزادی نزدیک نشده‌اید.

جنبش، نگرش یا عادت؟

شاید هر سه؛ شاید هیچ‌کدام. FSF همیشه آزادی نرم‌افزار را «جنبش» خوانده است. شاید ۳۰ سال پیش در آمریکا می‌شد آن‌را جنبش نامید اما نه الان. من معتقدم که هیچ‌وقت یک هدف بزرگ و ایده‌ال‌گرایانه نمی‌تواند جنبش باشد. حتی اگر می‌خواهید در راستای آن حرکت کنید، تنها می‌توان قدم‌های کوچک‌تر را جنبش دانست. مثلا استفاده نکردن از واتس‌اپ

از این رو قطعا آزادی نرم‌افزار می‌تواند «نگرش» باشد. چیزی که در انتخاب و استفاده نرم‌افزار به صورت شخصی تاثیر دارد. اگر آزادی نرم‌افزار را به دید یک نگرش ببینیم، هنوز می‌توانیم جنبه‌های مختلف نرم‌افزار را بررسی کنیم درحالی اخلاقیات آن و نگرش خودمان نیز اهمیت دارند. در این نوع نگرش، شخص فکر می‌کند شاید همه مجبور نیستند از نرم‌افزار آزاد استفاده کنند. با این که آن را روش بهتری می‌دانند ولی برای همه آن را روش بهتری نمی‌دانند.

به نظر من آزادی نرم‌افزار یک «عادت» نیست. اما استفاده از یک سیستم‌عامل، یک سری از نرم‌افزارها یا زبان ‌برنامه‌نویسی می‌تواند عادت باشد. دنبال‌کردن نرم‌افزار‌های آزاد بر حسب عادت، معمولا به این خاطر است که بسیاری از این نرم‌افزارها از نظر فنی عملکرد بهتری دارند و همچنین استادانه‌تر نوشته شده‌اند. دقیقا همین، دلیل استفاده سازمان‌های تجاری از نرم‌افزارهای آزاد و متن‌باز است.

در ایران

خوب نیست؛ انتظار بیشتری (نـ)ـمی‌رود. تنها روش ارزیابی وضع برای من، مقایسه بود. شوربختانه ناامیدکننده‌ترین قیاس، دانشگاه‌ها هستند. آزادی نرم‌افزار از دانشگاه‌ها شروع شد و هنوز همان‌جاها طلایه‌دار هستند؛ درحالی که در ایران این شمع به کلی خاموش شده است. فضای استارت‌آپی به همین دلیل «عادت» با نرم‌افزارهای متن‌باز و آزاد آشنا است ولی در دانشگاه‌ها که باید خود جلودار ساخت علم/نرم‌افزار آزاد باشند، به کلی این موضوع فراموش شده است. شاید وقتی استارت‌آپ‌ها بیشتر از دانشگاه‌ها متقاضی برگزاری لاگ هستند، انتظار بیشتری نمی‌رود.

عَلی ای حال تا جایی که من دیده‌ام بیشتر پروژه‌های متن‌باز و آزاد ایرانی بدون پشوانه مالی توسط یک یا چند نفر ساخته شده‌اند چون علاقه شخصی به آن مسئله داشته‌اند یا آن را پلی می‌دیدند تا بتوانند در سازمان‌های تجاری استخدام شوند. پرواضح است که پشوانه علمی از سمت دانشگاه‌ها و پشتوانه مالی از سازمان‌های تجاری نه تنها می‌تواند باعث شود نرم‌افزارهای بیشتری در این بستر ساخته شوند؛ بلکه باعث ساخت نرم‌افزار‌های بهتر نیز می‌تواند بشود. حتی اگر پشتوانه‌ای هم نباشد چیزی که باعث دلگرمی‌ست، به رسمیت شناختن پروانه‌های متن‌باز و آزاد است. کسی چه می‌داند، شاید رسمیت‌بخشیدن به کپی‌لفت آسان‌تر از کپی‌رایت باشد.

یک مثال نقض

در ۲۲ دی ۱۳۹۹ (دو روز قبل از نوشتن این متن) شرکت ابراروان یک طرح تحت عنوان «سکوی پروژه‌های فریلنسری» آغاز کرد که نه‌تنها توهینی به نرم‌افزار آزاد/متن‌باز بود، بلکه تنها آن‌را تلاشی برای سوءاستفاده از نرخ بالای بیکاری می‌دانم. در توضیحات این طرح گفته شده: «جایی برای برون‌سپاری پروژه‌های فنی و غیرفنی ابر آروان به فریلنسرها» اما در حقیقت ابراروان از مفاهیم [فریلنسری، جمع‌سپاری متن‌باز و مسابقه] قسمت‌هایی را که به نفع آن‌هاست را انتخاب کرده و همه را به هم چسبانده است.

ابراروان با این کار به فرهنگ متن‌باز هیچ کمکی نمی‌کند. معمولا حمایت مالی به یک نرم‌افزار متن‌باز/آزاد به این شکل است. سازمان تجاری از یک نرم‌افزار آزاد/متن‌باز استفاده می‌کند و با پرداخت مبلغی به‌صورت یک‌باره یا ادامه‌دار برنامه‌نویس آن نرم‌افزار را مشتاق به ادامه کار می‌کند. اما اینجا ابراروان می‌خواهد نرم‌افزاری را که وجود ندارد و فقط کاربرد برای خودشان دارد را به‌صورت متن‌باز بسازد. این تنها به‌صورت جمع‌سپاری متن‌باز قابل انجام است. در این مدل شرکت تجاری برای هر قسمت از نرم‌افزار Todolistـی را تایین می‌کند و در ازای انجام هر بخش از آن به صورت PR مبلغی پرداخت می‌کند. در نتیجه، تضمین می‌شود که وقت کسی برای نوشتن کدی که ابراروان در نهایت آن‌ها تایید نمی‌کند، تلف نمی‌شود.

از توضیحات این طرح مشخص می‌شود که ابراروان به‌جای جمع‌سپاری، دنبال برون‌سپاری فریلنسری است. اگر روش اجرا به‌جای متن‌باز روی گیت‌هاب به‌صورت دریافت فایل زیپ بود هم بود چیزی درست نمی‌شد. در توضیحات این طرح گفته شده: «پروژه‌هایی که به‌دست ابر آروان می‌رسد،‌ مورد بررسی قرار خواهد گرفت و اولین کسی که پروژه‌‌اش پذیرفته شود، مبلغ را دریافت خواهد کرد.» در اینجا نیز ابراروان دارد از مفاهیم مسابقه و جایزه برای توسعه نرم‌افزار خود استفاده می‌کند. ممکن است یک نفر ۱ ماه وقت برای ساخت این نرم‌افزار تلف کند و در نهایت ابراروان آن‌را به راحتی رد کند. این تنها زمانی می‌تواند درست شود که ابراروان طی یک قرارداد رسمی با افراد متقاضی بپذیرد اگر به هر دلیلی یک نفر تنها قسمتی از پروژه را انجام داد، به همان نسبت از مبلغ پروژه به او داده شود.

@ebi@khiar.net