بهنام بهجت مرندی
behnam@tehranavenue.com

قسمت اول
قسمت دوم
قسمت سوم

تا اینجا تمرکز این مقالات بیشتر برروی تاریخچه نرم‌افزار آزاد، تفاوت آن با نرم‌افزار انحصاری، و رابطه‌اش با حقوق کاربر نرم‌افزار بوده است. شايد بتوان گفت غير از چند لينک، اين مقالات ربط آنچنانی با موضوع اينترنت نداشته است، در حالی که در ستونی به اين نام قرار گرفته. اما واقعيت آن است که نرم‌افزار آزاد بدون اينترنت بسيار کند تکامل می‌يافت. به عناون مثال استالمن ويرايشگر Emacs را روی نوار مغناطيسی منتشر کرد. تصور اينکه تکثير، توزيع و بازخورد توزيع با چنين روشی چقدر زمان‌بر بوده، برای نسل ما که اگر پاسخ ايميلش در عرض ۷۲ ساعت داده نشود آن را فراموش شده درنظر می‌گيرد عذاب آور می‌نمايد.

فکر می‌کنيد اگر توروالدز پيام مربوط به لينوکس را به‌جای گروه خبری MINIX در يک مجله انفورماتيک چاپ می‌کرد امروز اصلا لينوکسی بود؟ کاربران آن شبکه چطور می‌توانستند از نظرات هم آگاه شده يا کدهای نوشته شده توسط توروالدز را دريافت کنند يا بخشهای اصلاح شده توسط ديگران را بين يکديگر دست به دست بگردانند و درباره‌اش بحث کنند؟ با استفاده از DHL يا چيزی شبيه به آن می‌توانستند؟ شايد، اما اين پروسه چقدر طول می‌کشيد؟

ارتباطات گسترده شبکه يا همان اينترنت به زبان ساده، نقطه جهش نرم‌افزار آزاد بود. نقطه جهشی که نه تنها امکان رد و بدل کردن اطلاعات گوناگون را برای هر کسی از هر کجا که به آن متصل شود فراهم کرد، بلکه سرعت انتقال اطلاعات را به‌شکل اعجاب‌آوری بالا برد. بنابراين اگر امروز شما با يک نرم‌افزار مشکل داشته باشيد يا در پی يافتن اطلاعاتی درباره آن باشيد احتمالاً تنها سه قدم با دسترسی به اين اطلاعات فاصله داريد؛ به اينترنت وصل شويد - به شرط وجود تمام امکانات: سيستم کامپيوتری، خط ارتباط با اينترنت(خط تلفن، ارتباط کابلی، ارتباط ماهواره‌ای، شايد پريز برق و...) - ، يک صفحه مرورگر با آدرس يک search engine باز کنيد، و در نهايت نام نرم‌افزار يا مشکلتان با آن را به جستجوگر بسپاريد. اينکه اطلاعات بدست آمده در اين مورد چقدر دقيق يا کارا باشند، بيش از هر چيز به مهارت شما در جستجوی شبکه بستگی دارد. در اين ميان تفاوت نرم‌افزارهای انحصاری و آزاد در اين است که اگر ايراد کار در نرم‌افزار انحصاری باشد تنها بايد چشم‌انتظار کمک شرکت توزيع کننده آن باشيد، ولی اگر با يک نرم‌افزار آزاد چنين مشکلی داشته باشيد، دهها و شايد صدها برنامه‌نويس و کاربر سرشان برای حل مشکل درد می‌کند. جدای اينکه اگر از خودتان کاری بربيايد می‌توانيد آستين‌ها را بالا بزنيد و دست بکار شويد.

يک مثال شايد تأثير اينترنت در سرعت گسترش و توسعه نرم‌افزارهای آزاد را بهتر روشن کند. در حال حاضر آخرين نسخه سيستم‌عامل خانگی يا ويژه کاربر شرکت مايکروسافت Windows XP است و براساس اخبار منتشر شده توسط خود مايکروسافت، نسخه بعدی که با نام Longhorn شناخته می‌شود زودتر از سه سال ديگر آماده نخواهد شد. تصور کنيد با اين سرعت توسعه سيستم‌عاملهای لينوکس و با اضافه کردن سيستم‌عاملهای ديگری چون BSDها و GNU که احتمالاً تا آن زمان کرنل آن آماده شده و شايد توزيع هم شده باشد، مايکروسافت با چه بازار دشواری روبرو خواهد شد.

به اين ترتيب Longhorn بايد واقعاً يک معجزه باشد تا بتواند سهم مايکروسافت را از بازار سيستم‌عاملهای خانگی حفظ کند. تازه اين به شرطی است که يا مايکروسافت از افزودن تکنولوژیها و امکانات جديدی که در اين سه سال توسعه خواهند يافت – که چندان دور از ذهن هم نيست – چشم‌پوشی کند، يا اينکه خود از قبل نظيری برای اين تکنولوژيها پيش‌بينی کرده باشد که فرض محتملی به‌نظر نمی‌رسد. در غير اين صورت مايکروسافت بايد باز هم زمان انتشار Longhorn را عقب بيندازد تا سيستم‌عامل خود را با آخرين تحولات روز هماهنگ کند. اين مثال نشان می‌دهد که ارتباطات شبکه با تقويت روابط توسعه‌دهندگان Bazaar، تا چه ميزان توسعه‌دهنگان Cathedral را تحت فشار قرار داده است. توضيح اينکه در روش Bazaar توسعه‌دهنگان شامل صدها برنامه‌نويس و کاربر‌اند که با بازتاب نظراتشان درباره نسخه توزيع شده نرم‌افزار، باعث توسعه تکامل‌گونه آن می‌شوند ولی در مدل Cathedral تيم کوچکی از برنامه‌نويسان به توسعه نرم‌افزار می‌پردازند.

تمام توليدکنندگان نرم افزارهای انحصاری – بدليل عدم امکان انتشار سورس کد نرم‌افزارهايشان – و حتی بعضی از پروژه‌های نرم‌افزار آزاد از روش دوم استفاده می‌کنند و اين موضوع يکی از دلايل اصلی کندی توسعه چنين نرم‌افزارهايی است. به عنوان مثال GNU به روش Cathedral توسعه يافته و به همين دليل اين پروژه بعد از حدود بيست سال هنوز به هدف نهايی خود نرسيده است. لينوکس پروژه‌ای بود که ثابت کرد روش Bazaar با استفاده از امکاناتی که شبکه اينترنت فراهم کرده، روش مناسبی برای توسعه نرم‌افزارهای آزاد و بازمتن است.

در انتها توضيح بيشتر درباره عبارت Open Source يا بازمتن ضروری به‌نظر می‌رسد. در سال ۱۹۹۷ گروهی از توسعه‌دهندگان نرم‌افزارهای آزاد به اين نتيجه رسيده بودند که نام نرم‌افزار آزاد مانع تحرک اين جنبش نرم‌افزاری شده و امکان معرفی درست جنبش را نمی‌دهد. بنابراين در پی نام ديگری برای نرم‌افزارهايی بودند که خارج از جريان نرم‌افزارهای تجاری توسعه پيدا می‌کردند. جلسات اين گروه به انتخاب نام Open Source انجاميد که به‌نظر می‌رسد عبارت بازمتن معادل مناسبی برای آن باشد. به‌غير از تغيير نام، اين گروه که فعاليتهای خود را در سايت opensource.org منعکس می‌کنند، مجوزهايی نيز برای نرم‌افزارهای بازمتن تعريف کرده‌اند که بطور کلی در جهت حفظ حقوق کاربران‌اند.

ضميمه اول: پاسخ به چند سؤال

يکی از دوستان در نظرخواهی قسمت اول اين مقالات دو سؤال درباره Open Source مطرح کرده بودند که با پاسخ، به انتهای مقاله ضميمه می‌شوند:

سؤال۱ : با Open Source چطوری میشه تجارت نرم افزار کرد ؟!

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

سؤال۲ : پروژه های Open Source تا كجا ميتونن جلو برن ؟!

پاسخ سؤال۲ : اين بستگی به چند عامل دارد؛

۱. ميزان استقبال برنامه‌نويسان و کاربران از آن نرم‌افزار يا پروه خاص چقدر است؟

۲. توسعه‌دهندگان اصلی چقدر و به چه شکل از آن نرم‌افزار يا پروژه خاص پشتيبانی می‌کنند؟

۳. نرم‌افزارها يا پروژه‌های ديگری که در آن زمينه يا با آن هدف فعاليّت می کنند چه وضعی دارند؟ به عبارت ديگر آيا آن نرم‌افزار يا پروژه خاص رقيبی هم دارد با نه؟

۴. و ساير عوامل مؤثر.

در انتها معرفی چند پروژه مهم از پروژه‌های نرم‌افزار آزاد:

Hurd: جايگزين هسته يونيکس برای GNU

Perl: زبان برنامه‌نويسی پايدار و Cross Platform

X Window: يک windowing and graphics system معروف

X Free 86: يک windowing and graphics system ديگر

Gnome: GUI يا رابط گرافيکی کاربر

KDE: GUIيا رابط گرافيکی کاربر

Mozilla: مرورگر وب

Konqueror: مرورگر وب

Open Office: بسته نرم‌افزارهای اداری(Office)

Apache: وب سرور

PHP: زبان برنامه‌نويسی برای وب

MySQL: سرور بانک اطلاعات