PDA

View Full Version : طراحی یک نرم افزار اوپن سورس



Sina.iRoid
پنج شنبه 24 مهر 1393, 20:28 عصر
سلام. ممنون میشم اگر راهنماییم کنید.
سوالم در مورد نرم افزار های اوپن سورس هستش. می دونم که این نرم افزار ها رایگان هستن. اما می خواستم بدونم که برنامه نویسی یه برنامه اوپن سورس با برنامه های دیگه فرق داره!؟؟؟ یعنی اینکه میگن سورس برنامه در اختیار بقیه قرار میگیره، منظورشون اینه که از طریق برنامه به سورسش دسترسی پیدا می کنن و یا اینکه برنامه طوری نوشته میشه که به سورسش میشه دسترسی پیدا کرد.
ممنون اگر راهنمایی کنید.

محمد فدوی
پنج شنبه 24 مهر 1393, 21:58 عصر
در طراحی میتونه تفاوتی نداشته باشه. به جز اینکه دیگه توی یه برنامه متن باز نگران کپی برداری غیرقانونی و کرک و این حرفا نیستی...
بعد از پایان پروژه میتونی برنامه‌ت رو از طریق پایگاه‌هایی مثل github و sourceforge منتشر کنی. برای انتشار سورس برنامه هم یه فایل فشرده منتشر میکنن که توش سورس برنامه‌ست. توی نام فایل مربوط به سورس‌ها هم معمولا از کلمه‌ی src استفاده میشه. برای انتشارت هم می‌تونی از لایسنس GPL (http://www.gnu.org/copyleft/gpl.html) استفاده کنی.
برنامه خیلی وقتا توی فایل فشرده‌ای که برای دانلود داره علاوه بر فایل‌های اجرایی یه فایل سند (با فرمت رایجی مثل txt یا مشابهش) به نام Documention (یا doc) داره که در مورد برنامه توضیح میده و شایدم در مورد چگونگی نصبش توضیح میده.

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

البته یه پروژه‌ی متن‌باز همیشه یه پروژه‌ی خدا پسندانه نیست! اولین کاربردش خیلی وقتا جا باز کردن توی بازار کاره. خیلی وقتا هم برنامه‌ی متن‌باز طوری تولید میشه که یکم استفاده ازش سخت باشه. حالا اون فرد تولیدکننده دوره‌های آموزش میذاره و از برنامه‌ش پول درمیاره. مثال خیلی بارزش GNU/Linuxها هستن که همگی مجانین، اما از دوره‌‌های آموزشی و قرارداد‌هایی که با نهادهایی مثل مدارس و وزراتخونه‌ها می‌بندن پولای درشتی در میارن.

این مطلبم (http://opensource.com/resources/what-open-source) بخون در مورد متن‌باز.

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

موفق باشی.

arefane
جمعه 25 مهر 1393, 13:55 عصر
با سلام خدمت دوستان و اساتید گرامی

چند نکته هست که لازم میدونم خدمتتون عرض کنم.

اول اینکه مفهوم نرم افزار آزاد با نرم افزار متن باز متفاوت هست. به این صورت که هر نرم افزار آزاد، متن باز هم هست ولی همه نرم افزارهای متن باز، الزاماً نرم افزار آزاد تلقی نمیشن.
وقتی شما نرم افزاری رو به صورت آزاد منتشر میکنید، باید 4 نوع آزادی برای این نرم افزار قائل بشید :

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



می دونم که این نرم افزار ها رایگان هستن

نرم افزار اوپن سورس لزوماً رایگان نیست.
همونطور که می‌بینید هیچ کدوم از شروط بالا، الزامی برای انتشار رایگان ندارن و شما میتونید نرم افزار آزاد و در عین حال تجاری داشته باشید. ضمناً همه توزیع های گنو/لینوکس رایگان نیستند ( مثل توزیع ردهت که تجاری عرضه میشه)



برنامه نویسی یه برنامه اوپن سورس با برنامه های دیگه فرق داره!؟؟؟

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

برنامه هایی که به صورت آزاد توسعه داده میشن، میتونن تحت مجوزهای مختلفی انتشار پیدا کنن ( مثل GPL که دوستمون اشاره کردن و ... )

برای آشنایی بیشتر با فلسفه نرم افزار آزاد و همچنین آشنایی با انواع مجوزهای نرم افزار آزاد به اینجا (https://www.gnu.org/philosophy/free-sw.fa.html) و اینجا (http://fa.wikipedia.org/wiki/%D9%86%D8%B1%D9%85%E2%80%8C%D8%A7%D9%81%D8%B2%D8%A 7%D8%B1_%D8%A2%D8%B2%D8%A7%D8%AF) مراجعه کنید.

موفق باشید

محمد فدوی
جمعه 25 مهر 1393, 14:59 عصر
ضمناً همه توزیع های گنو/لینوکس رایگان نیستند ( مثل توزیع ردهت که تجاری عرضه میشه)
البته اینجا بحث لینوکس نیست و منم شاید کار درستی نکردم اسم لینوکس رو بردم!
RedHat توزیع‌های زیادی منتشر کرده و خیلیاشونم مجانی\آزاد هستن. منظور شما به نظر RHEL بود که بصورت تجاری عرضه شده.
GNU یه پروژه‌ی سیستم‌عامل آزاد بوده که توسط ریچارد استالمن بزرگ ایجاد شده. البته تا امروز این پروژه Stable نشده و به جاش ترکیب این هسته و هسته‌ی لینوکس یعنی هسته‌ی GNU/Linux خیلی خوب داره می‌تازونه! یه نگاهی به تعریف GNU توی ویکی (http://en.wikipedia.org/wiki/GNU) بندازیم:



GNU /ɡnuː/ is a Unix-like computer operating system
developed by the GNU Project. It is composed wholly of free software.



هر سیستم‌عامل/نرم‌افزاری که توسط GNU یا لایسنس‌هایی مثل GPL عرضه بشه باید مجانی و آزاد باشه.
هسته‌ی توزیع‌های تجاری‌ای مثل RHEL هم GNU/Linux هستش ولی این سیستم‌عاملا بطور کامل زیر پوشش GNU عرضه نمیشن. یعنی بعضی از نرم‌افزاراش آزاد نیستن و یه جورایی این سیستم‌عاملا رو دورگه یا چندرگه میگن! اگه صفحه‌ی مربوط به RedHat در ویکی رو هم بخونید لایسنسش رو Various معرفی کرده و فقط برپایه‌ي GNU/Linux ساخته شده و نه در امتداد اون... اینجا (http://en.wikipedia.org/wiki/Red_Hat_Linux) در حالیکه مثلا Debian بطور عمده تحت مجوز GPL منتشر شده. حتی Fedora که یکی از فرزندان ردهته بصورت آزاد منتشر شده.

اگه یه نگاهی به لیست توزیع‌های GNU/Linux (http://en.wikipedia.org/wiki/List_of_Linux_distributions) بندازیم، میبینیم خیلیاشون برپایه‌ی RHEL هستن، مثل Fedora، CentOS و... ولی خود RHEL اینجا معرفی نشده و صرفا بش یه لینک داده شده.

این بحث تفاوت نرم‌افزار رایگان و آزاد یه بحثیه که خود صاحبان این فرهنگ هم نتونستن حلش کنن؛ چون علاوه بر همه‌ی Forkها و از هم گسیختگی‌های ایجاد شده تو این بین، املای زبان انگلیسی هم به این اختلاف کمک کرده! چون اصطلاح Free Software یا حتی Open معنای گنگی دارن. حتی نرم‌افزارهایی مثل LiberOffice ترجیح دادن از کلمه‌ی Liber استفاده کنن که بازم مشکلو ۱۰۰٪ حل نکرده! :قهقهه:

arefane
جمعه 25 مهر 1393, 15:42 عصر
RedHat توزیع‌های زیادی منتشر کرده و خیلیاشونم مجانی\آزاد هستن.

اگر منظور شما توزیع هایی مثل CentOS و Fedora هستن، باید بگم که این توزیع ها رو شرکت ردهت منتشر نمیکنه، بلکه توسط افراد دیگه توسعه داده میشن، این توزیع ها فقط از توزیع ردهت مشتق (fork) شدن و محصول خود ردهت نیستن. شرکت ردهت فقط توزیع ردهت رو منتشر میکنه



هر سیستم‌عامل/نرم‌افزاری که توسط GNU یا لایسنس‌هایی مثل GPL عرضه بشه باید مجانی و آزاد باشه.

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

کد منبع توزیع ردهت اینترپرایز یا به قول شما RHEL کاملا آزاد و متن باز هست (به غیر از بعضی آپدیت هایی که در مخازن موجود هست و صراحتاً کلمه non-free رو به کار بردن) و شرکت ردهت سورس کد تمامی برنامه‌هایی را که استفاده می‌کنه منتشر می‌کنه.
همچنین هزینه ای که این شرکت برای توزیع خودش میگیره، صرفاً در قبال پشتیبانی، آموزش و فراهم کردن سرویس هایی برای کاربر هست. این موضوع رو میتونید توی ویکی ردهت مشاهده کنید :


sells subscriptions for the support, training, and integration services that help customers in using open-source software. Customers pay one set price for unlimited access to services such as Red Hat Network and up to 24/7 support.


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

موفق و پیروز باشید.