تصویر منوچهر صدری خانلو
چرا متن باز

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

به طور اجمالی می توان دلایل زیر را از نقاط قوت نرم افزارهای اوپن سورس دانست:

انعطاف پذیری: به عقیده من، این مهمترین و مهمترین دلیل انتخاب یک نرم افزار اوپن سورس باید باشد، چه برای سازمان ها و چه برای برنامه نویسان. برای مثال بادی پرس و دروپال و ده ها راهکار اوپن سورس دیگر، دست برنامه نویسان را در توسعه یا تغییر آنها باز می گذارد. در حالیکه در نقطه مقابل، برنامه نویسان در تعامل با نرم افزارهای تجاری معمولاً محدود به تغییرات سطحی هستند. برای سازمان ها نیز این مساله یک اولویت مهم به شمار می رود. فرض کنید شما قصد دارید برای شرکت کوچک خودتان که از قضا درآمد خوبی دارد، نرم افزاری داشته باشید که نظارت کاملی روی فروش، مشتریان و حساب ها داشته باشید. یک راه حل این است که نرم افزارهای موجود در بازار را خریداری کنید. اما اگر بیزنس شما با این همه تغییرات در قوانین و شرایط بازار، فرآیند خاص خودتان را داشته باشد، نرم افزارهای آماده چقدر پاسخگوی شما خواهند بود؟! در این حالت قطعاً بهترین راه، سفارشی کردن یک راهکار (solution) اوپن سورس است! اگر وضع مالی خیلی خوبی داشته باشید، حتی می توانید نرم افزاری برای خودتان از صفر بنویسید! در ادامه مثال واقعی تری از یاهو خواهم آورد (از اینجا) که مساله بیشتر روشن شود!
 
استیفن اوگریدی (تحلیلگر ردمانک) عقیده دارد که موتور پیش برنده نوآوری های موجود در نرم افزارها، نرم افزارهای اوپن سورس در حال تولید هستند. او علت این موضوع را ناشی از این میداند که محصولات متن باز در مواجهه با مشکلات واقعی بیزنس ها تولید شده اند، علی الخصوص آن دسته که به وب مربوطند! وی از این مثال استفاده می کند که وقتی موتور جستجوی یاهو با مشکلاتی در پردازش حجم بسیار زیادی از اطلاعات مواجه شد، در پاسخ به این مشکل فریم ورک متن باز هدوپ (Hadoop) را تولید کرد. در حالیکه از دیدگاه تجاری شاید شرکتی مثل اوراکل هرگز حاضر نمی شد، بدون هیچ مشوق خارجی دست به تولید چنین چیزی بزند! امروز کار به جایی رسیده است که SQL Server 2012 و Azure هر دو از Hadoop پشتیبانی می کنند (اینجا). لابد اوراکل هم از این راهکار پشتیبانی می کند (یا خواهد کرد).
 
هزینه: طبیعتاً وقتی از اوپن سورس صحبت می شود، اولین چیزی که به ذهن بسیاری از همکاران خطور می کند، هزینه کمتر است! خوب، در واقع همین طور است! اما به شرطی که هدف استفاده تمام و کمال از یک راهکار آماده باشد. در غیر اینصورت ممکن است هزینه های سفارشی کردن یک محصول اوپن سورس به مراتب بیشتر از خرید یک محصول تجاری آماده باشد. در اینجا خواندم که تنها 50 درصد از استفاده کنندگان از نرم افزارهای اوپن سورس موفق به دریافت محصول مورد نظر خود با هزینه ای کمتر از خرید یک محصول تجاری می شوند. اصلی ترین دلیل این مساله هزینه های سفارشی کردن محصول اوپن سورس و نگهداری و پشتیبانی آن است. اما قاعده ساده این است که اگر به سفارشی کردن نیازی نباشد، هزینه مالکیت یک محصول اوپن سورس بدون شک صفر است!
جی لیمن (در اینجا) اعتقاد دارد که مساله امروز این است که اوپن سورس دقیقاً چیست؟ امروز سرویس های کامپیوت کلاود الاستیک آمازون با کامپوننت های اوپن سورس نظیر MySQL, JBoss, Tomcat, Xen و Linux بالا آمده اند. اما واقعاً اینها همان اوپن سورس هستند؟! (البته الان قصد ندارم وارد این موضوع مورد بحث آقای جی لیمن شوم، اما شاید این پرسش بیشتر از ناشی از یک مدل کسب و کار باشد که شرکت های نرم افزاری امروز بر روی وب دارند. اینکه محصولات اوپن سورس بازوی بازاریابی آنها باشند و محصولات تجاری با قابلیت هایی افزون تر، بازوی اقتصادی - بد نیست نگاهی به اینجا بیندازید که در مورد بیزنس مدل های نرم افزارهای متن باز توضیح داده شده است).
 
جامعه توسعه دهندگان: این مساله از نظر من بسیار ارزشمند است و عامل موثری در قابلیت توسعه های بعدی و انعطاف پذیری نرم افزارهای متن باز است. جامعه توسعه دهندگان به شما کمک می کنند که با سرعت بیشتری به قابلیت های مورد نظر خود برسید. بسیاری از نیازهایی که شما امروز دارید ممکن است قبلاً توسط فرد دیگری در برزیل، آفریقای جنوبی، هند، ژاپن، آمریکا، فنلاند، پاکستان و ... پاسخ داده شده باشد. همچنین جامعه توسعه دهندگان کمک می کنند تا مشکلات نرم افزار با سرعت بسیار بیشتری (در مقایسه با نرم افزارهای معمول تجاری) شناسایی و حل شوند. از اینها که بگذریم، در واقع نیروی محرک و مشوق فرهنگ اوپن سورس (برخی می گویند ایدئولوژی) همین جامعه فعال توسعه دهندگان هستند که در یک بازی برد-برد سرویس دهنده و سرویس گیرنده به جامعه هستند. ویژگی مهم دیگر جامعه توسعه دهندگان، قابلیت های بی شماری است که به دلیل نیازهای واقعی (یا حتی غیر واقعی) به نرم افزار افزوده می شود. برای مثال تا سپتامبر 2012 قریب به 18200 افزونه رایگان (contrib modules) از طرف جامعه توسعه دهندگان دروپال در اختیار سایرین قرار داده شده است (تنها برای دروپال). فرض کنید اگر قرار بود مایکروسافت دروپال را تولید کند و 18200 افزونه برای آن ایجاد کند، چه میزان بودجه ای برای اینکار باید در نظر می گرفت؟ سوالم را بهتر بپرسم، چند میلیارد دلار؟ (توضیح اینکه مایکروسافت تنها برای یک نسخه از IE بیش از 100 میلیون دلار هزینه کرد). البته ناگفته نماند که سازمان پیشرویی (رهبر) چون مایکروسافت همواره الهام بخش و ایده دهنده به بخش زیادی از جامعه اوپن سورس بوده است. برای مثال (در اینجا) طی گزارش سالانه، مایکروسافت اعلام داشته "اینکه سایر شرکت های فعال در حوزه راهکارهای اوپن سورس ایده های ما تبدیل به نرم افزارهای اوپن سورس می کنند، فشار رقابتی زیادی را به مایکروسافت می کند که نتیجه آن کاهش حجم فروش، درآمد عملیاتی و حاشیه سود است."
 
باز بودن: بازبودن، شفافیت و تعامل با محیط بیرون در هر موضوعی در سازمان های امروزی، مزیت به شمار می رود (با ملاحظات فرهنگ سازمانی و موضوع فعالیت). نرم افزارهای اوپن سورس، همانطور که از نام آنها بر می آید، چیزی برای پنهان کردن ندارند! لذا علاوه بر اینکه محدودیت های شرکت فروشنده نرم افزار در نحوه بهره برداری و تعامل با سایرین به شما تحمیل نمی شود، امنیت شما نیز در مورد اینکه شرکت فروشنده نرم افزار دقیقاً در نرم افزار چکار می کند نیز تامین می شود. به اصطلاح، شما به یک جعبه سیاه مواجه نیستید که ندانید چه اتفاقاتی در کنار جریانات عادی نرم افزار در حال وقوع است (یا نیست). یکی از دلایل عمده استفاده برخی سازمان های امنیتی یا تجاری بزرگ از نرم افزارهای متن باز، این موضوع امنیت و تسلط بر تمام وجوه نرم افزار است (همانند بانک ها). یک ویژگی دیگر بازبودن این است که شما این نرم افزارها را روی هر سروری (اگر مشکل فنی نباشد) می توانید میزبانی کنید و فروشنده الزاماتی برای میزبانی وب و ... به شما تحمیل نخواهد کرد.
 
نگهداری آسان تر: خوب این از آن حرف هاست! مقصود من از نگهداری آسان تر در مورد نرم افزارهای اوپن سورسی است که جامعه توسعه دهندگان زیادی دارند. اینطور نرم افزارها، معمولاً دست شما را در نگهداری باز می گذارند. به عبارت دیگر متولی نرم افزار دیگر تنها یک شرکت تجاری نیست که اگر فردا روزی بسته شد یا ... شما را با مشکل مواجه کند. شما می توانید در صورت از دست دادن مسئول بخش نرم افزار خود، شخص دیگری را که با این راهکار آشنا باشد پیدا کنید! این مساله در ایران بسیار جدی است که هر شرکت کوچکی راهکار خود را می نویسد و طبیعتاً تنها خود این شرکت است که می تواند نرم افزار را نگهداری کند. این وسط مشتری می ماند و ناچاری به ادامه همکاری با همان شرکت، فارغ از اینکه به چه میزان سرویس دهی آن شرکت مناسب بوده است.

در کنار تمام آنچه در موردش صحبت کردم، باید قبول کرد که نرم افزارهای اوپن سورس به فراخور شرایطی که دارند با ضعف هایی نیز همراه هستند. برای مثال، میزان مسئولیت پذیری در قبال توسعه یا نگهداری یا پشتیبانی اینگونه نرم افزارها پایین تر از نرم افزارهای تجاری است، علی الخصوص اگر انتخاب درستی نکنید. به این معنا که پیشنهاد نمی کنم سراغ راهکارهای اوپن سورسی بروید که بقای آنها نامشخص است و جامعه کوچکی دارد، این راهکارها ممکن است دو سال بعد دیگر وجود خارجی نداشته باشند. همچنین معمولاً شرکت های کمی (در حدود 20 درصد) هستند که تمام زیرساخت نرم افزاری خود را بر مبنای نرم افزارهای اوپن سورس قرار دهند، لذا معمولاً بخشی از سرویس های خود رو روی این نرم افزارها می برند که این ممکن است ناهمگونی (و عدم یکپارچگی) در راهکارهای مورد استفاده پیش بیاورد. کیفیت نرم افزارهای اوپن سورس نیز بیش از آنکه مربوط به خود آنها باشد، مربوط به توسعه دهندگان خواهد بود. چرا که معمولاً نرم افزارهای اوپن سورس یک چارچوب اولیه در اختیار برنامه نویسان قرار می دهند و این برنامه نویسان هستند که باید به مسائل مختلف نرم افزاری برای مشتریان گوناگون فکر کنند. در واقع، در نهایت ممکن است یک برنامه نویس، مدیر پروژه یا کارشناس به این نتیجه برسد که اصلاً راه حل مورد نظر وی، نه نرم افزار اوپن سورس است و نه تجاری. باید راهکاری را از صفر نوشت!
 
توضیح: اوپن سورس و متن باز هر دو یک چیز هستند! من از هر دو واژه استفاده کردم (شاید کمی حواسم به SEO بود)! راهکار و Solution هم همین طور. ضمن اینکه من از کلمه نرم افزار به طور عمومی در این متن استفاده کرده ام که مقصود بیشتر راهکار بوده است!

طبقه بندی: 

دیدگاه‌ها

تصویر محمدعلی اکبری

محمدعلی اکبری

این نکته رو اضافه کنم که متن‌باز یک فرقه انحرافی از نرم‌افزار آزاد هست که در سال 1998 ایجاد شد! به عقیده من چیزی که باعث افزایش سهم بازار، جامعه توسعه دهندگان و کاهش هزینه نرم‌افزارهای متن باز بوده قبل از آن نرم‌افزار آزاد بودن آن و فلسفه پشت آن هست.

افزودن نظر جدید