الجمعة، 23 يناير، 2015

هل كانت الـBasic هلي اللغة المدللة لـMicrosoft طوال تاريخها ؟

لغة الـBasic هي لغة برمجة غاية في القِدم تم تصميمها في عام 1964 علي يد "John Kemeny" و "Thomas Kurtz"، و اسمها اختصار لجملة "Beginner's All-purpose Symbolic Instruction Code" و التي تعني "الأكواد الرمزية عامة الأغراض للمبتدئين". و انتشرت بين المستخدمين لأجهزة الحواسيب الشخصية الأولي لأنها وفرت لهم آلية سهلة و يسيرة لبرمجة تلك الحواسيب، و كذلك تطوير مهارات التفكير البرمجي لديهم، رغم أن تلك اللغة لم تكن من حيث القواعد و الإمكانيات المتاحة لها فائقة القوة. ثم بدأت الشركات المختلفة بإضافة مميزاتها الخاصة إلي اللغة و إخراج إصدارات خاصة بها لأجهزة الحواسيب التي تنتجها. و كانت Microsoft من ضمن تلك الشركات التي تبنت لغة الـBasic و استغلتها لتجذب نحوها هواة البرمجة.

 


 
كيف دلَّلت Microsoft لغة الـBasic ؟
 
في الفترة الماضية كنتُ كلما تعمقت قليلاً في عالم Microsoft وجدتُ أن لغة الـBasic كانت هي اللغة المدللة لدي Microsoft بالفعل (علي الأقل قديماً)، و حظيت بالكثير من الاهتمام بها و الاستغلال المتنوع لها. ففي البداية قامت Microsoft بإنتاج إصدارة خاصة بها هي altair Basic في عام 1975 لتعمل علي أجهزة حواسيب Altair 8800. و مع مضي الوقت وجدنا أن Microsoft تعمقت أكثر  في تطوير الـBasic و الاعتماد عليها كمنتج له جمهوره الذي يُقبل عليه، و الشركات التي تعتمد عليه لجعل حواسيبها أكثر جذباً للمشترين.
 
و هكذا نجد أنه مع مرور الزمن أعطت Microsoft للغات البرمجة التي بنتها علي الـBasic إمكانية الاستخدام (بشكل أو بآخر) في أكثر من مجال، فلبرمجة تطبيقات سطح المكتب هناك النسخة الكاملة من لغة Visual Basic (أقصد بهذا عائلة لغة الـVisual Basic حتي الإصدارة VB6، و كذلك لغة الـVisual Basic .NET التي يمكن اعتبارها -و لو بكثير من الجهد- امتداداً تطويرياً لنفس العائلة)، و قد حققت الـVB انتشاراً كبيراً للغاية حتي أنها أصبحت مرادفاً منطقياً لإنتاج برمجيات سطح مكتب ذات واجهة رسومية GUI لنظام الـWindows، رغم أن الكثير من المبرمجين يقولون أن بيئة البرمجة المتكاملة تسهل الأمور إلي أقصي درجة، بينما قواعد اللغة نفسها ليست قوية بما فيه الكفاية [1].

 
 
فكان الناتج الطبعي عن هذا أن تقوم Microsoft بتطوير تلك اللغة بإضافة قواعد تساهم في زيادة القوة، و ربط تلك اللغة مع بقية لغات البرمجة التي تنتجها Microsoft بإطار عمل واحد هو الـ.NET. و هكذا نشأت الـVisual Basic .NET.
 
و هناك VBscript، التي يمكن ربطها بصفحات الـHTML تماماً كما نفعل مع لغة الـjavascript، و بالتالي يمكن استخدامها لبرمجة صفحات الشبكة. صحيح أن المتصفحات الشهيرة -حسبما أعلم- لا تدعم VBscript كما يدعمها متصفح Internet Explorer؛ بسبب أن الأخير هو المتصفح الخاص بـMicrosoft و بالتالي فإنه من الطبعي أن يدعم الـVBscript، بينما صارت المتصفحات الأخري تركز علي دعم الـjavascript التي صارت أشبه ما تكون بمعيار قياسي في عالم بناء مواقع الشبكة. صحيح أن هناك إضافة لمتصفح FireFox تجعله يتعامل مع الـVBscript إلا أن هذا النوع من الدعم ليس كالدعم المُدمَج مع المتصفح نفسه؛ لأن الأخير هو فقط الذي يشجع المبرمجين و المطورين علي الاعتماد علي لغة البرمجة المُدمَجة مع المتصفحات الشهيرة.
 
و بالإضافة إلي بناء مواقع الشبكة فإنه يمكن استخدام VBscript لكتابة بريمجات إدارة الأنظمة System Administration. كبديل للـBatch files الأصعب بكثير من VBscript و أقل مقروئية
Readability و مكتوبية Writability منها.

أما لبرمجة بريمجات scripts داخل التطبيقات المختلفة (كلغة مُضمَّنة embedded، مثل برامج الـoffice علي سبيل المثال) فهناك VBA (أي Visual Basic for Applications). و التي تساعد المستخدمين الذين يعتمدون علي حزمة تطبيقات المكتب Microsoft Office علي أتمتة الكثير من الأمور التي تستهلك الوقت و الجهد، و كذلك فهناك تطبيقات أخري تدعم (و لو علي نحو جزئي) الـVBA مثل ArcGIS و AutoCAD و CATIA و WordPerfect.
 
و حديثاً أصدرت Microsoft نسخة من الـBasic مخصصة لتعليم الأطفال و المبتدئين البرمجة بشكل جذاب، تسمي Microsoft Small Basic. و التي من خصائصها أن فيها 14 كلمة مفتاحية فقط (و هو مُعدَّل يمكن استخدامه لمعرفة مدي تعقيد النحو syntax الخاص باللغة إلي حد جيد). هذه اللغة تم تقديمها في البداية في أكتوبر من عام  2008 و تم إصدارها في يونيو  لعام 2011. و الهدف من ورائها أن تعمل كمقدمة إلي عالم البرمجة للصغار من سن الثامنة و للمبتدئين بشكل عام، بحيث يتعملون من خلالها أساسيات البرمجة بسهولة و يسر، ثم يكون بإمكانهم بعدها أن يتعمقوا في المجال البرمجي باستخدام الأدوات المتقدمة مثل Visual Studio Express، و الذي سيقدم لهم باقة من اللغات الإنتاجية (VB.NET و #C و ++C)، و كذلك إطار عمل الـ.NET قوي الإمكانايات.


 

لماذا أجد أن هذا أمر متميز ؟
 
هذا الأمر يعجبني للغاية لأنه يعطي لمن يتعلم قواعد الـVB أن يستخدم ما تعلمه في العديد من المجالات، صحيح أنه يحتاج لمعرفة بعض الفروقات بين كيفية استخدام اللغة في المجالات المختلفة، و لكن هذا أقل صعوبة بكثير جداً من تعلم لغة مختلفة بالكلية. و بالتالي يزيد هذا من سرعة تعلم المبرمج للمجالات الجديدة، كما أن زيادة خبرة المبرمج في اللغة عامة الاستخدام تعود بالنفع علي كل المجالات التي يستخدمها فيها، أما في حالة استخدام لغات مختلفة لكل مجال من المجالات فإنه لرفع خبرته في كل تلك المجالات يحتاج إلي رفع خبرته بكل تلك اللغات التي يستخدمها و هذا أكثر صعوبة كما هو واضح.
 
شعار "Gambas 3"
في الواقع فإنني أجد أن الـBasic ليست مدللة من جانب Microsoft فقط، بل من جانب العديد من شركات تصنيع الأدوات البرمجية، مثل xojo و بيئة تطويرها التي تعتمد علي لغة برمجة تنتمي لعائلة لغات الـBasic. و Gambas التي تعطي المبرمج بها إمكانات كبيرة و ارتباطات بمكتبات متعددة (و لكنها للأسف تظل مرتبطة بالأنظمة شبيهة اليونكس unix-like).



هل يمكن للـ#C أن تكون هي اللغة المدللة الجديدة عند Microsoft ؟
 
لا أعلم بالتحديد، و لكن تركيز Microsoft في الدعاية علي الـ#C يوحي بذلك، إلا أنه لو كان دعم الـVB.NET و الـ#C علي قدم المساواة فإن الأولي ستربح في نظري في اختبار التدليل بلا شك؛ لأن لديها تركة تجعل الكفة تميل لصالحها، و يكفي أنه يمكنك كتابة بريمج VBscript يعمل علي الـWSH علي كافة أنظمة Microsoft التي في الخدمة الآن، بينما لا يمكنك فعل المثل مع الـ#C. و الحل الوحيد لجعل الـ#C تربح المقارنة (إن كان يهمك أن تجعلها تربح) هو إقناع Microsoft بعدم دعم الـVB في التقنيات الجديدة التي تبنيها، و لكن لا أظن أنه من الممكن إقناع Microsoft بهذا الأمر علي الأقل في الفترة الحالية؛ لأنها لا تريد خسارة زبائنها من المبرمجين المحبين لتلك اللغة و الذين كانوا حتي وقت قريب هم أغلبية المبرمجين بإطار الـ.NET.

أما بخصوص تدليل الشركات الأخري للـ#C فإن الانتشار المتزايد لها جعل شركة مثل xamarin تقوم بإتاحة الفرصة للمبرمجين بها إلي استهداف أشهر أنظمة التشغيل بالبرمجيات المكتوبة بها، فصار بالإمكان أن يتم تشغيل نفس الأكواد المكتوبة بالـ#C علي أنظمة الـWindows و الـMac OS X و الـiOS و الـAndroid.



صحيح أن هذا الدعم من وجهة نظري ليس كالدعم الرسمي الذي تقدمه Microsoft (بصفتها هي الأم الشرعية للـ#C)، إلا أن هذا لا يمنع من كون xamarin تقوم بخطوة غاية في الأهمية في سبيل جعل الـ#C أكثر جذباً للمبرمجين الذين لا يريدون التقيد بالمنصات و أنظمة التشغيل التي تنتجها شركة واحدة، و يريدون لبرامجهم أن تكون عابرة للمنصات. و لكن دعونا لا ننسي أن Xamarin تدعم كذلك لغة الـVB.NET بدرجة قوية (لا أعلم درجة دعمها لها، و لكن لا أظن أنها تبلغ نفس الدرجة التي تدعم بها الـ#C) !


الخاتمة

سواء أكانت #C هي الابنة المدللة الجديدة لـMicrosoft أم لا، فإن ذلك لا يمنع أن الشركة قامت من الأصل علي أكتاف الـBasic، و استطاعت عبر سنوات حياتها أن تجعل حياة مستخدمي تلك اللغة أكثر سهولة و يسرا، عن طريق توفير الأدوات التي تتيح لهم استغلال اللغة التي احترفوها في كثير من المجالات المختلفة، و هو أمر أري أنه من الممتاز أن تكرره الشركات التي تنتج لغات برمجة عالية المستوي high level عامة الأغراض general purpose قدر الإمكان.

 
 
-------------------------------
[1] راجع مقدمة كتاب "Visual Basic للجميع، نحو برمجة كائنية التوجه"، تأليف "تركي العسيري"، الطبعة الأولي
2002

 
 
تم نشر هذا المقال أول مرة علي موقع Drolint.com و أعدتُ نشره هنا مع بعض التصرف؛ لأن الموقع غير متوافر حالياً فلم أنسخ المقال منه بل اعتمدتُ علي مسودته عندي، و ربما تختلف المسودة قليلاً عن المقال المنشور هناك. و قد تم كتابة هذا المقال قبل خروج إصدارة Visual Studio 2015 و الإعلان عن كون تطبيقات ASP.NET 5.0 ستعمل علي أنظمة Mac OS X و GNU\Linux، بالإضافة إلي فتح مصدر جزء من مكتبة الـ.NET، و هذه مسألة يجب التنبه لها عند قراءة المقال لما تحمله الإعلانات السابقة من دلالات بالغة ربما أتحدث عنها فيما بعد بمشيئة الله تعالي.

ليست هناك تعليقات:

إرسال تعليق