لا شيء في هذا العالم يمس قلوب المبرمجين أكثر من أدوات البرمجة. VC، DELPHI، JAVA... هذه الأسماء المبهرة لا تشغل حياة المبرمجين فحسب، بل يبدو أيضًا أنها أصبحت نوعًا من الاعتقاد. ولكن مع حلول القرن الجديد، واجهت هذه المعتقدات تحديات كبيرة مرة أخرى. مايكروسوفت، الأسد الذي كان مرهقًا ومنزعجًا من الحكام والمتسللين، تعهد بالحفاظ على التاج على رأسه، وبذل قصارى جهده، وخرج بإستراتيجية مهارة .NET الخاصة به. باعتبارها لغة التطوير الأساسية لـ .NET، ظهرت لغة C# بشكل طبيعي. يتعين على المبرمجين اتخاذ خيار مؤلم، من سيتبعون؟ لمعرفة الإجابة، علينا إجراء بعض المقارنات والتوقعات.
إذا وضعنا جانبًا جميع العوامل غير التقنية، فإن لغة C# هي بلا شك أفضل لغة برمجة تم إنشاؤها على هذا الكوكب، فهي تحتوي تقريبًا على أحدث النتائج في مجال تطوير البرمجيات وأبحاث هندسة البرمجيات. موجه للكائنات، والنوع، وتكنولوجيا المكونات، وإدارة الذاكرة التلقائية، ومعالجة الاستثناءات عبر الأنظمة الأساسية، والتحكم في الإصدار، وإدارة أمان التعليمات البرمجية... لا يمكنك العثور على كل هذه الميزات في لغة أخرى. على الرغم من أنه كما لاحظ الكثير من الأشخاص، عندما أدرج الميزات المذكورة أعلاه، يفكر الناس دائمًا في JAVA، لكن C# تذهب إلى أبعد من ذلك. لكن الحقيقة هي أن العوامل غير التقنية غالبًا ما تحدد مستقبل المنتج، خاصة في تاريخ برامج الكمبيوتر، وقد هُزمت المنتجات المتميزة تقنيًا، مثل OS/2، وMac OS، وUNIX، وما إلى ذلك، أمام الجمال. من ويندوز. ولكن هذه المرة، يبدو أن دور مايكروسوفت قد تغير من دور ثوري عارٍ إلى مالك عقار عجوز متسلط. إذا تغيرت الأمور حقًا، ألن يولد هذا الطفل في لغة C# في الطفل الخطأ؟ ربما لم يكن الوضع سيئًا للغاية، ففي نهاية المطاف، الجمل النحيل أكبر من الحصان، وقد تم تقديم لغة C# إلى منظمة التقييس بمجرد أن تصبح معيارًا دوليًا، فلا يمكن معرفة ما إذا كان هناك أي بطل مثير للحكة (ربما مايكروسوفت نفسها). سوف زرعها إلى منصات أخرى. في هذه الحالة، ستكون جافا في ورطة. نظرًا لأن مستخدمي JAVA هم في الأساس مطورو خدمات الشبكة ومطورو برامج الأجهزة المضمنة، فإن برامج الأجهزة المضمنة ليست هي المكان الذي يتم فيه تشغيل C#، فيما يتعلق بخدمات الشبكة، فإن التجميع الفوري لـ C# وحلول ذاكرة التخزين المؤقت للتعليمات البرمجية المحلية هي كذلك أقوى من جهاز JAVA الظاهري وله مزايا أداء مطلقة. علاوة على ذلك، بمجرد أن تصبح C# معيارًا عامًا مثل C++، يمكن لمطوري البرامج توفير رسوم ترخيص JAVA ولا داعي للقلق بشأن أن يصبحوا عبيدًا لشركة Microsoft، وقد لا يكون لدى أولئك الذين يعارضون Microsoft وأولئك الذين يدافعون عن استقلال الشركة المصنعة نفس المشكلة. قد يكون هذا هو بالضبط ما تبحث عنه مايكروسوفت.
إذا تمت مقارنة المنافسة بين C# وJAVA في مجال خدمات الشبكة بالمنافسة على التفوق الجوي في المستقبل، فإن المنافسة بين C# وأدوات التطوير السريع التقليدية ذات الأغراض العامة - VB وDELPHI وما إلى ذلك ستكون تفوقًا. معركة بالأيدي. ولعل المبرمج الأكثر بؤساً هو مبرمج VB. في Microsoft، يشبه VB كلينتون الذي ترك منصبه، ولم يفقد كل مجده فحسب، بل أصبح مضطرباً أيضاً. فكر في الأمر، يجب تحويل المشاريع المكتوبة بلغة VB6 إلى تعليمات برمجية مستندة إلى .NET باستخدام أداة تحويل قبل أن يتم نقلها إلى VB7، وهو أمر لا يمكن التعرف عليه تقريبًا. نظرًا لأن VB7 يتبع مواصفات اللغة العامة (CLS) التي تم إنشاؤها لتلبية احتياجات .NET، فقد تمت إضافة جميع الميزات التي كانت متوفرة في الأصل فقط في C++ وJAVA واللغات الأخرى تقريبًا، ولكن بناء الجملة متوافق مع النص الأصلي. إذا كانت هذه هي المرة الأولى التي ترى فيها الكود المحول لمشروع VB6 القديم الخاص بك في VB7، فكن حذرًا من قلبك! لذا قم بذلك ولا تخبرني أنك ستتقاعد. إن وضع DELPHI ليس أفضل كثيرًا، فالمهارة الخاصة الأصلية هي إنشاء التطبيقات بسرعة وبشكل جيد، ولكن انظر الآن إلى الإصدار الأحدث من VS.NET Beta 1، وستشعر أنك مألوف جدًا، مع العديد من قوائم الخصائص والمكونات... من الذي يصنعها. أنت فقير؟ حتى كبير المصممين لا يستطيع دعمك.
في الواقع، كانت لغة C++ هي المسيطرة الحقيقية بين لغات البرمجة لسنوات عديدة. تستخدم جميع أنظمة التشغيل ومعظم البرامج التجارية لغة C++ كلغة التطوير الرئيسية. الغالبية العظمى من مبرمجي JAVA هم أيضًا من المتحمسين لـ C++، ويعود نجاح PHP أيضًا إلى بناء الجملة المشابه لـ C++. في مجالات أنظمة التشغيل، وبرامج تشغيل الأجهزة، وألعاب الفيديو، وما إلى ذلك، ستظل C++ تحتل مكانة مهيمنة لفترة طويلة، وفي تطوير أكبر عدد من البرامج التطبيقية، من المرجح أن تحل C# محل C++. بادئ ذي بدء، C#، مثل JAVA، تقوم ببساطة بنسخ جزء من بناء جملة C++، لذلك من السهل على عدد كبير من مبرمجي C++ التعلم والبدء، بالإضافة إلى أنها أبسط من C++ للمبتدئين. ثانيًا، يعد Windows هو النظام الأساسي المحتكر حاليًا، وعند تطوير تطبيقات Windows، بالطبع لا يمكن تجاهل صوت Microsoft. الشيء الأكثر أهمية هو أنه بالمقارنة مع C++، فإن استخدام C# لتطوير برامج التطبيقات يمكن أن يؤدي إلى تقصير دورة التطوير بشكل كبير، وفي الوقت نفسه، يمكنك استخدام كود C++ الأصلي باستثناء رمز واجهة المستخدم.
ومع ذلك، C# لديه أيضًا نقاط ضعف. بادئ ذي بدء، لا يمكن لبرامج C# أن تعمل حتى الآن على عدد كبير من منصات Windows الموجودة، لأن برامج C# تتطلب مكتبة وقت التشغيل .NET كأساس، وسيتم إصدار مكتبة وقت التشغيل .NET كجزء من الجيل الجديد من Windows (Whistler )، أو عند تسليم حزمة الخدمة لمستخدمي Windows Me وWindows 2000. لذلك، في المستقبل القريب، سيتم استخدام C# بشكل أساسي على الخادم. ثانيًا، لا يوجد سوى عدد قليل من المكونات أو المكتبات التي يمكن استخدامها بواسطة C#، مثل مكتبة وقت التشغيل .NET، ولا توجد مكتبات برامج خارجية غنية متاحة، وهذا يتطلب عملية، ودعم مطوري البرامج المختلفين مهم جدًا أيضًا. ثالثًا، يتم الترويج لبعض عوامل نجاح جافا من قبل المعسكر المناهض لمايكروسوفت. على الرغم من أن عبارة "اكتب مرة واحدة، اركض في أي مكان" هي مجرد شعار، إلا أنها بالفعل تقنية ناضجة على كل حال. في الوقت الحاضر، المدافع الوحيد عن C# هو Microsoft، التي تتمتع بسمعة سيئة، ولا يمكنها العمل إلا على Windows. في الواقع، هاتان اللغتان لا يمكن استبدالهما بعقلانية، بالنسبة لمطوري البرمجيات، فإن كل ما يعرفونه هو أفضل أداة. خاصة بالنسبة لمستخدمي C++، فإن C# لا تقدم أي شيء جديد، لأنه يمكن أيضًا استخدام مكتبة وقت التشغيل .NET في C++، ولا يوجد سبب مطلق للتغيير.
باختصار، أعتقد شخصيًا أنه في السنوات الأخيرة، سترتفع لغة C# حتمًا وتصبح بطل الرواية على منصة Windows، بينما ستصبح JAVA اللاعب المهيمن على أنظمة UNIX وLinux وغيرها من الأنظمة الأساسية، وستستمر لغة C++ في استعراض عضلاتها في مجال برمجيات النظام. المثير للاهتمام هو أن بناء جملة هذه اللغات قريب للغاية، لأن كلاً من JAVA وC# تم تطويرهما من C++. وبطبيعة الحال، سوف تستمر أدوات التطوير الأخرى في رحلتها لفترة طويلة، ولكنها ستتضرر حتمًا من حيث حصتها في السوق.