أهم أقسام المدونة

الصفحات

الأحد، 30 ديسمبر 2012

أي اللغات أفضل وأقوي في لغات الدوت النت؟


س: أي اللغات أفضل وأقوي في لغات الدوت النت؟


ج: كل لغات دوت نت تملك مزايا إطار العمل وتستخدم مكتبته الضخمة من الفئات، وكل هذه اللغات تترجم في النهاية إلى اللغة الوسيطة IL، وبالتالي فإن كفاءة تنفيذ البرامج المكتوبة بها واحدة، ويبقى التفصيل بينها مسألة ترجع للمبرمج نفسه.. فمن يألفون صياغة C++ سيفضلون C# ومن يجيدون الجافا سينتقلون إلى J# ومن يستريحون لصياغة فيجوال بيزيك سيفضلون VB.NET، ومن ما زالوا يحبون باسكال سيستخدمون دلفي دوت نت.. وهكذا.. أما من لا تعجبه كل هذه اللغات، فيمكنه كتابة لغة جديدة خاصة به وإضافتها إلى دوت نت!

الجدير بالذكر أن هناك بعض المزايا القليلة تميز بعض اللغات عن الأخرى..

فلغة سي شارب على سبيل المثال تتيح استخدام المؤشرات Pointers للتعامل مع الذاكرة مباشرة، ولكن هذا الكود يسمى في دوت نت بالكود غير المدار Unmanaged code ولا يُنصح باستخدامه.. خاصة أن إطار العمل يتيح لكل لغات دوت نت نوعا من المؤشرات الآمنة مثل الفئة IntPtr، كما تتيح بعض فئات إطار العمل التعامل مع الذاكرة بطريقة غير مدارة.. كما يمكن اعتبار أي كائن مؤشرا للذاكرة، لأن المتغير المعرف من الفئة يحمل مرجعا للذاكرة.. وبهذا المبدأ البسيط شرحت في كتاب من الصفر إلي الاحتراف كيف يمكن إنشاء Linked List باستخدام الفئات، ودون استخدام المؤشرات كما هو متبع عند إنشائها في C++.

أما فيجيوال بيزيك، فتمتاز بسهولة ووضوح الكود المكتوب بها، ويقدم محرر الكود Code Editor والمصحح Debugger تسهيلات كثيرة للمبرمج لاكتشاف الخطأ وتصحيحه.. كما تمتلك فيجوال بيزيك مكتبة كاملة من قوالب الكود Modules قادمة من VB6 معظمها له مثيل في إطار العمل، كما تمتلك فيجوال بيزيك دوت نت نطاقا اسمه My فيه معظم الوظائف البرمجية التي يكثر احتياج المبرمج إليها، وبعضها لا يمكن تنفيذه من خلال إطار العمل بسهولة.

أيضا يمكن في فيجوال بيزيك بسهولة إنشاء برنامج وحيد النسخة Single Instance، وهو ما يحتاج لكود معقد في سي شارب باستخدام العمليات Processes، إلا لو قام المبرمج باستيراد نطاق فيجوال بيزيك في برنامج سي شارب، واستخدم الفئة WindowsFormsApplicationBase الخاصة بفيجيوال بيزيك.

كما أن استعلامات LinQ تملك بعض التسهيلات الإضافية لا توجد في سي شارب، ولكن يمكن أداء نفس الوظائف باستدعاء الدوال الإضافية Extension Methods المعرفة في الفئة Enumerable.

بشكل عام: لا يوجد شيء يمكن فعله في سي شارب ولا يمكن فعله في فيجوال بيزيك، والعكس صحيح أيضا.

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

هناك تعليق واحد:

  1. هناك أيضاً eiffel .net التي تتيح استخدام الوراثة المتعددة مع فئات إطار الـ.net (رغم أن إطار العمل نفسه في الأصل لا يُتيح هذا !).

    ردحذف

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.