View Full Version : انتخاب زبان برنامه نویسی برای نرم افزار مستقل از سیستم عامل
اوبالیت به بو
جمعه 20 آبان 1390, 22:10 عصر
با عرض سلام
می خواهیم نرم افزاری بنویسیم که برروی سیستم عامل Mac و تمام نسخه های ویندوز اجرا شود. این نرم افزار حتما باید به صورت Desktop تهیه شود.
مدیر پروژه Delphi XE2 رو پیشنهاد کرده. نظر شما دوستان در این زمینه چیست؟
Mehdi Naderi
جمعه 20 آبان 1390, 22:57 عصر
برای برنامه های Cross Platform بهتر است از QT استفاده کنید
vcldeveloper
جمعه 20 آبان 1390, 23:07 عصر
مدیر پروژه Delphi XE2 رو پیشنهاد کرده.ریسکش بالا ست؛ تازه چند ماهه که منتشر شده، FireMonkey (کتابخانه رابط گرافیکی cross-platform دلفی) هنوز کاملا پایدار نیست و براش آپدیت های ماهیانه عرضه میشه تا هر چه زودتر به یک محصول قابل اطمینان تبدیل بشه؛ هیچ کامپوننتی از طرف شرکت های کامپوننت سازی برای FireMonkey عرضه نشده، و همه منتظر هستند تا چند ماه بعد ببینند آیا FireMonkey به بلوغ کافی میرسه، و ازش استقبال کافی میشه که ارزش ساخت کامپوننت براش رو داشته باشه یا نه؛ میشه گفت FireMonkey با زبان های راست-به-چپ بیگانه هست، و هیچ پشتیبانی خاصی از این زبان ها نمیکنه، فقط یک خصوصیت BiDiMode در فرم های FireMonkey گذاشتند که اون هم بعد از این بود که قبل از انتشار رسمی اش، درباره عدم پشتیبانی اش از زبان های راست-به-چپ هشدار دادیم، و با عجله اون خصوصیت رو بهش اضافه کردند، و قول دادند که در آپدیت های آینده مشکلش را برطرف کنند. فعلا که 2 آپدیت ماهانه عرضه شده، و مشکلات راست-به-چپ اش برطرف نشدند. علاوه بر همه اینها، مستندات چندانی براش وجود نداره، راهنمای رسمی خودش تعریف چندانی نداره، فقط می ماند چندتا Presentation در کنفرانس های برگزار شده، چند دمو که تیم توسعه اش منتشر کرده، و تعدادی پست وبلاگ. کتاب Delphi XE2 Handbook مارکو کانتو هم هنوز منتشر نشده. FireMonkey اگر به روند رشدش ادامه بده و به خوبی توسط سازنده اش پشتیبانی بشه، اون وقت شاید در تابستان سال آینده که ویندوز 8 هم احتمالا عرضه میشه، بشه روی اون حساب باز کرد، البته در اون زمان بر طبق ادعای تیم سازنده اش، پشتیبانی از اندروید هم بهش اضافه خواهد شد.
با توجه به این مطالبی که گفته شد، ریسک FireMonkey بسیار بالا ست. انتخاب های دیگه می تونند C++ + Qt یا #MONO + C یا جاوا، و یا حتی C باشند. اگر رابط گرافیکی خیلی براتون مهم باشه، میشه گفت که FireMonkey از همه اینها بهتر هست، چون یک رابط گرافیکی مبتنی بر raster مشابه WPF در همه پلت فرم ها بهتون میده، ولی هنوز پخته نشده و به بلوغ نرسیده. اگر یک رابط گرافیکی معمولی میخواید که شاید چندان هم با رابط گرافیکی استاندارد Mac OS و ویندوز مشابهت نداشته باشه، ولی بلوغ کافی برای انجام پروژه های بزرگ را داشته باشه، پشتیبانی خوبی داشته باشه، کتابخانه های جانبی متعددی هم داشته باشه، Qt ابزار مناسبی هست. اگر رابط گرافیکی چندان براتون مهم نیست، جاوا کتابخانه ها و ابزارها و منابع آموزشی متعددی داره، و از این جهت وضع اش از سایر گزینه ها بهتر هست. از وضعیت MONO اطلاع دقیقی ندارم؛ قبلا که برای پروژه های جدی و مهم چندان مطمئن نبود. الانش رو نمیدونم. همچنین نمیدونم کیفیت رابط گرافیکی ارائه شده در آن چطور هست. C هم که تکلیفش مشخصه.
JaguarXF
شنبه 21 آبان 1390, 08:05 صبح
علت اینکه از RCP استفاده نمیکنید چیست؟
مهران رسا
دوشنبه 23 آبان 1390, 12:51 عصر
اوبالیت جان با توجه به جزئیاتی که قبلاً از پروژه ات در اختیارم قرار دادی و طبق توصیه آقای کشاورز ،فکر میکنم جاوا گزینه مناسبی باشه.
sd.CSharpProgrammer
دوشنبه 23 آبان 1390, 20:17 عصر
با سلام خدمت دوستان
بنده مدیریت این پروژه را بر عهده دارم. طی جلساتی که در رابطه با این نرم افزار داشتیم قرار بر این شد که از دلفی نسخه XE2 استفاده کنیم. دلایل این انتخاب فاکتورهای زیر بود :
1) کراس پلتفرم بودن پروژه : یکی از مهمترین مسائلی که برای این پروژه وجود دارد این است که این نرم افزار قابلیت چندسکویی داشته باشد و دست کم بر روی سیستم عامل های مکینتاش و کلیه نسخه های ویندوز قابل اجرا باشد. دلیل این موضوع هم تعداد بالای کاربران این نرم افزار و تنوع سیستم عامل در بین آنهاست.
2) رابط گرافیکی زیبا : در این نرم افزار کمک شایانی به جذب افراد به سمت نرم افزار میکند که برای ما موفقیت بزرگی محسوب می شود. معمولاً اکثر کاربران کامپیوتر از ظاهر استاندارد نرم افزارها خسته شده و دنبال تنوع در این مورد هستند. و چون این نرم افزار در نوع خودش اولین مورد است استفاده از یک رابط گرافیکی زیبا باعث موفقیت بیشتر محصول خواهد شد.
در وهله اول، مسئله چند سکویی مهمتر است چون هدف اصلی از ارائه این محصول استفاده کلیه کاربران (مستقل از نوع پلتفرم مصرفی آنها) از نرم افزار است.
- در پیشنهاداتی که دوست عزیزمان جناب کشاورز فرمودند :
- Mono : متاسفانه از WPF پشتیبانی نمیکند در غیر اینصورت به نظر شخصی بنده WPF بهترین انتخاب برای کار ما بود. از این مسئله هم بگذریم، تا آنجا که بنده اطلاع دارم روی خود Mono نمی توان حساب جدی باز کرد.
- Qt : یکی از پلتفرم های قدرتمند برنامه نویسی است که محصولات بزرگی همچون مایا را با آن گسترش می دهند اما در امر زیباسازی نرم افزار حرف چندانی برای گفتن ندارد. البته اطلاع دارم ابزاری به اسم QML دارد ولی با توجه به مطالبی که در رابطه با این ابزار در منابع اینترنتی دیده ام، چندان قدرتمند و کارا نیست (دست کم قابل مقایسه با WPF و FireMonkey) نیست!
- JAVA : باید اعتراف کنم که وقتی به زبان برنامه نویسی این نرم افزار فکر میکردم انتخاب اولم جاوا بود. ولی دوستان مستحضر هستند که نسخه استاندارد جاوا J2SE یا JAVA SE در امر رابط کاربری رشد بسیار کندی دارد که برای پروژه ما کار را بسیار سخت می کند. باید قبول کنیم کتابخانه هایی مثل AWT و Swing که تا چند سال قبل کلیه نیازهای پروژه های دسکتاپ را برطرف میکرد حالا جوابگوی پروژه های امروزی نیستند! جز IDEهای جاوا مانند نت بینز، اکلیپس و ... نرم افزارهای انگشت شماری را پیدا می کنید که با Java SE تولید شوند چون این انتخاب برای دسکتاپ اپلیکیشن ها مغرون به صرفه نیست.
من در اینجا قصد ندارم پیشنهادات دوستان را رد کنم! کلیه مواردی که پیشنهاد کردید در نوع خود بی نظیر هستند. هر مطلبی که در اینجا ذکر کردم صرفاً دیدگاه شخصی نسبت به این زبان های برنامه نویسی بود.
با تشکر
سامسون داویداف
JaguarXF
سه شنبه 24 آبان 1390, 05:20 صبح
علت اینکه از RCP استفاده نمیکنید چیست؟
سوالم رو تکرار میکنم!
کراس پلتفرم بودن پروژه : یکی از مهمترین مسائلی که برای این پروژه وجود دارد این است که این نرم افزار قابلیت چندسکویی داشته باشد و دست کم بر روی سیستم عامل های مکینتاش و کلیه نسخه های ویندوز قابل اجرا باشد. دلیل این موضوع هم تعداد بالای کاربران این نرم افزار و تنوع سیستم عامل در بین آنهاست.
میتونی با همون WPF بنویسی و تحت Citrix عرضه اش کنی.
sd.CSharpProgrammer
سه شنبه 24 آبان 1390, 13:47 عصر
سلام دوست عزییز
سوالم رو تکرار میکنم!
RCP رو نمیشناسم، یه معرفی مختصر و کلی بفرمائید ممنون میشم.
میتونی با همون WPF بنویسی و تحت Citrix عرضه اش کنی.
Citrix چیه؟!
JaguarXF
چهارشنبه 25 آبان 1390, 06:47 صبح
سلام دوست عزییز
RCP رو نمیشناسم، یه معرفی مختصر و کلی بفرمائید ممنون میشم.
Citrix چیه؟!
http://www.vogella.de/articles/EclipseRCP/article.html
http://www.citrix.com/English/ps2/products/feature.asp?contentID=2300358
به همان ویدیو گوش کن توضیح میده.
البته برای پروزه های کوچک و متوسط توصیه نمیکنم.
#target
پنج شنبه 26 آبان 1390, 12:25 عصر
استفاده از C و یک کتابخانه CrossPlatform مثل GTK+ شاید بد نباشه .
vcldeveloper
یک شنبه 29 آبان 1390, 17:27 عصر
بنده مدیریت این پروژه را بر عهده دارم. طی جلساتی که در رابطه با این نرم افزار داشتیم قرار بر این شد که از دلفی نسخه XE2 استفاده کنیم.
با توجه به نیاز به رابط گرافیکی قوی، FireMonkey گزینه خوبی هست، تبریک میگم. البته امیدوارم حتما تازه وارد بودن آن را در تحلیل ها و زمانبندی پروژه تان در نظر بگیرید. Embarcadero هر ماه یک آپدیت جدید برای XE2 عرضه میکنه، که هر دو ماه یکبار این آپدیت میتونه breaking change داشته باشه، پس ممکنه بعضی از کدهایی که امروز می نویسید، دو ماه دیگه به درستی کامپایل نشه. همچنین اگر نرم افزار مربوطه فارسی هست، حتما توجه داشته باشید که FireMonkey مشکلات پایه ایی با راست-به-چپ داره، و فقط گفتند که برطرفش می کنند اما زمانش مشخص نیست. نکته آخر هم اینکه شرکتی مثل DevExpress که میشه گفت اصلی ترین توسعه دهند کامپوننت برای دلفی هست، اعلام کرده تا سال 2012 تصمیمی برای عرضه کامپوننتی برای FireMonkey نداره، و بعد از آغاز سال 2012 تازه بررسی میکنه که آیا FireMonkey ارزش وقت گذاشتن برای این شرکت را داره یا نه؛ پس عملا در حوزه کامپوننت های بصری و گزارش ساز کاملا دست تان خالی خواهد بود.
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.