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

الصفحات

الأحد، 1 يونيو 2014

هل يجب أن أتعلم VB6 أولا قبل VB.NET؟


س: هل يجب أن أتعلم VB6 أولا قبل VB.NET؟ 

ج: لا.. الأفضل البدء مباشرة بفيجوال بيزيك دوت نت، للأسباب التالية:
1- VB6 ظهرت عام 1998 أي منذ أكثر من 16 عاما، تطور فيها نظام التشغيل من ويندوز 98 إلى ويندوز ME إلى ويندوز 2000 إلى ويندوز XP إلى ويندوز فيستا إلى ويندوز 7 إلى ويندوز 8.. وقد أوقفت ميكروسوفت دعم VB6 نهائيا، حتّى إنها أزالت المعالج السحري Wizard الذي يقوم بتحويل مشاريع VB6 إلى مشاريع VB.NET منذ إصدار دوت نت 2010.

2- كثير من المهام التي يجب أن يقوم بها المبرمج في VB6 يحتاج فيها إلى استخدام دوال API أو يبحث عن أدوات خاصة ومكتبات كود جاهزة كتبها آخرون.. بينما في VB.NET تقوم مكتبة فئات إطار العمل .NET Framework بمعظم هذه المهام بصورة سهلة وبسيطة.

3- الذين يتعلمون VB6 حتى الآن يرون أنها أسهل من VB.NET.. هذا صحيح إذا نظرت إلى قلة إمكانيات VB6 التي تجعلك تلم بكل جوانب اللغة في فترة قصيرة.. لكن الحقيقة أنك تستطيع أن تتعلم من VB.NET في وقت مماثل إمكانيات أكبر بكثير وبنفس مستوى السهولة، إذا أهملت بعض الجوانب المتقدمة.

4- الذين يتعلمون VB6 حتى الآن يظنون أن هذا تمهيد يجعلهم ينتقلون إلى VB.NET بسهولة.. هذا غير حقيقي، بل على العكس، تعلم VB6 يجعل الانتقال إلى VB.NET أصعب، لأن معظم دوال VB6 الخاصة بالنصوص والمصفوفات والتواريخ والتحويل بين الأنواع وغيرها قد صارت مهجورة الآن، ويجب تعلم ما يناظرها في إطار العمل، مع مراعاة أن دوال VB6 تستخدم الأساس 1 في التعامل مع خانات المصفوفات وحروف النصوص، بينما تستخدم فئات إطار العمل الأساس صفر.

5- بيئة VS6 (التي تعمل فيها VB6) نفسها محدودة، ومحرر الكود فقير في إمكانياته مقارنة بمحرر كود VS.NET، لدرجة أنك تحتاج إلى إعداد Patch لجعل المنزلق الرأسي Vertical Scrollbar في محرر كود VB6 يستجيب لحركة عجلة الفأرة Mouse Wheel.. نعم VB6 أقدم من عجلة الفأرة!!

6- VB6 ليست لغة برمجة موجهة بالكائنات OOP بالكامل، فإنشاء الفئات Classes والواجهات Interfaces فيها محدود القدرات، ولا تدعم الوراثة Inheritance.. على عكس VB.NET.

7- VB6 محدودة في تعاملها مع أنواع قواعد البيانات المختلفة، والكود المكتوب بتقنية ADO لا يمكن تحويله إلى تقنية ADO.NET بدون الكثير من المجهود اليدوي.. والأسوأ من هذا أن تقنية ADO.NET نفسها صارت تقنية قديمة، وتحتل الصدارة الآن تقنية Entity Framework (ونسختها المختصرة LinQ To SQL).

8- حتى تصميم الواجهة بـ VB6 صار متخلّفا بجيلين، فقد تجاوزت دوت نت تقنية نماذج الويندوز Win Forms وتوقفت عن تطويرها، وتدعم الآن تقنية WPF لتصميم نوافذ المشروع باستخدام لغة توصيف خاصة تسمى XAML، تمنح قدرات مدهشة في تغيير شكل الأدوات وتحكما كاملا في كل جزء من أجزائها، وتوفر الوقت والجهد على المبرمج في التصميم باستخدام أنماط التنسيق Styles وقواميس الموارد Resource Dictionaries والقوالب Templates، مع قدرات جديدة في التحريك والتجسيم واستخدام الرسوم والصوت والفيديو، كما أنها تدعم أجهزة الإدخال الحديثة مثل شاشات اللمس Touch Screens وقلم اللمس Stylus وتأخذ في اعتبارها أي تطور مستقبلي في هذا المجال مثل أجهزة رصد الصوت والحركة.. فأي وجه للمقارنة بلغة برمجة لا تستطيع من خلالها رصد حركة عجلة الفأرة؟

 

لكل ما سبق لا أنصح أحدا بتعلم VB6، فهذا يجعله متخلفا بجيلين عن أحدث التقنيات البرمجية المستخدمة اليوم.

 

ملحوظة:

هناك ميزة واحدة في VB6 عن دوت نت، وهي عدم حاجة البرنامج إلى إطار العمل .NET Framework و المترجم الفوري JIT Compiler، فعلى الرغم من كل مزاياهما، فإن العيب الرئيسي هو أن الملف التنفيذي .EXE لمشاريع دوت نت ليس ملفا تنفيذيا حقيقيا، وإنما هو ملف مكتوب بلغة ميكروسوفت الوسيطة MSIL ويمكن لبعض البرامج مثل Reflector أن تستعيد منه الكود الأصلي للمشروع كاملا، مما يفرض على المبرمج جهدا إضافيا في حماية الكود الخاص به، مثل استخدام بعض البرامج لتهويش الكود Obfuscation، والتي مهما كانت كفاءتها، فلن تحمي الكود بصورة تامة، وإنما ستجعل فهمه أصعب والاستفادة به في مشروع جديد شبه مستحيلة.. وهذا على العكس من الملف التنفيذي لمشاريع VB6، الذي يترجم إلى لغة الآلة (هناك تفاصيل هنا عن اعتماد الملف التنفيذي على VB Runtime لكن سنتجاهلها لأن هذا ليس مجالها)، والبرامج التي تستطيع كسر هذا البرنامج تستعيد منه الكود بلغة التجميع Assembly، وهي أصعب وأعقد وتحتاج مبرمجين محترفين لاستخدامها في كسر حماية البرنامج.. لمثل هذا قد ألجأ إلى كتابة مشروع بـ VB6 إذا كان يحتوي على تشفير أو بيانات حساسة، مع الأخذ في الاعتبار أن هذا أيضا لا يغني عن تشويش الكود، لأن النصوص التي توضع في المتغيرات في الكود، وأسماء النماذج والدوال، تظهر كما هي في كود الأسمبلي ويمكن من خلالها الوصول إلى المناطق المرغوب في حمايتها من الكود.

وفي كل الأحوال: لا يوجد برنامج على نظام الويندوز لا يمكن كسره، لكن الأمر قد يكون أقل صعوبة مع برامج دوت نت!

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

  1. مقارنة ممتازة بين اللغتين
    ولكن لى عندك طلبان
    1- وهذا على العكس من الملف التنفيذي لمشاريع VB6، الذي يترجم إلى لغة الآلة
    كيف يمكن عمل الملف التنفيذي لمشاريع VB6 بحيث لاتظهر الكلمات العربية بشكل غريب؟
    2- أود أن توضح لكل من هوى البرمجة بلغة ما أن علم البرمجة وفنها لا يعتمد على نوع اللغة
    وانما هو علم وفن وهواية لاعلاقة لها بلغة البرمجة
    تمامآ كأى علم آخر على سبيل المثال مشروع انشاء مدينة جديدة فى الصحراء
    يحتاج مشروع كهذا الى أبحاث المهندسين والفنيين المعماريين بدءآمن التخطيط العام للمدينة وربطها بالمدن حولها ثم ...... ثم....... ثم......... وحتى التفاصيل النهائية للمشروع
    أبحاث مشروع كهذا بعد أن تمت كاملة هل من مشكلة بعد ذلك ان كتبت الأبحاث بالانجليزية أو بالفرنسية أو بأى لغة أخرى ؟ أم أن الأصل فى الأبحاث نفسها
    هكذا البرمجة. الأصل فى الأبحاث البرمجية التى تصل ببرنامجك الى المطلوب منه
    وبعد ذلك ان تم كتابتها بلغة الVB أو بلغة الC أو بأى لغة أخرى فما ذلك بمشكلة

    ردحذف

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