MGroup

توسعه‌ی نرم‌افزار آزاد

Posted on: ژوئیه 17, 2008

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

اینجا منظور از توسعه یافتن یک نرم‌افزار، هم می‌تونه ایجاد یک پروژه باشه، هم توسعه و بزرگ‌تر کردن یک نرم‌افزار موجود

اگر کلی نگاه کنیم یک نرم‌افزار (آزاد یا انحصاری) زمانی توسعه پیدا می‌کنه که یک نیاز احساس بشه!

بحث رو به نرم‌افزارهای آزاد منحصر می‌کنیم!

چند مثال برای نیازهایی که باعث توسعه‌ی یک نرم‌افزار آزاد می‌شه:

  • ساده‌ترین و سریع‌ترین حالت نیاز یک برنامه‌نویس به یک نرم‌افزار خاص است. حالا یا برای عمل مورد نظر نرم‌افزاری(آزاد) وجود نداره، یا وجود داره ولی نیازهای مورد نظر توسعه‌دهنده(Developer) رو برآورده نمی‌کنه! و یا یک شرکت! به یک برنامه‌ی خاص نیاز داره و اونو به برنامه‌نویسهای خودش می‌ده تا آماده کنن! این حالت که کاملا مشخصه، یک برنامه نویس به یک ابزاری نیاز داره و اون رو ایجاد می‌کنه! بعد هم مرام می‌زاره و در اختیار دیگران هم قرار می‌ده!
  • نیاز بعدی، نیاز یک فرد غیربرنامه نویس، یک شرکت یا دولت به یک ابزار است، در این حالت، اون شرکت از یک یا چند برنامه‌نویس یا شرکت که می‌شناسه می‌خواد که برنامه‌ی مورد نظر رو ایجاد یا یک نرم‌افزار موجود رو بنا به نیاز توسعه بدن! و در مقابلش پولی دریافت کنن. مثل طرح نرم‌افزارهای آزاد/متن‌باز در بعضی کشورها
  • حالت دیگه‌ای که پیش میاد نیاز یک برنامه‌نویس به داشتن یک پروژه است! (تز دانشگاه، پروژه‌ی درسی برای درس خاصی مثلا کارآموزی) در این حالت هم بررسی می‌کنه ببینه آیا نیازی داره که هم برای پروژه‌ی مورد نظر خوب باشه، هم بتونه نیاز خودشو برآورده کنه، اگر نداشت با گشتن در اینترنت و بررسی پروژه‌هایی که دیگران خواستن، و حاضر نبودن براش پولی پرداخت کنن، یا پروژه‌هایی که بنیادهایی مثل GNU یا Mozilla یا BSD یا … پیشنهاد کردن به برنامه‌نویسها یه چیزیو انتخاب کرده و …
  • گاهی نیاز به پول هم در مورد یک نرم‌افزار آزاد صدق می‌کنه، مثلا یکی فکر می‌کنه اگر یه برنامه‌ی فلان بسازه می‌تونه توی یک بازار خاص اونو بفروشه! پس کار توسعه رو شروع می‌کنه.
  • یه وقت دیگه هم هست که یک برنامه‌نویس یا توسعه‌دهنده به یک برنامه نیاز داره، اونم زمانیه که بقول ما می‌خواد خودی نشون بده! این حالت مخصوصا برای دانشجو ها ملموسه. (البته می‌شد این حالت رو در قبلی ادغام کرد، ولی خواستم بیشتر روش تاکید کنم😉 )
  • گاهی چند تا از این نیازها با هم ادغام می‌شن! در واقع اینا خیلی در هم قاطی هستن و نمی‌شه دقیق برای یک پروژه گفت از کدوم نیاز شروع شده!

نیازها زیادن، حالات هم زیادن، اما هدف از این داستان این بود:

دیروز که داشتم دنبال یه Instant Messenger که Voice هم پشتیبانی کنه می‌گشتم، با دوستانی در یه انجمن(دقیق یادم نیست کجا!) مواجه شدم، و حرفاشون برام جالب بود:

خوب معروفترین برنامه‌ی IM توی لینوکس همون Gaim یا Pidgin است. (نسخه‌ی ویندوزی هم داره و پر کاربرد هم هست) خوب این برنامه نه از صدا(Voice) پشتیبانی می‌کنه نه از تصویر(WebCam) بحث در موردش زیاد بود، اما جوابی که تیم توسعه به ملت داده بودن اینطور بود:

We plan to implement these features eventually, but it is a daunting task. Not all of our developers care about these features, and because of that don’t want to work on them. The time available to those developers who do want to work on these features is limited, and so any work on these features proceeds slowly.

We aim to have an abstracted, protocol-agnostic API for voice and video, which makes the task harder. Also adding to the difficulty is that now that we have a completely split core (libpurple) and UI (Pidgin and Finch), we refuse to take a step backward and violate this split. The protocol plugins can NOT have any code in them that is UI-dependent, or we break the libpurple/UI split. This imposes additional restrictions that make it a very painstaking process to implement voice and video correctly.

In short, we have no idea when this will happen. It could be tomorrow, or it could be in 2099. That’s really the best answer we can give right now.

گفتن: این کار، ریسکش بالاس و سخت و خطرناکه! چون باید کدشون رو بهم بریزن، در واقع اینم برمی‌گرده به اینکه این افراد هیچوقت نیازی به صدا هنگام چت نداشتن، و فکر هم نمی‌کردن که زمانی برسه که نیاز بشه! نمونه‌ی این مسئله رو می‌تونین توی کانالهای IRC که سالهاس داره استفاده می‌شه دید! در واقع هکرها و توسعه‌دهنده‌ها برای نیازهای خودشون هیچ گاه به صحبت کردن علاقه‌ای نداشتن و به صرف تایپ کردن مشکل حل شده، پس چرا باید وقتشونو روی کاری که نه نیازی بهش دارن، نه علاقه‌ای تلف کنن؟

ملت، اونجا تاسف خورده بودن که چرا اینکار رو نمی‌کنن؟!؟ در حالی که تاسفی نداره، زندگی همینه!  هیچ گربه‌ای برا رضای خدا موش نمی‌گیره (یا برای سیر کردن شیکمش می‌گیره یا از اینکار لذت می‌بره)

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

پس بیایید انتظار زیادی نداشته باشیم، به هر حال اون توسعه‌دهنده‌ها هم آدمن کارهای زیادی دارن، گاهی دیدم که افرادی اینجا پیدا می‌شن و می‌گن مثلا فلان کار که کاری نداره! فقط می‌خواد فلانش کنن!

بعد که می‌پرسی شما برنامه‌نویسی؟

می‌گه: نه.

– خوب پس از کجا می‌دونی کار به همون سادگی که فکر می‌کنیه؟!

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

یه پیشنهاد به جامعه‌ی کاربران Pidgin یا Kopet که نیاز به صدا و تصویر دارن به کلم زد:

یه صندوقی باز کنن، هر کس یه پولی کمک کنه، یه پول خوبی که شد، به تیم توسعه، یا یه نفر دیگه بدن تا این نیاز رو برآورده کنه!

.

چند تا توصیه به کاربران نرم‌افزارهای آزاد/متن‌باز:

اگر ایده‌ای دارین، شروع کنین، اگر کارتون خوب باشه و هدفتون خوب، دیگرانی پیدا می‌شن که کمک کنن، ولی احتمالش کمه! پس زیاد روش حساب نکنین! اینکه جایی اعلام کنی که من می‌خوام فلان چیزو بسازم، کی پایه‌اس؟ خوب معلومه که هیچکی! هر کسی گرفتاری خودشو داره. اول باید شروع کنی، بعد دیگران میان!

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

——————————————————————

پ.ن. ۱: دوستانی خرده می‌گیرن، که این چه وضعیه، این طوری که تو می‌گی مردم رو از لینوکس و نرم‌افزارهای آزاد زده می‌کنی!

خوب به نظر من بهتره که از همون اول آدم این حقایق رو بدونه. تا اینکه بعدا دچار سرخوردگی بشه که چرا فلانی فلان کار رو نمی‌کنه برا ما؟!؟!

و البته که توسعه‌دهنده‌ها بدشون نمیاد برنامه‌شون بهتر بشه، ولی باید دید به چه قیمتی! و اینکه آیا اون کار به هزینه‌اش می‌صرفه یا نه؟

پ.ن. ۲: بیشتر مطالب پست، توهمات من بودن، و ممکنه اشتباه باشن!

7 پاسخ to "توسعه‌ی نرم‌افزار آزاد"

این همه رو تایپ کردی؟!!! یا گفتی یکی برات تایپ کرده!
اگه مورد دومش برام پیدا بشه. اون موقع فکر کنم دیگه حرف هم نمیتونم بزنم!

—————————————-
مهرداد:
هان؟!؟!؟!؟!
کی مرده؟
دادم یکی برام تایپ کرده(ما به همه همینو گفتیم، سه شو بگیر)! شما به دل نگیر😉

سلام.
خسته نباشید . من یک وب سایت با عنوان آموزش برنامه نویسی ساختم که به زودی آغاز به کار می کند . اگر مایل به تبادل لینک هستید لینک من را با نام وب سایت آموزش برنامه نویسی لینک کنید و به وب سایت من بروید و لینک خود را در قسمت پیوندها اضافه کنید.
با تشکر

——————————————-
مهرداد:
متاسفانه ما آدمای رادیکالی هستیم، مخصوصا در زمینه‌ی لینک دادن تو وبلاگ!
و دیگه اینکه از این سیستمهای تبادل لینک هم بدمون میاد، هرکی دوست داره لینک بده، ما هم به هر کی دوست داریم لینک می‌دیم، هیچ توقعی هم نداریم.

مي گم مهراد , مجيد رو كشتي !؟ چرا ديگه اون هيچي پست نمي كنه ؟ از وقتي وبلاگت رفته تو planet اكتيو شدي d: هي تاپيك مي زني . اگه مي دونستيم اينجوري مي شه زودتر درخواست مي داديم بفرستنت تو planet .
در مورد برنامه نويسي تو لينوكس هم بايد بگم اول آدم بايد بره تو ويندوز خوب يه زبوني مثل c# يا جاوا رو ياد بگيره بعد يك كار پيدا كنه اخر سر كه پول دراورد بره دنبال عشقش و برنامه نويسي در لينوكس ( دوران پيري !! ) .

———————————————
مهرداد:
مجید رفته سفر! امروز و فردا میاد!
😀 نبابا ما که همیشه اکتیو بودیم، به این دو سه ماه گذشته نگاه نکن! قبلترا رو ببین😉
در مورد برنامه‌نویسی هم به اون وحشتناکی که گفتی نیست، شایدم من تصمیم دارم اول پیر شم! بعد زندگی کنم!😉

مهرداد حس می کنم تو خیلی از موارد مسائل شخصی و غیر حرفه ای رو مطرح کردی..
مسائلی که بهتره بهت بگم مهندسی نبودند…

گاهی اوقات مسائلی خیلی خیلی مهمتر واسه شروع یک پروژه ی نرم افزاری و یا توسعش وجود داره.

—————————————————
مهرداد:
خوب، پر بیراه هم نفرمودی! منم ادعا نکردم مطالب حرفه‌ای یا مهندسیه! گفتم که توهمات خودمه!

ما که هنوز نه مهندسی‌مون کامل شده، نه حرفه‌ای هستیم، سجاد جان!

ممنون می‌شم موردهای دیگه‌ای که سراغ داری رو هم بگی!

» «خوب بهشون بگو نیان طرف لینوکس» اصلا می‌خوان بیان چیکار؟ » بسيار جمله ي زيبايي رو گفتي !!! ملت مي خوان بيان لينوكس كار كنن كه چي بشه ، بزار يكمي(چند صد دلار) پول خرج كنن و با ويندوز حال كنن …

يك ديوانه –» گنو/ هرد(ي) يا گنو/لينوكس(ي) !!!!!!!!

مورد 4و 5 خیلی به من میخوره . ولی من پروژه رو سورس باز توزیع نکردم . در کل یه رابط با JDK درست مدم که ملت سریع تر کار با جاوا رو یاد بگیرن .به هر صورت خوشحالم که با وبلاگ شما آشنا شدم ، لیست می کنم ، انشالله بیشتر با هم ارتباط برقرار کنیم .🙂

———————————————
مهرداد:
خوب شما هم ایشالا سورس برنامه رو باز می‌کنی!😉
اولین فایده‌اش می‌تونه پیشرفت بهتره برنامه‌ات باشه! شاید باور نکنی، ولی من تجربه کردم این رو.

یک ساعت نشستم خوندمش(الان خیلی هم خوابم میاد) اخز می بینم اصلا فایده نداشت
اخه تو که زحمت تایپ رو می کشی چرت و پرت چرا می نویسی
———————————-
مهرداد:😀 خوب دیگه زندگی همینه، گاهی خوبه گاهی چرنده

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s


توجه: برای رفع مشکلات لینوکسی خود به یکی از انجمنهای اینترنتی مراجعه کنید! اینجا به هیچ وجه برای رفع مشکلات لینوکسی شما مناسب نیست!
تبادل لینک نداریم! لطفا سوال نفرمایید ما به هرکس بخوایم لینک می‌دیم، هرکس هم خواست به اینجا لینک بده! :)

Kategories

بایگانی

وضعیت بلاگ

  • 110,042 بازدید

مجوز انتشار:

تمامی مطالب و مقالات این بلاگ تحت مجوز GNU FDL قرار دارند. بنابراین کپی و ایجاد تغییر در آنها مطابق شرایط این مجوز آزاد می‌باشد.
%d وب‌نوشت‌نویس این را دوست دارند: