سؤال

الايجابيات.وسلبيات؟كم من الوقت تستخدمه؟ماذا عن جامبي؟

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

المحلول

لقد استخدمت Qt في مشروعين قمت بتنفيذهما بلغة C++ على عدة منصات على مدار سبع سنوات.أعتقد أنه يعمل بشكل جيد وبالتأكيد كان أسرع بالنسبة لي لتطوير تطبيق واجهة المستخدم الرسومية اللائق على جهاز Mac بدلاً من التعمق في لغة لم أكن أعرفها (Objective-C) في ذلك الوقت.

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

لم أستخدم جامبي أبدًا.

نصائح أخرى

لقد كنت أستخدم Qt منذ عدة سنوات للتطوير التجاري وكنت سعيدًا جدًا به.

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

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

  • نظام ترجمة Qt، باستخدام اللغوي، سهل الاستخدام ويجعل دعم لغات متعددة أمرًا سهلاً (بالطبع لا يزال يتعين عليك ترجمة السلاسل التي تتطلب الكثير من العمل!)
  • نظام تخطيط واجهة المستخدم الرسومية حيث تقوم الأدوات بتغيير حجمها وفقًا للتخطيط يجعل كل شيء أسهل بكثير.في اللغات المختلفة يختلف طول السلاسل.باستخدام عناصر واجهة المستخدم ذات الحجم الثابت (مثل MFC)، يجب تعديل كل مربع حوار لكل لغة، وإلا سيتم قطع أجزاء من التسميات.مع كيو تي يقومون بتغيير حجم أنفسهم.بالطبع، هناك حالات لا تعمل فيها هذه الطريقة بشكل صحيح تمامًا ولكنها تجعل كل شيء أسهل بكثير.
  • يقوم QString بكل شيء في Unicode ويتعامل مع التحويلات من برامج الترميز المختلفة بسهولة شديدة.

الشيء الوحيد الذي كان ذا قيمة كبيرة هو الوصول إلى المصدر، على الرغم من أن هذا بالتأكيد ليس فريدًا بالنسبة لـ Qt.في عدة مناسبات، أوضحت القدرة على التحقق من مصدر كيو تي بعض السلوكيات الغريبة أو أعطت فكرة عن كيفية تحقيق شيء ما.

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

أحد الجوانب السلبية الرئيسية لـ Qt هو عدم وجود مكتبات تابعة لجهات خارجية لاستخدامها في التطبيقات التجارية.ومع ذلك، Qt كاملة إلى حد ما، لذلك لم تكن مشكلة كبيرة بالنسبة لنا، على الرغم من أن ذلك سيعتمد على نوع التطبيق الذي تقوم بتطويره.

لم أستخدم جامبي أيضًا.

فيما يلي بعض إيجابيات وسلبيات Qt:

الايجابيات:
عبر منصة
أعلم أن هذا يُستخدم دائمًا، ولكن بعد التنقل بين نظامي التشغيل Windows وLinux مع Qt، من المدهش مدى قلة ما يجب علي فعله للتشغيل.أعتقد أن هذا يساعدني حقيقة أنني أستخدم Vim فقط مع Qt Designer.

QMake
هذا هو أحد الجوانب المفضلة لدي في Qt.بعد العمل في wxWidgets وFLTK وما إلى ذلك، سئمت جدًا من العبث بأنظمة البناء المختلفة ولا أرغب في إنشاء ملفات التكوين الخاصة بي يدويًا.أستخدم حاليًا CMake على أي شيء آخر غير Qt في الوقت الحالي، لكنني أعتقد أنني أنتقل ببطء حتى Qt إلى CMake.ومع ذلك، من السهل جدًا البدء باستخدام QMake.

QTestLib
لقد ألقيت نظرة على اثنين من أطر عمل اختبار وحدة C++ الأخرى وعندما قمت بإنشاء اختباراتي باستخدام QTestLib، بدا الأمر مشابهًا جدًا لـ NUnit(C#) وفي غضون دقائق كان لدي العديد من اختبارات النجاح.لقد لاحظت أيضًا أنه سيكون من السهل جدًا إنشاء موقع خاص بي التكامل المستمر بيئة.

الأقرب إلى Java و.Net في الإنتاجية
أكبر شيء سمعته/قرأته يقوله الناس عن C++ هو "يمكنني أن أكون أكثر إنتاجية باستخدام Java أو .Net".من خلال تجربتي الشخصية، يمكنني الحصول على نموذج أولي لتطبيق يعمل في Qt باستخدام Vim وQt Designer، قبل تحميل Eclipse أو Visual Studio.أحصل أيضًا على مجموعة مشابهة جدًا من المكتبات في Qt الموجودة في .Net أو Java وإذا لم تكن موجودة فيمكنني الاستفادة من كود C++ الموجود هناك.


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

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

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


أعتقد أنني انتهيت الآن :).أوه، لم أستخدم Jambi ولكني مهتم حقًا بتنفيذ بعض المشاريع النموذجية لمعرفة مدى سهولة استخدام مكون إضافي تم تطويره في C++ مع Jambi.خاصة استخدام Jambi كواجهة ويب مع مكونات C++ الإضافية.

لأكون صادقًا، لم أقرأ الكثير عنها، لذا قد يكون الأمر مستحيلًا أو سهلًا جدًا.

لقد استخدمت كيو تي في وظيفة سابقة.لم يكن لدي سوى أقصر وقت على الإطلاق في الاتصال بـ Qt قبل عدة سنوات من ذلك، لذلك كنت مبتدئًا في Qt تقريبًا.

عندما بدأت، طُلب مني اختيار لغتي وبيئتي، لكن الدعم عبر الأنظمة الأساسية كان أمرًا مرغوبًا فيه.لقد جربت Qt وJava، وقمت بتجربة لغة C# فقط.أعطيت نفسي يومين لتقييم كل خيار.

ربما كنت متحيزًا بعض الشيء لتاريخي كمطور لـ C++، ولكن بعد قضاء الوقت في كل خيار، كانت Qt هي الوحيدة التي أظهرت أي تلميحات بأنها مفيدة بدون منحنى تعليمي طويل.

الوثائق المقدمة مع Qt والتطبيقات النموذجية جعلت من السهل جدًا على المطورين ذوي الخبرة ولكن المبتدئين في Qt البدء والتشغيل بسرعة كبيرة.لقد قمت بإنشاء نموذج أولي لواجهة المستخدم/نماذج بالحجم الطبيعي للتطبيق النهائي بحلول نهاية الفترة التجريبية.مع Java/Eclipse، وJava/SunStudio، وC#/VS.net، واجهت صعوبة في حدوث أي شيء غير تافه في ذلك الوقت.

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

الشيء الآخر الذي أعجبني هو أن Qt كان لديه كل ما أحتاجه تقريبًا.سمها ما شئت - التخزين، والشبكات، وواجهة المستخدم الرسومية، والترابط، والحاويات - لدى Qt فئة للتعامل معها.ما هو IMHO مهم لأن خلط المكتبات قد يسبب مشاكل في بعض الأحيان.

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

لقد وجدت أيضًا أن دعم Trolltech جيد إلى حد ما.لقد أثرت بعض الأخطاء في Qt، تم إصلاح أحدهما وإصداره بينما كنت لا أزال أعمل في المشروع (وظيفة لمدة 6 أشهر فقط).

الشيء السلبي الوحيد الذي يمكنني تذكره هو صعوبة تصحيح أخطاء كائنات Qt (باستخدام VS) - يوجد مكون إضافي لـ Qt لـ VS يمكنه فحص كائنات Qt ولكني كنت أستخدم الإصدار المجاني من VS ولا تعمل المكونات الإضافية معه.ولكن هذا لم يكن خطأ كيو تي.

لم أستخدم جامبي لذا لا أستطيع التعليق.

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

لقد كنت أستخدم كيو تي منذ أكثر من عامين.

الأشياء التي أحبها في Qt هي:

  • برمجة واجهة المستخدم الرسومية سهلة (مقارنة مع MFC) ، مصمم QT
  • دروس حاوية لطيفة
  • إطار مشهد رسومات جميل
  • وثائق ممتازة مع أمثلة مفيدة
  • دعم الترجمة
  • دعم فني جيد

يمكنني أن أوصي بشدة أيام مطور كيو تي.إذا كانت لديك فرصة للمشاركة، قم بذلك!هناك الكثير من المحادثات اللطيفة والمثيرة للاهتمام للغاية.

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

لكن لا تستخدمه...

طليعة:تمتلك QT تخطيطًا اختياريًا ثلاثي المراحل، حيث يسمح WX بمرحلتين فقط حاليًا (أعتقد أنهم يخططون للقيام بثلاث مراحل، ولم يعملوا عليه بعد).

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

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