هل روبي جيدة لتطوير واجهة المستخدم الرسومية؟[مغلق]

StackOverflow https://stackoverflow.com/questions/115501

سؤال

أفكر في إنشاء أداة تعتمد على واجهة المستخدم الرسومية وأريد أن تكون مشتركة بين الأنظمة الأساسية.لقد استبعدت Java، لأنني شخصيًا لا أحب Swing.أفكر حاليًا في لغة C# وأستخدم Mono لجعلها مشتركة بين الأنظمة الأساسية.ومع ذلك، فأنا أتساءل عما إذا كانت اللغات الجديدة متعددة المنصات مثل Ruby يمكن أن توفر لي بيئة تطوير مناسبة لواجهة المستخدم الرسومية.

هل كانت مفيدة؟

المحلول

الجواب القصير: لا (لأنك قلت عبر منصة).

الجواب الطويل: تعد واجهات المستخدم الرسومية عبر الأنظمة الأساسية مشكلة قديمة.Qt، GTK، wxWindows، Java AWT، Java Swing، XUL - جميعهم يعانون من نفس المشكلة:لا تبدو واجهة المستخدم الرسومية الناتجة أصلية على كل نظام أساسي.والأسوأ من ذلك هو أن كل منصة لها مظهر مختلف قليلاً و تشعر بذلك، لذا، حتى لو كنت قادرًا بطريقة ما على الحصول على مجموعة أدوات تبدو أصلية على كل نظام أساسي، فسيتعين عليك بطريقة ما ترميز تطبيقك يشعر أصلي على كل منصة.

ويصل الأمر إلى قرار:هل ترغب في تقليل جهود التطوير والحصول على واجهة مستخدم رسومية لا تبدو مناسبة تمامًا على كل نظام أساسي، أم ترغب في تحقيق أقصى قدر من تجربة المستخدم؟إذا اخترت الخيار الثاني، فستحتاج إلى تطوير واجهة خلفية مشتركة وواجهة مستخدم مخصصة لكل نظام أساسي.

روبي ليس خيارًا سيئًا للواجهة الخلفية المشتركة لديك.

نصائح أخرى

سيكون لديك روبي/جتك, ، والذي يسمح لك باستخدام مجموعة أدوات GTK ضمن Linux.أعتقد أن هذا يجب أن يعمل ضمن نظامي التشغيل Windows وMac OS (كما هو الحال مع Gimp وGaim وما إلى ذلك).

أ مجلة فرنسية تنشر مقالة جيدة للمبتدئين حول روبي/GTK.

يحرر :وفقا للصفحة الرئيسية على مشروع سورس فورج, ، Ruby-Gnome2 (المعروف أيضًا باسم Ruby/GTK) عبارة عن منصة مشتركة (Windows وLinux وMac OS).

روبي لديها أحذية, ، ولكن هذا قد يكون خفيف الوزن بعض الشيء.

مع Ruby، يمكنك استخدام Tk، وهي مجموعة أدوات ناضجة لواجهة المستخدم عبر الأنظمة الأساسية.إنها مجموعة أدوات واجهة المستخدم الرسومية الفعلية لـ Python وTcl، وهي متاحة أيضًا للاستخدام مع Perl.تستخدم أحدث الإصدارات من Tk عناصر واجهة المستخدم الأصلية التي تعالج المشكلة الأساسية المتمثلة في أن Tk يبدو قديمًا.

موقع ويب محايد لغويًا مخصص للمعارف التقليدية هو http://www.tkdocs.com/ والذي يتضمن أمثلة مشفرة في كل من Ruby وTcl.

هناك ايضا FXRuby والذي يتمتع بميزة كتاب المبرمج العملي، كذلك wxRuby والذي يعتمد على إطار عمل wxWidgets C++ GUI.

كوني مبرمج wxperl، أعلم أن wxruby موجود أيضًا.Wx سريع جدًا وله شكل ومظهر حقيقي عبر الأنظمة الأساسية.

نلقي نظرة على نتائج مسح روبي واجهة المستخدم الرسومية 2008 والمناقشة هنا.سوف تحب أن تعرف.

لست متأكدًا من روبي، لكنك ذكرت Mono/C# - لقد استخدمت Mono وGTK# كثيرًا مؤخرًا وأنا معجب جدًا.يبدو أنها مستقرة جدًا كما أن إمكانية النقل عبر الأنظمة الأساسية أمر جيد.

يعمل Ruby/GNOME2 بشكل جيد.يمكنك استخدام Glade لسحب وإفلات عناصر النافذة وتحميلها بواجهة المستخدم من تطبيق Ruby الخاص بك.

هل نظرت إلى SWT على جافا؟يستخدم عناصر واجهة مستخدم أصلية ومن الأسهل بكثير الحصول على واجهة رائعة معها مقارنة بـ Swing.

لا تزال Java خيارًا، وهي خيار جيد أيضًا.إذا كنت تريد مظهرًا ومظهرًا أصليين، استخدم SWT/JFace.يمكنك حقًا إنشاء تطبيقات واجهة مستخدم قوية باستخدام إطار عمل RCP الخاص بـ Eclipse.

إذا قمت بالمغامرة في أي وقت مضى باستخدام جهاز Mac، فقم بالتحقق من ذلك روبي كاكاو.من الواضح أن هذا مخصص لـ OSX فقط، لكنني رأيت الكثير من الأشخاص في حيرة من أمرهم عندما يتطلعون إلى القيام بتطوير واجهة المستخدم الرسومية على نظام التشغيل Mac، وإذا كنت تحب روبي، فإن RubyCocoa ممتع للغاية.

أنا أؤيد بقوة Qt لتطوير واجهة المستخدم الرسومية عبر الأنظمة الأساسية.إنه أمر رائع وواجهات برمجة التطبيقات بديهية للغاية.تبدو واجهة المستخدم الرسومية وكأنها أصلية تقريبًا مع Qt لأنها تستخدم عناصر تحكم واجهة المستخدم الرسومية التي يوفرها نظام التشغيل الأساسي.

على الرغم من توفر الواجهة الأساسية مع روابط لغة C++ الأخرى.لروبي RubyQt متاح.لسوء الحظ أنها غير ناضجة للغاية.

أود أن أقترح النظر في com.visualRuby.إنه IDE لإنشاء واجهات المستخدم الرسومية باستخدام روبي.فهو يستخدم GTK كمجموعة أدوات رسومية، والتطبيقات تبدو رائعة بالنسبة لي على أي نظام أساسي.يمكنك مشاهدة لقطات الشاشة على أنظمة Win7 وWinXP وUbuntu وMac على صفحة لقطات الشاشة:

http://visualruby.net/site/Screen%20Shots.html

يمكنك تجربتها بسهولة على كل منصة عن طريق تثبيت visualRuby على منصات مختلفة، وتشغيل البرامج النموذجية.

تمت كتابة الإجابة المحددة قبل إصدار visualRuby.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top