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

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

سؤال

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

ميزات اللغة المثالية:

  • نمط الكود:C/جافا مثل
  • تطوير واجهة المستخدم الرسومية:تصميم سهل وأنيق ومنصة أصلية
  • مجتمع:موثق على نطاق واسع، تطوير نشط، ودود ومفيد، وحدة التركيز
  • وجوه المنحى
  • جمع البيانات المهملة، لا داعي للقلق بشأن المؤشرات، وما إلى ذلك
  • تجميع أصلي، لا توجد أوقات تشغيل تابعة لجهات خارجية مثل GTK أو .NET
  • منصة متعددة (يمكن تجميعها على *nix، Windows، Mac)
  • سريع إلى حد معقول
  • الكتابة المختلطة (الكتابة الناعمة، أو الكتابة الناعمة والصارمة - أي الكتابة الناعمة).رمح)

خلفية:

والأهم من ذلك، أنني أحتاج إلى شيء مباشر ومألوف إلى حد معقول، وشيء لن يتطلب فهمًا عميقًا لواجهات برمجة التطبيقات الخاصة بالمنصة.لا أستطيع أن أقضي الكثير من الوقت في تعلم كيفية تطوير تطبيقات Win32 في C++ على سبيل المثال.لقد استخدمت wxWidgets، وأعجبني الاستخدام الأساسي، ولكنني أرغب حقًا في استخدام لغة مع تجميع البيانات المهملة والكتابة الديناميكية وما إلى ذلك.

إن إحباطي تجاه Java وC# وغيرهما هو الحاجة إلى وقت تشغيل تابع لجهة خارجية.لا أريد أن يقلق المستخدمون النهائيون بشأن تثبيت منصة منفصلة وصيانتها.

والان اذن.أفكار؟؟

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

المحلول 14

تحديث:

.NET أصبح أخيرًا حلًا مفتوحًا للمصدر. .NET Core يسمح التجميع الأصلي لأجهزة متعددة.

تجربة .NET الجديدة هي بالضبط ما كنت أبحث عنه عندما طرحت هذا السؤال قبل عدة سنوات.


إبداعي:

الكثير من الاقتراحات الجيدة ، على الرغم من أنها مملحة مع السلبية طوال الوقت.

أعتقد أنني سأذهب مع C# و Mono. أحب C# بشكل جيد بما فيه الكفاية (لقد اتُهمت في كثير من الأحيان بالضحلة ، لكن بناء جملة اللغة لا تقل أهمية عن ميزاتها ، لأنني أقضي الكثير من الوقت في الكتابة في هذا الجملة المعينة). على الرغم من أنه يشبه Java ، إلا أنه يحتوي على بعض الميزات الفريدة التي أقدرها ، وأعتقد أن المجتمع يبدو أكثر انفتاحًا.

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

في الواقع ، كذلك .net نفسها ، لهذه المسألة. Sun هي شركة للمؤسسات الكبيرة التي تبدو في كل مكان مشوشًا بشأن ما هي عليه وما يفعله مثل Microsoft أو IBM ، ومع ذلك يبدو أنها تقوم بعمل أسوأ في قيادة وتنظيم منصتها من Microsoft ، وهو أمر مأساوي للغاية.

نصائح أخرى

هاها ، بسبب القيود التي فرضتها ، لقد تركت الآن مع HTML و JavaScript. حظا طيبا وفقك الله :)

إجابة سؤالك هي ببساطة: لا شيء. لقد استبعدت جميع اللغات والمنصات المرغوبة في سؤالك.

أقترح عليك التخلص من كرهك ضد .NET وتذهب مع Delphi Prism. إنه ليس C#، فهو متوافق مع المنصات (كل شيء مدعوم رسميًا على Mono) ويمكنك إنشاء تطبيقات تجلب وقت التشغيل معهم (Mono كجزء من طلبك).

أود أن أقترح رائع و غريفون. Groovy هي لغة ديناميكية (مثل Ruby / Python) تعمل على JVM وتتكامل مع ملايين مكتبات Java هناك بسهولة. Griffon هو إطار يشبه القضبان عالية الإنتاجية لتطوير واجهة المستخدم الرسومية. كان Groovy موجودًا منذ 5 سنوات ولديه مجتمع قوي ويدعمه Springsource (الآن قسم VMware). غريفون أصغر قليلاً ، ولكن لديه أيضًا مجتمع قوي إلى حد ما.

يبدو أن هذه تناسب معاييرك.

أعلم أنني تحولت من Java إلى Grails (إطار الويب المكتوب في Groovy يشبه Rails) ، ولم أنظر إلى الوراء.

هل نظرت إلى كيو تي؟إنها مكتبة رائعة حقًا لواجهة المستخدم الرسومية، وهناك روابط لكل لغة شائعة الاستخدام تقريبًا.هناك الكثير من الوثائق ومجتمع واسع.لقد ذكرت أنك تريد أن تفعل شيئًا ما في لغة تتضمن تجميع البيانات المهملة والكتابة الديناميكية، ولكن استبعد Python وRuby، وهما اللغتان الأكثر شيوعًا التي تناسب هذه المعايير (أيضًا، كلاهما لهما روابط QT رائعة، وأنا أستخدم pyQT4 و إنه رائع فقط).إنها في الواقع ليست بعيدة عما تفعله في Java/C، وينتهي بك الأمر بكتابة أقل بكثير.

واو أنت حقا تحد من اختياراتك. سأقفز على عربة QT وأوصي C ++.

ترث معظم الكائنات في QT من كائن آخر نوعا ما هل هي مجموعة القمامة الخاصة.

هناك وثائق لا تصدق هناك لذلك.

QT قوية للغاية ولديها معظم العناصر التي ترغب في ذلك ، ويمكن توسيعها إذا كنت ترغب في تعديل العناصر بنفسك.

إذا قمت ببناء ثابت لإصدارك ، فبناء الأشخاص الذين تقدمهم للتطبيق لن يحتاجوا إلى توزيع أي مكتبات أخرى حيث سيتم دمجها جميعًا في ملف .exe.

يُقال إن التكرار التالي لـ Delphi هو منصة (Windows ، Mac ، Linux). أعتقد أنه يلبي جميع متطلباتك باستثناء جمع القمامة.

لا توجد لغة تلبي كل هذه القيود. من الناحية الفنية ، يبدو أنك تطلب شيئًا متطابقًا تقريبًا مع Java ، ولكن بعد ذلك رفض Java بشكل صريح لأسباب غير مصورة. من الناحية المفاهيمية ، يبدو أنك تبحث عن بيثون أو روبي ولكنك لا تسمح لهم باستخدام بناء جملة مختلف قليلاً.

بالنظر إلى ترتيب الأولويات ، أعتقد أن الأقرب الذي ستجده في اللغات الموجودة قد يكون C مع Boehm GC و GTK+ لـ GUI (و GLIB لنظام الكائن). أنت تقول "لا GTK" تحت "لا مطلوب وقت تشغيل طرف ثالث" ، لكنني لست متأكدًا من "وقت التشغيل" الذي تشير إليه هنا ، لأن IIRC هو مجرد مجموعة من مكتبات C.

بالنظر إلى خصوصية المتطلبات ، أعتقد أن أفضل رهان لك هو كتابة لغتك الخاصة. لم يعد الأمر صعبًا في الكتابة بعد الآن. هناك أدوات خارج الجرف للمساعدة في التحليل وتوليد الكود ومعالجة الرياضيات والنصوص و GC وما إلى ذلك. بمجرد البدء ، من المحتمل أن تجد أشخاصًا على استعداد لمساعدة ذلك. تستخدم العديد من مكتبات واجهة المستخدم الرسومية عبر المنصات (مثل WXWidgets) C/C ++ ، لذا إذا كان لديك FFI لائق ، فيمكنك استخدام ذلك أيضًا. تريد "دعم" و "موثق" ولكن إذا كنت المؤلف الأساسي ، فستفهمه بشكل أفضل من أي شخص آخر. الجزء الأصعب في لغة ما هو التصميم ، ويبدو أن لديك صورة في رأسك حول ما يجب أن تكون عليه اللغة بالضبط.

هناك عدد قليل إذا كنت تستطيع قبول WXWINDOWS أو GTK أو QT كمجموعة أدوات.

في ترتيب تفضيلي الشخصي سيكون:

  1. ستوديو إيفل
  2. D مع ربط D-GTK
  3. F#

جافا سكريبت؟

قد لا تكون الأسرع ولا تلبي جميع احتياجاتك بالكامل ، ولكن مهلا ... في كل مكان وسهل التعلم


لم تقرأ بعد القائمة ، ولكن مع Prism ، ربما يمكنك تحقيق معظم أهدافك.

أو يمكنك تجربة QT و C ++ Autopointers

يمكن أن يمنحك Silverlight فعليًا توفر ما يكفي من المنصات لاستخدام C#/. Net ، لكنني لست متأكدًا من أنه يناسب جميع متطلباتك.

يبدو أن برنامج Action Script 3 سيجعلك سعيدًا. لكنها أكثر توجهاً نحو الويب ولكن يمكنك محاولة إنشاء جهاز عرض أو تطبيق جوي. أعتقد أنه حل جيد لأنه يمكنك فعل أي شيء باستخدام AS3 (الصورة ، الفيديو ، النص ، لوحة مفاتيح نص الفيديو الصوتي وإدخال الماوس ، الكمثرى إلى الكمثرى و 3D منذ فلاش 10 ، ...) ويمكنه استخدامه ويمكن استخدامه على الويب أو سطح المكتب الخاص بك :)

إذا كنت مشفرًا جذرًا خالصًا (باستخدام VIM وخط الأوامر فقط لـ EX) ، فيمكنك عمل تطبيقك بالكامل دون استخدام IDE Flash ، من خلال كتابة ملفاتك كملفات وتجميعها باستخدام MXMLC (يأتي مع Flex SDK المجاني).

أقترح بيثون. على الرغم من أنه لا يتناسب مع متطلباتك الأول لأسلوب الترميز ، إلا أنه يناسب جميع متطلباتك الأخرى!

  • تطوير واجهة المستخدم الرسومية: التصميم السهل والأنيق والمنظم الأصلي-> نعمأقترح أن تجرب wxpython (wxwidgets لبيثون). هذا "أصلي" على Python حيث أن حوالي 90 ٪ من جميع أمثلة رمز WXWidgets على الإنترنت مخصصة للبيثون! لقد استخدمت شخصيا Tkinter و GTK و Wxpython. كلهم مدعومون جيدًا على بيثون. خياري الشخصي هو WX.
  • المجتمع: التطوير النشط ، الموثق على نطاق واسع ، ودية ومفيدة ، وحدة التركيز -> نعم
  • كائن موجه-> نعم
  • مجموعة القمامة ، لا تقلق بشأن المؤشرات ، إلخ -> نعم
  • التجميع الأصلي ، لا أوقات تشغيل الطرف الثالث مثل GTK أو .NET-> نعم. - يمكنك eiter:
    • حزم DLL واحد مع الكود الخاص بك - أو
    • استعمال py2exe الذي هو قادر على إنشاء واحد تنفيذ من مشروعك
  • متعدد المنصات (يمكن تجميعها على *nix ، windows ، mac)-> نعم.
  • بسرعة معقولة -> نعم. حسنًا ، إنها ليست الأسرع الموجودة هناك ، ولكنها قريبة بما يكفي لدرجة أن بعض المشاريع الخطيرة تتم في بيثون فقط.
  • كتابة مختلطة (ناعمة ، أو كلاهما ناعمة وصارمة-أي pike)-> نعم.

فيما يتعلق بمتطلباتك الأولى ، سأقول إنه يجب عليك تجريب الثعبان على الأقل. يتطلب الأمر القليل جدًا من الجهد للبدء. هناك البرنامج التعليمي لمدة 2 ساعة مما يمنحك مقدمة جادة. هناك تعليمي أساسي إلى متقدم حيث سأضمن تقريبًا أنك ستكتب طلبك الأول في اليوم الثاني.

أشعر أيضًا بألمك براين. معظم الوقت عندما أطرح أسئلة حول واجهة المستخدم الرسومية على سطح المكتب ، فإن الإجابة الوحيدة التي أحصل عليها هي: "اجعله الويب". لقد قمت حقًا بتسميره ، نظرًا لأن سؤالك لا يزال مفتوحًا على الرغم من بعض الإجابات غير البناءة ...

لقد كنت أشاهد عن كثب Javafx 2, ، يحل بعض مشاكل التأرجح ويبدو واعداً للغاية. قد يكون هذا هو الشيء الوحيد الذي فعله أوراكل بشكل صحيح منذ الحصول على جافا من Sun.

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