لایسنز(License) ابزارها و نرمافزارهای توسعه
لایسنز(مجوز) چیست و چه اهمیتی دارد؟
هیچ وقت به نرمافزارهایی که استفاده میکنید و لایسنز اونها توجه کردهاید؟
اینکه چطور ممکنه روی نتیجه کار شما تأثیر گذار باشند؟
آیا میدانید در چه شرایطی میتوانید سورس کد خود را نگه دارید و در چه شرایطی باید آن را نشر دهید؟
در دنیای آزاد نرمافزار باید در این مورد اطلاعات کافی داشته باشید،
-وقتی کاری را انجام میدهید:
میخواهید آن را نشر دهید(منظور محصول نیست بلکه سورس کد آن است!)
یا اینکه سورکد مختص شما است، میخواهید آن را حفظ کنید و از آن برای مقاصد تجاری استفاده کنید.
-وقتی میخواهید رزومه کاری در دنیای واقعی به شرکت ها ارائه کنید.
در دنیای نرمافزار لایسنز های متعددی وجود دارد مثل:
GPL(GNU Public License), GPL2, GPL3, LGPL و ورژنهای دیگر آن, MPL(Mozilla Public License) and so others
پس اگر در نظر دارید کاری را شروع کنید به ابزار هایی که میخواهید استفاده کنید(نه در باره قابلیت آنها) بلکه در مورد لایسنز آن دقت کنید!
بعضی از این لایسنز ها قابل ادغام با یکدیگر نیستند، به این معنا که نمیتوان یکی یا چند لایبرری را همزمان در یک محصول واحد لینک یا همگردانی کرد.
این متن مرتبط و در ادامه مطلب چالشهای پیش روی توسعه گران نرمافزار است.
این نوشته به قلم نویسنده بلاگ بوده، ترجمه یا کپی نیست و تمام حقوق مادی و معنوی آن برای این سایت و نویسنده آن محفوظ است.
حداقلها و نیازمندیهای نرمافزاری
آیا در مورد سخت افزار مشتریان یا کاربران خود اطلاعاتی دارید؟
در اغلب موارد مشتریان شامل شرکت ها ادارهجات دولتی یا شرکتهای دیگر هستند تا کاربران خانگی.
فرض کنید با یک قرار داد وارد مجموعهای میشوید که تعداد کاربران آنها از ۲۰ کلاینت بیشتر باشد، در این صورت اگر سختافزار های آنها قابلیت اجرای نرمافزار شما را نداشته باشد یا مثلا اجرای نرمافزار به شکل خستهکننده و ملال آوری کند باشد!!! نمیتوان مشتری را وادار به پرداخت هزینهای چنین بالا جهت استفاده از نرمافزار کرد، بعلاوه در برخی موارد مشتری یا کاربر نیازمند استقرار و استمرار این سیستمها برای کار با نرمافزاریهایی است که از پیش تهیه شدهاند.
در چنین مواردی پشتیبانی و قابلیت اجرای محصولات روی سختافزارهایی با قابلیتهای پایین باید دیده شود!
لذا پیشاپیش از میزان نیاز سختافزاری ابزاری که با آن اقدام به تولید محصول یا نرمافزار میکنید اطلاعات کسب کنید!
البته نباید فراموش کرد نرمافزاهای خاص نیاز به سختافزار خاص نیز دارند مثلا در مورد نرمافزار های گرافیکی تهیه سختافزار مناسب برعهده مشتری یا کاربر است.
در این مورد ابزار هایی که برای شما کد ماشین تولید میکنند مناسب تر هستند تا نرم افزار هایی که نیاز به ماشین مجازی دارند در اغلب موارد منابع سیستم توسط سیستم عامل یا همان سکو به شکل غیر قابل باوری تصرف شده اند(در مورد سیستمهای قدیمی) و یک ماشین مجازی مثل Java یا .Net میتواند کابوسی را به بار آورد.
تفاوت در آنجاست که نرمافزارهایی که با .Net یا Java فراهم میشوند نیاز به یک ماشین مجازی دارند که باید از قبل روی سیستم مشتری نصب باشد، که البته باز هم شرایط دیگری پیش می آید مثلا تصور کنید ویندوز Xp با نسخههای قدیمی که سازمان برای اجرای نرمافزار های قدیمی خود وابسته به آن است و نسخهای از .Net که روی آن نصب نمیشود. البته در این میان(نرمافزارهای نیازمند به ماشین مجازی VM) گوی سبقت در دست Java است چون معمولا بدون درنظر گرفتن نسخه سیستم عامل و قابلیتها یا محدودیتهای آن به صورت موفق نصب و اجرا میشود(صرف نظر از سرعت و سهولت کار با محصول حین اجرای آن روی ماشین کاربر)
اما در صورتی که محیط توسعه، زبان برنامه نویسی، ابزار (یا هر عنوانی که مطبوع شماست) شما کد ماشین تولید کند که بدون واسطه روی سکو(سیستم عامل) و مستقیم بر روی CPU اجرا شود بسیاری از این چالش ها پیش روی شما نیست! مانند :
C/C++/Qt/GTK/Freepascal+Lazarus
در مورد زبانها و محیطهای ذکر شده بالا غیر از فریپاسکال و لازاروس مابقی از زبانهای سی و سیپلاسپلاس استفاده میکنند بعلاوه ویجتست های فراهم شده توسط لازاروس امکان انتخاب سکوی اجرا و همچنین ویجتست مطبوع شما را فراهم کرده شما یکبار نرمافزار خود را نوشته و تهیه کردهاید، میتوانید نرمافزار را برای ویندوز با ویجتست Win32 / GTK /Qt در لینوکس با ویجتست GTK/Qt و در مکاواس با ویجتست های GTK/Cacao همگردانی مجدد کنید بدون آنکه تغییری در ساختار نرمافزار ایجاد کنید.
این متن مرتبط و در ادامه مطلب چالشهای پیش روی توسعه گران نرمافزار است.
این نوشته به قلم نویسنده بلاگ بوده، ترجمه یا کپی نیست و تمام حقوق مادی و معنوی آن برای این سایت و نویسنده آن محفوظ است.
چالشهای توسعه نرمافزار
در دنیای مدرن و رو به پیشرفت برنامه نویسی و توسعه نرمافزار چالشهای پیچیدهای روزانه ذهن توسعه گران را درگیر خود میکند!
ابزارهای توسعه نرمافزار، سکوهای اجرای نرمافزار، محدودیت ها و البته قابلیتهای این ابزار ها!
در این مجموعه مواردی عنوان شده که بیشتر ذهن را به توسعه نرمافزارهای تجاری سوق میدهند اما توسعه نرمافزارهای آزاد نیز همین چالشها رو پیش رو دارد. لذا درمواردی کاربر و در مواردی مشتری جهت اشاره به کاربران انتخاب شده.
محبوبیت نرمافزارها یا ابزارهایی که توسط شما تهیه میشوند چه آزاد و چه تجاری در گرو انتخاب صحیح ابزارهای توسعه است.
در این باره میخوانید:
حداقلها و نیازمندیهای نرمافزاری
سرورها و سرویسهای مقیم در مجموعه مشتری
این نوشته به قلم نویسنده بلاگ بوده، ترجمه یا کپی نیست و تمام حقوق مادی و معنوی آن برای این سایت و نویسنده آن محفوظ است.
درباره این سایت