کتاب آموزش برنامه نویسی Ext JS
برای اولین بار در ایران
Ext JS
در مورد Ext JS بیشتر بدانید
خرید کتاب
نرم افزار متن باز (Open Source) چیست؟ بررسی ویژگی ها و نقاط ضعف و قوت
۳۱ فروردین ۱۳۹۷
300 بازدید

واژه متن باز (به انگلیسی Open Source که اُپِن سورس تلفظ میشود) را شاید زیاد در این حوزه شنیده باشید. مخصوصا با ورود و نفوذ گوشی های اندرویدی به بازار ایران. زیرا اندروید هم از دسته سیستم عامل های متن باز به حساب می آید. اما نرم افزار اپن سورس چیست؟ چه فرقی با بقیه نرم افزار ها دارد؟ مزایا و معایب آن کدام ها هستند؟

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

نرم افزار متن باز چیست؟
بهترین تعریفی که میتوان برای آن ارائه داد این است: نرم افزاری که مشتری هم میتواند سازنده آن باشد. یعنی این نرم افزار ها به شما اجازه میدهند که هر تغییری که دوست داشتید را در آن ایجاد کنید. زیرا در کنار فایل اصلی برنامه که دانلود میکنید، میتوانید کدهای اصلی آن را هم از شرکت سازنده دریافت کنید. اگر دانش کافی در زمینه برنامه نویسی داشته باشید، قادر هستید هر بخشی را ویرایش کرده و یک ورژن اختصاصی از نرم افزار برای خودتان بسازید.

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

Open Source بودن را میتوان یک روش برای ساخت اپلیکیشن ها در نظر گرفت. زیرا همانطور که در ادامه توضیح میدهم، برنامه هایی که با این روش تولید میشوند، آینده ی متفاوتی دارند.

 

نقاط قوت

نقاط قوت برنامه های متن باز
این روش هم مانند همه ی راه های دیگر، دارای خوبی ها و کمبود هایی است. برای آشنایی بهتر با برنامه های Open Source باید با نقاط قوت و ضعف آنها هم آشنا باشید.

رایگان بودن

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

خلاقیت جمعی

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

در این فرآیند ممکن است بخش های خلاقانه ای به نرم افزار اصلی افزوده شود که تیم سازنده آن اصلا در مورد آن حتی فکر هم نکرده بودند.

افزونه (پلاگین) های بیشتر و بهتر

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

به عنوان مثال ممکن است مرورگر اینترنت شما، توانایی استفاده مستقیم از مدیریت دانلود جداگانه ای که خودتان نصب کرده اید را نداشته باشد. این مشکل با اضافه کردن یک افزونه به مرورگر حل میشود. (مثلا برای IDM، باید افزونه IDM Integration Module را روی مرورگر نصب کنید).

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

رفع بهتر باگ ها

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

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

 

نقاط ضعف

نقاط ضعف برنامه های متن باز
بعد از اینکه نکات مثبت را درباره این روش بررسی کردیم، باید از ضعف هایی که در این نوع از اپلیکیشن ها مشاهده میشود نیز بشناسیم.

نبود پشتیبانی فنی

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

امکان سو استفاده و کاهش امنیت

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

 

معرفی متن باز های معروف

متن باز های معروف

لینوکس

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

اندروید

یک سیستم عامل مخصوص گوشی های موبایل، که بر پایه لینوکس ساخته شده است. اندروید توسط شرکت گوگل، غول اینترنتی، تولید و ارائه شده. در حال حاضر (سال ۲۰۱۸) محبوب ترین سیستم عامل موبایل های جهان به حساب می آید.

تلگرام

یک نرم افزار پیام رسان محبوب در ایران. دارای ۴۰ میلیون کاربر ایرانی، که اخیرا نسخه ی جدید آن با نام “تلگرام ایکس” هم روانه بازار شده است. تلگرام هم از ویژگی متن باز بهره میبرد. معروفترین کلاینت آن در ایران، موبوگرام است.

وردپرس

وردپرس قدرتمند ترین سیستم مدیریت محتوا در جهان است. از این سیستم برای مدیریت وبلاگ ها و وبسایت های اینترنتی استفاده میشود. همچنین دارای افزونه های قدرتمند و زیادی است که میتوانید از سرور های WordPress آنها را دریافت کنید.

 

متن باز در ایران

نرم افزار های متن باز در ایران هم پایگاه دارند. مرکز ملی توسعه و بکارگیری نرم‌افزارهای بومی و آزاد (متن باز) ایران، به نام متنام، روز چهارشنبه مورخ ۲۲ خرداد ۱۳۹۲ در ساختمان دوم سازمان فناوری اطلاعات ایران افتتاح شد و شروع به کار کرد.
برای معرفی و آشنایی با این مرکز ملی، به وبسایت آنها به نشانی matnam.ir مراجعه کردم. اما متاسفانه با یک وبسایت بسیار ضعیف و ابتدایی روبرو شدم. صفحه های تماس با ما و درباره ما کلا خراب بودند. در سایت متنام هیچ آگهی خاصی مبنی بر به روز رسانی یا وجود مشکل و عذر خواهی وجود نداشت. این در حالی است که ایجاد یک وبسایت با نرم افزار ها و زبان های متن باز رابطه بسیار تنگاتنگی دارد. جای تاسف است که مرکز ملی توسعه نرم افزار های متن باز در ایران، نتواند از همین نرم افزار ها که حیطه تخصصی اش میباشد، برای ساخت سایت خود استفاده کند. امیدواریم این مشکلات به زودی حل شوند.

 

مشخصات (از ویکی پدیا)

مشخصات متن باز ویکی پدیا
طبق گفته ی وبسایت ویکی پدیا، نرم افزار هایی که بصورت متن باز ارائه میشوند باید دارای یک سری ویژگی ها باشند. اکثر آنها را به زبان ساده تر در مقاله توضیح دادم اما اصل آنها را هم بدون تغییر برای شما قرار میدهم:

نرم‌افزارهای متن‌باز باید دارای ۱۰ تعریف زیر باشند:

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

۲. کد منبع

کد نرم‌افزار باید شامل نرم‌افزار باشد و اجازه توزیع کد نرم‌افزار داده بشود (برای مثال از یک صفحه وب قابل دانلود باشد).

۳. کار مشتق شده
اعمال تغییرات و کارهای بعدی روی نرم‌افزار امکان‌پذیر باشد و این نرم‌افزار جدید را بتوان تحت همان شرایط نرم‌افزار اولیه و اصلی تکثیر کرد.

۴. نگهداری تمامیت کد منبع نویسنده اصلی نرم‌افزار
مجوز نرم‌افزار ممکن است اجازه تغییر در اصل متن برنامه را به کاربران ندهد و تنها اجازهٔ افزودن وصله‌های نرم‌افزاری و کامپایل مجدد برنامه را بدهد. در این شرایط توسعه دهندگان تنها می‌توانند توزیع‌هایی به کمک وصله‌های نرم‌افزاری خود ایجاد نمایند. مجوز نرم‌افزاری می‌باید صراحتاً ایجاد توزیع تازه با تغییر مجدد در کد اصلی را محدود نماید. نرم‌افزار توزیع شده تحت این مجوز می‌باید حتمن نام نسخه‌ای تازه را داشته باشد.

۵. بین افراد و گروه‌ها تبعیضی گذاشته نشود
اجازه‌نامه نباید بین افراد یا گروه‌ها تبعیضی بگذارد.

۶. هیچ تبعیضی در نوع استفاده از نرم‌افزار وجود نداشته باشد
هیچ گونه تبعیض و تمایزی بین هر فعالیتی که در راستای نرم‌افزار انجام می‌گیرد، وجود نداشته باشد. برای مثال نرم‌افزاری نباید بین استفادهٔ تجاری یا تحقیقاتی تبعیض قائل شود.

۷. توزیع اجازه‌نامه
مجوز باید به هرکسی که یک کپی از نرم‌افزار را دریافت می‌کند نیز اختصاص یابد، بدون این‌که آن‌ها نیاز به توافق و هماهنگی با اجازه‌نامهٔ دیگری داشته باشند.

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

۹. اجازه‌نامه نباید نرم‌افزارهای دیگر را محدود کند
شرایط تعریف شده در مجوز نباید توزیع نرم‌افزار را درکنار نرم‌افزارها با مجوزهای دیگر محدود کند. برای نمونه نمی‌تواند تعیین کند که تمامی نرم‌افزارهای ارائه شده در لوح فشرده ارائه شده باید متن باز باشند.

۱۰. اجازه‌نامه باید از نظر تکنولوژی بی‌طرف باشد
اجازه‌نامه نباید مختص یک تکنولوژی خاص باشد.

 

نظر شما چیست؟

نظر شما درباره متن باز
لطفا نظر و عقیده خود را درباره نرم افزار های متن باز و مخصوصا آینده ی آنها در ایران، با ما در میان بگذارید.




نظراتتان را با ما در میان بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *