عملياً لا يمكنك تصنيف Visual Basic.NET لغة هواة. وطبعاً لدخول .NET عليها سبب كبير. العديد من تطبيقات اليوم العملية يتم بناؤها باستخدام VB.NET (كبرمجة ASP.NET مثلاً). ما تبقى من اللغة هو بعض روافد العبارات الخاصة بها. VB.NET الآن هي لغة OOP كاملة ولا تقل في مقدرتها عن أية لغة .NET أخرى. كمقارنة صرفة، ننظر إلى VB.NET (وحتى VB6 في بعض النقط) وننظر إلى BASIC لنجد أن:
1- VB.NET تستخدم مترجم لتوليد ملف تنفيذي مستقل (تقريباً). BASIC تستخدم مفسر بسيط لا يحتاج إلى أية عمليات تجهيز أو إعداد، ويعمل على الـ code المكتوب بشكل مباشر. VB6 كانت تغش بوضع صيغة وسيطة للـ code في الملف التنفيذي ومن ثم تشغيل المفسر إياه لتنفيذ العمليات المحفوظة في الـ exe (على ما أذكر كان vbrun32.dll هو هذا المفسر).
2- VB.NET تعمل على إطار .NET بشكل رئيسي، حيث كل شيء منظم ضمن namespaces وعدد لا متناهي من الـ classes. BASIC لا تحتوي هذه المفاهيم التنظيمية أبداً. أي ببساطة يمكنك الإلمام بلغة BASIC، أما الإلمام بـ VB.NET فهو ضرب من المستحيلات.
3- تماشياً مع طبيعة .NET، فإن VB.NET الآن تتعامل بمبدأ السماحيات كـ public وما إلى ذلك. VB6 قدمت هذه المفاهيم بشكل مبسط، لكن BASIC لا تحوي مثل هذه المفاهيم أبداً.
4- VB.NET تعتبر لغة strongly typed، أما BASIC فهي weakly typed لدرجة أن الإعلان عن المتغير حتى لا يتطلب منك كتابة نوع المتغير أساساً. فقط الـ strings يتم تمييزها بمحرف الـ $ في نهاية اسم المتغير.
5- نظام ترقيم الأسطر في BASIC (10، 20، الخ) ليس معتمداً في VB.NET. وهو نظام (وإن كان مزعجاً) يساعد على تعليم ترتيب تنفيذ التعليمات.
6- دوال BASIC الأصلية كـ SCREEN، CIRCLE، و PRINT غير منطقية في VB.NET الآن لأنك تحتاج إلى تحديد الكثير من الأمور أولاً قبل أن تستطيع رسم أي شيء في مكان ما.
7- وإن كان المبدأ غريباً، لكن VS.NET ككل لا يمكنك اعتباره أداة user-friendly لأطفال بأعمار 8 سنوات أو أقل. محرر نصوص BASIC (على غبائه كما في QBASIC مثلاً) مباشر جداً ولا يتطلب منك التعرف على أي شيء كـ Solution Explorer وما إلى ذلك.
فقط من هذه المجموعة من النقاط، يمكننا ملاحظة كم المعلومات التي سيضطر الطالب لتعلمه قبل أن يستطيع تنفيذ برنامج VB صغير. الـ namespaces، مفهوم الـ OOP، الإجراءات (وقد تضطر للدخول في الوراثة كذلك)، أنواع المتغيرات، الـ overrides. في BASIC، يمكنك فوراً البدء في تعلم مفاهيم البرمجة الأساسية (سير البرنامج، المتغيرات، الدوال، الدخل والخرج) دون الحاجة للتعرف على المفاهيم المتقدمة للـ OOP. أي أن منحنى التعلم سيكون أكثر صعوبة في حالة VB.NET منه في BASIC. طبعاً بالنظر إلى شياطين اليوم والذين يسمونهم أطفالاً فإنني أعتقد أنهم قادرين على تعلم كل شيء حتى القنابل النووية، لكنني أتكلم بعيداً عن مستوى الاستيعاب الحالي في المدارس. كي أبقى ضمن الموضوع، أذكـّـر القراء أن لغة جيم تتشابه بكثير من النواحي مع BASIC من ناحية تبسيط المفاهيم، وإن كانت أعقد قليلاً من BASIC. التخلص من اللغة الإنجليزية يساهم في تسهيل عملية التعليم للأطفال العرب وتخفيض قسوة منحنى التعليم، وفي هذا هي تتفوق على BASIC.
In Jordan they use a version of BASIC called QBASIC as a programming language in the text books. I don't know how is it in the other countries, but in Jordan this course is given to high school students.
من سار على الدرب وصل, من جد وجد...
بس عتبك على اللي بيسمع
في سورية، في السنة الأولى من المرحلة الثانوية يأخذ الطلاب فصلين عن البرمجة، الأول و اسمه "البرمجة"، يعلم الطلاب مبادئ عن لغات البرمجة و بأمثلة باللغة العربية و باللغة الإنكليزية بلغة Pascal (و يشمل أيضاً مناقشة الخورازمية، تاريخ لغات البرمجة، ...)، و أما الفصل الثاني فهو عن صناعة البرمجيات و يحمل اسم "صناعة البرمجيات" (و يشمل : حقوق الملكية، الفوارق بين صناعة البرمجيات و الصناعة العادية، البرمجيات الحرة و فوائدها، ....)، و أما في السنة الثانية من المرحلة الثانوية يأخذ الطلاب لغة HTML
So it means that in both countries only the Secondary school students take a programming course, and I guess they can deal with some English keywords afterall.
How is it in Egypt ?
من سار على الدرب وصل, من جد وجد...
بس عتبك على اللي بيسمع