هر برنامهنویسی زمانی که تصمیم به انتشار نرمافزار جدید خود میگیرد، در مقابل یک انتخاب قرار میگیرد. این انتخاب، انتخاب مجوز نرمافزار است، و این که: برنامهی خود را بصورت آزاد منتشر کند یا نه؟ متاسفانه خیلی از برنامهنویسهای باهوش مطمئن نیستند که این انتخاب چه معنیای دارد، و ممکن است آن برنامهنویسها غرلند کنند که با وجود خانوادههایشان در واقع انتخابی در کار نیست، ــ اگر آنها میخواهند زندگی کنند باید هزینهی کارشان را نیز بگیرند. هرچند نرمافزار آزاد دربارهی این نیست که نرمافزار را بدون هیچ هزینهای واگذار کنید، بلکه نرمافزار آزاد یک انتخاب اخلاقی است که آزادی کاربران را تضمین میکند ــ و شاید مهمتر آزادی توسعهدهندگان و برنامهنویسها را، این بخش آخر اغلب فراموش میشود، حتی در بحث توسعهدهندگان نرمافزارهای آزاد، دربارهی مزایای نرمافزارهایی که تحت مجوزهای آزاد منتشر میگردند.
با این حال، توسعهدهندهای که یک مجوز آزاد را انتخاب میکند، لزوما از خودگذشتگی نمیکند، دلایل اقتصادی محکمی برای این کار وجود دارد. که در این مقاله آنها را بررسی میکنیم. ابتدا فواید اولیه و بلادرنگ منتشر کردن نرمافزار آزاد برای توسعهدهنده را بررسی میکنیم، سپس فواید بزرگتر این کار برای صنعت و جامعه را مطرح میکنیم.
فواید شخصی مجوزهای آزاد
اخیرا فرصت صحبت با دو توسعهدهندهی بازی را داشتم: دَنیِل هورن Daniel Horn و مایک بُو Mike Boeh . هورن بازی پرطرفدار خود که حاصل از بازسازی کشتی جنگی است ، VegaStrike را تحت GPL منتشر نموده است. در حالی که مایک با انتشار یک سری بازی Action انحصاری با کیفیت بالا به «جام مقدس» توسعهی بازی بصورت خودمختار و مستقل دست یافته و به قدر کافی پول برای تامین خانوادهاش بدست آورده است. هر دو توسعهدهنده مهارت بالایی در کارشان دارند. و هرچند برنامههایشان برای بازیکنندگان تجربیات متفاوتی را به ارمغان میآورد، اما بازیهایشان علاوه بر آراستگی، زیبایی و کیفیت بالا، حرفهای هستند. و به میزان خوبی جالبتر از بازی کردن یک بازی درجه یک گرانقیمت هستند.
استراتژی توسعهی این برنامهنویسان کاملا گویاست و همه چیز را آشکار میکند. هورن زمانی که با گنو/لینوکس، و راه منحصر به فردی که آن را بوجود آورده آشنا شد، یک شوک و الهام استثنایی را تجربه کرد. هورن، کسی که قصد داشت، VegaStrike را یک محصول انحصاری مثل دیگران بسازد، تصمیم گرفت مدل توسعهی نرمافزار آزاد را در آغوش کشد، هورن میگوید: «من پی بردم که این چیزیه که برنامه باید باشه، و این همون چیزیه که من رو از رقبا متفاوت خواهد کرد.»خیلی سریع، بعد از اعلان خبر بازیاش، ثابت شد که این تصمیم درست بودهاست. یک توسعهدهندهی دیگر که روی یک بازی همانند آن کار میکرد، وقتی این خبر را شنید، تصمیم گرفت برنامهی خود را کنار گذارد و زمان و انرژیاش را صرف همکاری با هورن و توسعهی VegaStrike کند.گرافیست، موسیقیدان و برنامهنویسهای دیگری هم همین راه را در پیش گرفتند و برای توسعهی این بازی به هورن پیوستند. و اکنون بخش عظیمی از توسعهی VegaStrike بر عهدهی توسعهدهندگان داوطلب است. و این به خاطر دسترسی کاربران به سورس کد برنامهی VegaStrike ، همان دستورات قابل فهم برای انسان که به کامپیوتر میگوید چه کاری باید انجام دهد، حاصل شد. اگر هورن فقط کدهای باینری ،دستورات قابل فهم برای ماشین (م: بستههای کامپایلشدهی برنامه و فایلهای اجرایی)، را منتشر میکرد، تشخیص نحوهی کار برنامه و در نتیجه نحوهی کمک به توسعهی برنامه برای کاربران غیرممکن بود. بنابراین با به اشتراک گذاردن سورس کد برنامه، هورن از هزاران کاربری که از به اشتراک گذاشتن منابع، وسایل و استعدادهایشان با یکدیگر خرسند هستند، کمک فراوانی دریافت کرد.
راه «مایک بُو» برای توسعهی نرمافزار به وضوح از راه هورن متفاوت است. عمدهترین آن این است که بازیهای بُو تنها در حالت دودویی (باینری/اجرایی/کامپایلشده) منتشر میگردند، بعلاوه اینکه بُو نمونههای قابل اجرا (demo) از بازیهایش ارائه میدهد و کاربران باید نسخهی کامل برنامه را خریداری نمایند، و حق به اشتراک گذاردن آنرا نیز ندارند. زمانی که بُو برای ابتکار بازیهایش و روانی آنها به خود میبالید، به من اجازه دسترسی به موتور بازیهایش یا بخش اصلی سورس کدش را داد، به یک توسعهدهندهی انحصاری دیگر! هرچند بُو تصمیم نگرفت که این کد را با دیگر توسعهدهندگان و برنامهنویسان به اشتراک گذارد. در عوض بُو با گرافیست و سازندهی موسیقی قرارداد بست، و به آنها پول هم پرداخت کرد، یا قول به اشتراک گذاری فواید کارش را داد.
براساس سیستم بُو برنامهنویسی کاری سخت و ملالآور است که کمتر کسی پیدا میشود که اینکار را مجانی انجام دهد. بُو میگوید: « مانع ساختن یک بازی، حجم بالای کار است. شما باید مقدار بسیار زیادی کد بنویسید. اگر یک زن و یک بچه داشته باشید، ادامهی کار سخت خواهد بود،». در حالی که طراحی و راهاندازی یک نمونهی اولیه، نسبتا ساده است، طی چند هفته/ماه بعدی، کار سخت، ملالآور و اغلب نا امیدکننده میگردد، زیرا بازی باید زیبا باشد، باگها و ایرادات باید یافته و برطرف گردند، روالهای کثیف باید پیدا شوند و تمیز و مرتب گردند. این کارها سخت و طاقت فرساست، انواع کارهای سخت و تکراری که برای مردم محسوس بوده و انتظار دارند برای انجامشان پول دریافت کنند. بُو اعتقاد دارد، ارزشی که به نرمافزارهایش میافزاید، حاصل از دقت و ظرافتش در کدنویسی و جلادادن به ظاهر بازیها است. صرف زمان کمی برای بررسی بازی Retro64 ، استعداد بالا و هنر او را نمایان مینماید.
بُو احساس میکند که دلایل خوبی برای انتشار بازیهایش تحت یک مجوز انحصاری و غیرآزاد دارد. بزرگترین ترس بُو این است که رقبای نامردش(!) از سورس کد او برای ساختن برنامههای جعلی یا ساختن بازیهایی که تنها در ظاهر با بازیهای او تفاوت دارند استفاده کنند. فردی بازی Z-Ball او را کپی کرد، و سعی داشت به مصرفکنندگان بقبولاند که این بازی ساختهی بُو است. چند نفر حتی سعی کردند وبسایت و شعار بُو «Where the fun is never old» را کپی کنند. در حالی که بُو برای بدستآوردن زندگیای که در آن بتواند اعمالی که دوست دارد را انجام دهد -نوشتن بازیهای بزرگ و خوب- تلاش میکند، او احساس میکند دلیل خوبی برای مخفی نگهداشتن سورس کدش و انجام بیشترین تلاش برای محافظت از خود در مقابل رقبا دارد.
بُو و هورن هر دو داد و ستد میکنند. هورن محرمانگی و یک سطح بخصوصی از امنیت را با امید به برخوردار شدن از حسننیت جامعه میدهد، هزاران توسعهدهنده برای کمک به هورن، در یافتن ایرادات و بهینهسازی و توسعهی کدش کمک میکنند. بُو در طرف دیگر، این کمک را قربانی پنهان نگهداشتن کدش میکند، و بدین گونه امیدوار است تهدید رقابت و رقبا را از میان بردارد. کدام معامله پرفایدهتر است؟
ادامهی مقاله:
ریسکهای ساختن یک نرمافزار انحصاری (قسمت دوم)
ریسکهای ساختن یک نرمافزار انحصاری (قسمت سوم)
——————————————————–
این مقاله ترجمهای آزاد از مقالهای با همین عنوان در مجلهی FreeSoftwareMagazine است.
نویسنده: Matt Barton
مترجمین: مهرداد مومنی و مجید رمضانپور
مجوز انتشار: Creative Commons License 3.0
——————————————————–
پ.ن. تاکیدها از ما
یادداشت مترجمین: مفهوم و معنای توسعهدهنده از برنامهنویس متفاوت است. یک برنامهنویس یک توسعهدهنده است، اما یک توسعهدهنده لزوما برنامهنویس نیست. گرافیست، مستندساز، و هر کسی که به توسعهی یک برنامه کمک میکند یک توسعهدهنده است. در این نوشته نیز سعی شده این دو مفهوم و منظور مجزا گردند.





5 جواب تا اینجا
freepen // آگوست 12, 2008 روی 11:16 ب.ظ |
ممنون خيلي جالب بود
من امروز داشتم فكر مي كردم آيا توسعه دهنده هم بايد برنامه نويس باشه و برنامه نويس هم بايد توسعه دهنده باشه؟
كه يادداشت مترجمين جواب اين سوال منو داد
خيلي ممنون
amin // آگوست 12, 2008 روی 11:45 ب.ظ |
عالی بود. دستت درد نکنه
ریسکهای ساختن یک نرمافزار انحصاری (قسمت دوم) « MGroup // سپتامبر 5, 2008 روی 11:10 ق.ظ |
[...] ریسکهای ساختن یک نرمافزار انحصاری (قسمت دوم) ادامهی مقاله از: ریسکهای ساختن یک نرمافزار انحصاری (قسمت اول) [...]
چرا باید نرم افزاری که با کلی زحمت نوشتم رو به صورت open source منتشر کنم؟ « MGroup // آوریل 7, 2009 روی 4:00 ب.ظ |
[...] اون مقاله ای که تو وبلاگ تون بود رو هم خوندم ( ریسکهای تولید نرم افزارهای اختصاصی) و توش به یه تناقض بر خودم : اون بابایی که بازی خودشو به [...]
خانواده گنو/لینوکس ایرانیان » Blog Archive » چرا باید نرم افزاری که با کلی زحمت نوشتم رو به صورت open source منتشر کنم؟ // آوریل 7, 2009 روی 4:12 ب.ظ |
[...] اون مقاله ای که تو وبلاگ تون بود رو هم خوندم ( ریسکهای تولید نرم افزارهای اختصاصی) و توش به یه تناقض بر خودم : اون بابایی که بازی خودشو به [...]