27-10-12, 04:20 PM
كاتب الموضوع : عبد العظيم بخاري
الفوارق الأشيع بين لغات .NET الأربع (C#, Visual basic , C++/CLI, F#)لغة C# كما نعلم هي لغة برمجية تم تصميمها خصيصاً من اجل العمل تحت بيئة الدوت نت. في حقيقة الأمر هناك اكثر من 50 لغة برمجية موجودة من اجل كتابة التطبيقات لل.NET .. منها Haskell و Prolog و Ruby و Oberon و Delphi و Pascal و Pizza و COBOL و Smalltalk و Eiffel ....الخ
صممت مايكروسوفت ايضاً لغات خاصة بها للدوت نت مثل لغة C# و الفيجوال بيسك و C++/CLI و J# و Jscript.NET و F#.
مع كثرة هذه اللغات إلا أن لكل لغة محاسن ومساوئ . فبعض الأمور يمكن عملها بشكل اسهل مع لغة معينة لكن تكون صعبة ومعقدة في لغات اخرى ..
دائماً الclasses هي نفسها في اطار عمل الدوت نت لكن النمط الكتابي للغة قد يخرج لنا مميزات متنوعة من اطار العمل Framework.. فنحن امام كنز تتسابق لغات البرمجة لعرضه والاستفادة منه بالشكل الأفضل .. فمثلاً جملة using في C# تسهل استعمال تطبيق الobjects للانترفيس IDisposable , اما في لغات اخرى فتحتاج لكودات اكثر لعمل نفس الوظيفة.
فهذه المقالة ستعرض لك اهم الفوارق البرمجية بين لغات الدوت نت الأربع (C#, Visual basic , C++/CLI, F#) حيث ستشرح لك كيفية تحويل التطبيقات من لغة معينة إلى اخرى فاذا ما واجهت كود ما مكتوب بالفيجوال بيسك أو C++/CLI يمكنك بسهولة اعادة كتابته بالC# والعكس صحيح.. ايضاً سنتطرق إلى بعض المميزات البرمجية في كل لغة مع ذكر امثلة سهلة الفهم..
محتويات المقالة:
- Namespaces.
- تعريف الأنواع.
- Methods.
- Arrays.
- الجمل الشرطية.
- حلقات التكرار.
- معالجة الException.
- الوراثة.
- تحرير الموارد.
- Delegates.
- Events.
- Generics.
- استعلامات LINQ.
- دمج كودات الmanaged مع الكودات المحلية native (unmanaged) في C++/CLI.
في هذه المقالة افترضت أنك تعرف C# سابقاً .. لأن المقالة مخصصة حول اعطائك معلومات عامة عن كيفية تحويل افكار الC# التي تعرفها إلى اللغات الاخرى .. لذلك ليس من الضروري معرفة الفيجوال بيسك أو C++/CLI أو F# , وايضا لا تنتظر مني ان تتعلم تلك اللغات في هذه المقارنة البسيطة..
كما هو معروف فإن لغات الدوت نت الأكثر استعاملاً من مايكروسوفت هي C# و الفيجوال بيسك . فالاولى تم تصميمها حديثاً وتم وضع افكار كثيرة بها مقتبسة من C++ و Java و Pascal و لغات اخرى..
الفيجوال بيسك هي الإبن الروحي للVB6 حيث تم اضافة الكثير من مميزات البرمجة الكائنية إليه ليغدو في النهاية لغة جديدة تشبه في شكلها الVB6 لكنها ذات جوهر مختلف.
C++/CLI هي امتداد وتوسعة للغة C++ . الميزة الأضخم لها هو القدرة على خلط كودات native مع كودات managed , فيمكنك تطوير تطبيقات C++ المكتوبة بكودات native ودعمها بالوظائف التي تقدمها بيئة عمل الدوت نت . ويمكنك ايضاً اضافة الclasses التي للدوت نت إلى مكتبات native لذلك يمكن استعاملهم مع اللغات الاخرى مثل C#. ايضاً يمكنك كتابة تطبيقات كاملة مبنية على كودات managed باستعمال C++/CLI.
F# هي لغة جديدة تمت اضافتها مؤخراً بشكل رسمي في الفيجوال ستديو .. هذه اللغة تعتمد على البرمجة الوظيفية functional programming بشكل اساسي اضافة لدعمها للبرمجة كائنية التوجه التقليدية مما يجعلها تعمل جيدا مع الدوت نت بطبيعة الحال .. وحتى تحصل على بعض المعلومات حول معنى البرمجة الوظيفية في F# فالفنكشنات يمكن استعاملها كقيم ! وهذا يجعل من السهل انشاء واعدادا وتشكيل وتنظيم الوظائف من فنكشنات متعددة والقيام بمهام function pipelining حيث يتم ربط الوظائف (الفنشكنات) مع بعضها البعض ..
يمكن اعتبار F# اداة مثالية لطلاب الكليات العلمية وبالاخص في مجال الرياضيات .
من الأمثلة المشهورة على اللغات التي تستعمل مبدأ البرمجة الوظيفية لغة MATLAB..
لقراءة بقية المقالة من هذا الرابط
http://www.flyarb.com/DotNet.aspx
(وضعته بسبب عدم اتساع الموضوع لبقية المقالة)
اخوكم عبد العظيم بخاري