كيو تي أو دلفي... إذا كنت ستختار أحدهما على الآخر؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

إذا كان لديك فارق بين المغامرة في أرض دلفي أو أرض كيو تي أيهما ستختار؟أعلم أنهم غير قابلين للمقارنة تمامًا.لدي خبرة في تطوير Windows مع Builder C++ (تقريبًا دلفي) وMFC (Qt تقريبًا)، مع مزيد من الوقت في العمل مع Builder C++.يرجى إزالة قدرة Qt عبر الأنظمة الأساسية في تحليلك.

آمل الحصول على ردود من الأشخاص الذين عملوا مع كليهما وكيف يمكنه مقارنة إطار العمل والبيئة وما إلى ذلك؟

شكرا لكم مقدما على الردود الخاصة بك.

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

المحلول

يحرر:تمت كتابة هذه الإجابة في 2008.ربما لم يعد الأمر مناسبًا جدًا، على الرغم من أنه ربما ليس عديم الفائدة تمامًا.خذ مع الملح.

لقد استخدمت كليهما وانتهى بي الأمر بالذهاب إلى طريق Qt.هذه هي الأسباب:

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

يعد C++ جانبًا سلبيًا إلى حد ما، على سبيل المثال.أوقات التجميع والتعبئة وIDE الأقل تكاملاً.ومع ذلك، فإن Qt تجعل لغة C++ تبدو وكأنها لغة ذات مستوى أعلى.تعمل QStrings على التخلص من كل الألم الناتج عن التعامل مع السلسلة على سبيل المثال.وبالتالي فإن المشكلات الإضافية مع C++ التي قد تواجهها عادةً، على سبيل المثال.المزيد من التعليمات البرمجية التي تجرها الدواب، أقل انتشارًا في تجربتي عند استخدام Qt.

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

سيكون موقفًا غريبًا حيث سأختار دلفي بدلاً من كيو تي لمشروع جديد.

نصائح أخرى

إذا كنت تتحدث عن أطر عمل واجهة المستخدم، فيجب عليك مقارنة Qt مع VCL، وليس IDE (دلفي في هذه الحالة).أعلم أنني متمسك، لكن دلفي هي IDE، وObject-Pascal هي اللغة، وVCL هي الإطار الرسومي.

ومع ذلك، لا أعتقد أن هناك أي شيء يقترب حتى من مطابقة قوة وبساطة VCL.كيو تي أمر عظيم، لكنه ليس VCL.

سأختار دلفي.بالطبع تسأل أي شخص باسكال هوليك ومن المؤكد أنه سيجيب بنفس الطريقة.;)

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

يعتمد الأمر حقًا على احتياجاتك وخبرتك.لقد عملت مع كليهما (على الرغم من أنني يجب أن أقول أن الإصدار الأخير من دلفي الذي عملت معه بالفعل كان دلفي 6، وأنا أعمل حاليًا مع كيو تي 4.4).

اللغة

إيجابيات لغة C++:

  • لغة C++ هي "قياسية" أكثر، على سبيل المثال.ستجد المزيد من الأكواد والمكتبات والأمثلة وما إلى ذلك، ويمكنك استخدام STL وتعزيزها بحرية، في حين أن Object Pascal هي لغة غريبة أكثر
  • يتم تجميع Qt على منصات ومترجمين مختلفين (يعتمد Kylix على Qt، BTW)

إيجابيات الكائن باسكال:

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

بيئة تطوير متكاملة

إيجابيات كيو تي:

  • بالمعنى الدقيق للكلمة، لا يوجد IDE لـ Qt إلى جانب المصمم، ولكنه يتكامل بشكل جيد مع IDE المفضل لديك (على الأقل Visual Studio وEclipse)
  • يقوم المصمم بعمل أفضل مع التخطيطات من نماذج دلفي (ملاحظة:يعتمد هذا على تجربة Delphi 6 وقد لا يكون صحيحًا مع الإصدارات الحالية)

إيجابيات دلفي:

  • لقد أصبح IDE مصقولًا وسهل الاستخدام الآن، ويتفوق على Visual Studio بشكل واضح على IMO (ليس لدي أي خبرة في استخدام Eclipse)
  • ليس هناك نقطة 2...ولكن إذا اضطررت إلى تخصيص الكلمة الطنانة "متكاملة" فسأخصصها إلى Delphi IDE

إطار العمل

سأترك مقارنة للآخرين، لأنني لا أعرف أحدث VCL جيدًا بما فيه الكفاية.لدي بعض الملاحظات:

  • يغطي كلا الإطارين معظم الوظائف المطلوبة
  • كلاهما لديه كود المصدر المتاح، وهو أمر لا بد منه للمنظمة البحرية الدولية (IMO).
  • كلاهما لهما بنية أكثر أو أقل اتساقًا - أفضل Qt، لكن هذا يعتمد على تفضيلاتك (ملاحظة:لن أقول أبدًا أن Qt يشبه MFC تقريبًا - لقد استخدمت MFC لفترة طويلة، وكل من Qt وDelphi - و.NET، في هذا الصدد - أفضل بكثير)
  • يحتوي VCL على المزيد من الوظائف الموجهة نحو قاعدة البيانات، وخاصة الاتصال بالمكونات المرئية
  • يحتوي Qt على المزيد من الوظائف الموجهة للرسم (2D / 3D / OpenGL).

الأسباب الأخرى التي تتحدث عن Qt IMO هي الدعم الجيد جدًا والترخيص، ولكن هذا يعتمد على احتياجاتك.هناك مجتمعات كبيرة لكلا الإطارين،

هناك فرق كبير بين دلفي وكيو تي هو نظام إشارة/فتحات كيو تي، مما يجعل من السهل حقًا إنشاء علاقة N إلى N بين الكائنات وتجنب الاقتران الضيق.

لا أعتقد أن شيئًا كهذا موجود في دلفي (على الأقل لم يكن هناك شيء من هذا القبيل عندما كنت أستخدمه).

لقد بدأت للتو في تجربة استخدام Qt/C++/Qt Creator ويجب أن أعترف بأنني فوجئت بأن هذا "الوغد اللطيف الصغير" كان أسفل أنفي لعدة سنوات وأنا أهتم به الآن.

يبدو (إطار العمل) أنيقًا ومكتمل الميزات (حتى أنه كان من الأشياء التي يفتقر إليها .NET مثل دعم XQuery inbuld).

يبدو أن معظم تطبيقات Qt المكتوبة تتعامل مع الألعاب ثنائية الأبعاد وثلاثية الأبعاد.

أعتقد أن السلبيات هي فقط:الاضطرار إلى معرفة لغة C++ وعدم وجود ميزات DevExpress الجيدة مثل QuantumGrid.

أفكر جديًا في نقل أحد تطبيقاتي البسيطة (عارض صور مثل ThumbsView).

ويتم تشغيله حقًا من نفس قاعدة التعليمات البرمجية.لريال مدريد!

انسَ أمر Kylix وMono وLazarus وFree Pascal.هذا الشيء Qt يتفوق عليهم جميعًا في 10 مرات.

Qt Creator بعيد عن IDE.لكنني آمل في المستقبل أن يضيفوا مصحح أخطاء أكثر قوة، ورؤية ثاقبة للكود وإعادة البناء (على الأقل "إعادة التسمية") وأخطاء مترجم أكثر أهمية.

أوصي بشدة لأي شخص ليس لديه خبرة في Pascal/C++ بأخذ منحنى التعلم Qt.

سأختار دلفي، ولكن ربما يكون ذلك لأنني قمت ببرمجتها من قبل.يبدو أنه لا يزال هناك عدد من الشركات التي تستخدمه، وتقريبًا كل من لديه خبرة تزيد عن 8 سنوات قد واجهه في مكان ما.يبدو أن معظم المبرمجين يمكنهم التعامل مع استخدامه أو على الأقل تعلم لغة باسكال.ناهيك عن حقيقة أن اللغات الأحدث (C#) تعتمد عليها (جزئيًا على الأقل).

اختر دلفي إذا كان اهتمامك يتعلق بسرعة Win32 الأصلية وبيئة RAD من الدرجة الأولى وحجم قابل للتنفيذ.اختر QT إذا كنت بحاجة إلى إطار عمل متعدد المنصات حقًا مقترنًا بسياسة ترخيص مرنة الآن ولا تمانع في التعليمات البرمجية المتضخمة قليلاً.

لقد قمت بنقل برنامج دلفي قديم تحت QT/C++، ويجب أن أقول أن QT هو إطار العمل الأقرب إلى VCL من حيث سهولة الاستخدام والقوة (IMHO)

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

Qt عبارة عن منصة مشتركة، ولا يوجد الكثير في دلفي إذا حسبنا Kylix.Lazarus عبارة عن منصة مشتركة، ولكنها لم تكتمل ميزاتها بعد.

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