ما هي سي شارب C#
إنّ عالم اليوم متخم بلغات البرمجة متنوّعة المصادر والأغراض، ولكن قد يكون لزامًا علينا التعرّف على لغةٍ تمت عبرها كتابة الكثير من البرمجيّات والتطبيقات التي نستخدمها كلّ يومٍ، ولعلّنا نُفتَن بقدرتها الكبيرة على التطوّر، والحداثة، إنها سي شارب C# .
هذا بلا شكّ ما تتصف به لغة سي شارب C# ؛ فما هي C#؟
ما هي سي شارب C#
سي شارب C# هي لغة برمجةٍ حديثةٍ موجّهةٍ للكائنات، تم تطويرها في عام 2000 بواسطة أندريس هيجلسبرج Anders Hejlsberg في Microsoft، وهي لغة عامة الغرض مصممةٌ لتطوير التطبيقات على أنظمة التشغيل الأساسية لـ Microsoft وتتطلب .NET framework على Windows للعمل.
غالباً ما يُنظر إلى C# على أنها هجين يأخذ الأفضل من C وC++ لإنشاء لغةٍ حديثةٍ؛ فكونها لغةً موجَّهةً؛ فهي تهدف إلى دمج قوة الحوسبة في C++ مع سهولة برمجة فيجوال بيسيك (Visual Basic).
على الرغم من أن .NET framework يدعم العديد من لغات البرمجة الأخرى، إلا أن سي شارب C# أصبحت واحدةً من أكثر تلك اللغات شيوعًا.
لماذا تم إنشاء سي شارب C#
لعلك تتساءل ـ كحالٍ كلّ من يريد الاطلاع على الأقلّ ـ عن السبب في خلق هكذا لغة جديدة، على الرغم من وجود كيانات برمجيّة أخرى، ولأغراضٍ مشابهةٍ، كلغة Java مثلًا!
في واقع الأمر فقد تمّ تأسيسها في البداية كمنافسةٍ للغة Java؛ ذلك أنّ شركة Sun (التي اشترتها Oracle لاحقًا) لم تكن ترغب في قيام Microsoft بإجراء تغييراتٍ على Java، لذا اختارت Microsoft إنشاء لغتها الخاصة بدلًا من ذلك. وعلى العموم، فإنّ C# تحتوي على ميزاتٍ مشابهةٍ لتلك الموجودة في Java.
لقد نمت سي شارب C# بسرعةٍ كبيرةٍ منذ أن تم إنشاؤها لأوّل مرةٍ، وهذا بالطبع تحت دعمٍ واسعٍ من Microsoft لمساعدتها في الحصول على مكانتها الكبيرة اليوم.
هي الآن واحدة من لغات البرمجة الأكثر شعبيةً في العالم!
ما هو أصل المصطلح “C#”
يستمد مصطلح C# المحرف # الخاصّ به من مفتاح التحويل الموسيقي “#”، والذي يشير إلى زيادة درجة نصفية واحدة، ولعلّ هذا يعبّر عن لمسة إبداعٍ تضفيها اللغة على عالم البرمجة، كما عالم الموسيقى!
ويُنطَق لفظ لغة C# بالإنكليزية “C Sharp” في أكثر الأحيان، أمّا اللفظ بالعربيّة فهو “سي شارب”.
الاستخدامات الرئيسة لـ سي شارب C#
في الواقع، وباختصارٍ، أي شيءٍ تقريبًا! إذ يمكنك استخدام C# لإنشاء تطبيقات Windows، وتطبيقات العميل -الخادم، وتطبيقات قواعد البيانات، وأكثر من ذلك بكثير…
يمكن تمييز استخداماتها المتنوّعة فيما يلي:
- تطوير تطبيقات Windows:
- بالنظر لدعم .NET على نظام Windows، فإنّ سي شارب C# تعتبر الآن الخيار الأول لكل مطورٍ لإنشاء تطبيقات Windows.
- ذلك أنّ إصدارات نظام تشغيل Windows الجديدة (Windows 8/ Windows 10) ساعدت بقوّةٍ على هذا “التبنّي”؛ إذ تتم كتابة الغالبية العظمى من تطبيقات الجهات الخارجية في متجر Windows عن طريق C#.
- رغم أنّ متجر Windows لم يحقق النجاح والشهرة التي حقّقها كلّ من App Store وGoogle Play، ولكنّه وبلا شكّ سيشكّل مستقبل توزيع تطبيقات Windows، وعليه فإنّ C# لديها مستقبلٌ مشرقٌ على Windows.
- إنشاء تطبيقات الويب عادةً عبر:
- WebForms (هي جزءٌ من إطار عمل تطبيقات الويب NET المضمن مع Visual Studio).
- MVC (هي نمط معماري يستخدم عادة لتطوير تطبيقات الويب).
- الأجهزة المحمولة والهواتف الذكيّة: عندما يتعلق الأمر بالهواتف الذكيّة، فإنّ C# تتعاظم باستمرار.
- تقود Xamarin الطريق في هذا المجال، حيث تقدم أدواتٍ لجميع منصات الهواتف المحمولة الرئيسية، فضلًا عن العديد من المنصّات الأخرى التي تزوّد بالكثير من الموارد المفيدة في كيفيّة “تطوير الهاتف المحمول في C#.
- نجد أنّ Microsoft أيضًا لديها باعٌ طويل في دعم C# على أجهزة المحمول؛ إذ أصدرت مؤخرًا تحديثًا لبرنامج Visual Studio 2013 يدعم “التطبيقات العامة”؛ وهي عبارةٌ عن تطبيقاتٍ تم تطويرها جنبًا إلى جنبٍ لكلٍ من أجهزة الكمبيوتر المكتبية وكلّ الأجهزة التي تعمل بنظام Windows.
- الألعاب:
- تُستخدم سي شارب C# على نطاقٍ واسعٍ لإنشاء ألعاب باستخدام محرك الألعاب “Unity”، وهو أكثر محركات الألعاب شعبية اليوم؛ إذ يتم بواسطته صنع أكثر من ثلث أفضل الألعاب حول العالم، وهناك ما يقرب من 770 مليون مستخدم نشط للألعاب التي تم إنشاؤها باستخدامه.
- يُوَظَّف Unity أيضًا في الواقع الافتراضي، مع 90٪ من جميع أجهزة Samsung Gear و53٪ من جميع ألعاب Oculus Rift VR التي تم تطويرها باستخدامه.
- C# أداة رائجة بشكلٍ كبيرٍ لإنشاء هذه التطبيقات ، ولذا فهي تقدم خيارًا رائعًا لأي مبرمجٍ يأمل في اقتحام عالم صناعة وتطوير الألعاب ، أو لأي شخصٍ مهتمٍ بالواقع الافتراضي.
- إنّ C# مرنة بما فيه الكفاية لتشغيل ملقمات TCP / IP، وRaspberry Pi.
ميزات سي شارب C#
أوّلًا: سهلة التعلّم، ولكنّها تنطوي على مهام معقّدة!
- تحتوي C# على العديد من الميزات التي تسهّل عملية التعلم.
- إن بنية C# ـ إن صحّ القول ـ هي “معبّرة” للغاية، ولكنها بسيطة وسهلة التعلم.
- يبسط بناء C# العديد من تعقيدات C++.
- C# سهلة القراءة نسبيًا.
- وبالإضافة إلى ذلك، فإنّ C# تقوم بمعالجة معظم التفاصيل المعقدة للجهاز (الكمبيوتر) بحيث يمكنك التركيز على غرض البرمجة بدلًا من القلق حول التفاصيل الصغيرة.
- كما أنّ C# لغة مكتوبةٌ بشكلٍ ثابتٍ، لذا يتم التحقق من الشفرة قبل أن يتم تحويلها إلى تطبيقٍ، وهذا ما يسهّل العثور على الأخطاء، وهو أمرٌ يمكن أن يكون مفيدًا بشكلٍ خاص للمبتدئين.
ومع أن من أن بنية سي شارب C# أكثر تناسقًا ومنطقية من C++، فلا يزال هناك الكثير لتعلمه، ورغم أنّ C# لغة عالية المستوى، سهلة القراءة نسبيًا، لكنّها لغةٌ ذات مستوى أدنى من لغات أخرى مثل Python، أي أنّ هناك العديد من المهام الأكثر تعقيدًا. ولكن على العموم، يمكن لأي شخصٍ على دراية بـ C أو C++ أو Java، أن يتعرّف على الفور على بنية C#، كما يمكن للمطورين الذين يعرفون أيًا من هذه اللغات أن يبدؤوا العمل بشكل “منتج” في C# خلال وقتٍ قصيرٍ جدًا.
ثانيًا: السرعة
كلغة مكتوبة بشكلٍ ثابتٍ، فإنّ C# أسرع من اللغات المكتوبة ديناميكيًا لأن الأشياء محددةٌ بشكلٍ أكثر وضوحًا؛ وبالتالي، عندما يكون التطبيق قيد التشغيل، لن يتم إهدار موارد جهازك عند التحقق من تعريف شيءٍ ما في شفرتك. ولأن بإمكان المبرمجين البناء على الكود “الحالي” في C#، بدلًا من إعادته بشكلٍ متكررٍ، فمن المتوقع أن يجعل هذا C# أسرع.
ثالثًا: مجتمع الدعم والتواصل
بالنسبة لأي مبرمجٍ أو مطوّرٍ فإنّ مدى الدعم الحيوي الذي يقدّمه “مجتمع المطوّرين” منقطع النظير! حيث أن مجتمع المطورين يختص بتقديم المساعدة، وتلقّيها أيضًا؛ فكلما كان المجتمع أكبر، كلما زاد عدد الأشخاص الذين يقومون ببناء أدواتٍ مفيدةٍ لجعل التنمية في تلك اللغة بعينها أسهل.
حتى الآن، هناك أكثر من 600 لغة برمجة في جميع أنحاء العالم، لذا، مع وضع هذا السياق في الاعتبار، لا بدّ من الخوض في بعض تفاصيل مجتمع دعم C#.
مجتمع دعم سي شارب C#
- مجتمع عام لمطوري لغة C#:
في Meetup (وهي خدمة تواصلٍ عالميةٍ تعتمد على المجتمعات) يمكنك عمومًا التواصل والتعلم من مطوّري البرامج الآخرين في الحياة الحقيقية.
من بين أكثر من 520 مجموعة، تحتوي أكثر من 140 ألف عضوًا حول العالم، فإن C# لديها سابع أكبر مجتمع على Meetup.
- مجتمعات لأغراض بعينها:
تمتلك Unity ـ محرك الألعاب الأكثر شعبية ـ مجتمع دعمٍ كبيرٍ جدًّا مع أكثر من 4.5 مليون مطور مسجل وأكبر حصة في السوق العالمية (45 ٪ حتى الآن).
منتدى Unity نشط للغاية، لذلك إذا كنت ترغب في تطوير الألعاب أو تطبيقات الواقع الافتراضي، فإن Unity هو خيارٌ رائعٌ بالنسبة لمستخدمي C# كونها عماد نتاج Unity.
شعبية C# وانتشارها
سرعان ما أصبحت C# واحدة من أشهر لغات البرمجة المتاحة، كونها قوية، ومرنة، ومدعومة بشكلٍ جيدٍ.
اليوم، تأتي C# في المرتبة الرابعة من بين لغات البرمجة الأكثر شعبيةً، مع ما يقرب من 31 ٪ من مجموع جميع المطورين ممّن يستخدمونها بانتظامٍ.
تتعاون Microsoft مع ECMA (وهي منظمة معاييرٍ لأنظمة المعلومات والاتصالات)، ومع هيئة المعايير الدولية ISO، لإنشاء معايير للغة C#؛ إذ من شأن ذلك أن يشجع الشركات الأخرى على تطوير إصداراتها الخاصة من اللغة.
تتضمن الشركات التي تستخدم C# بالفعل: Apex وBunka Orient و Component Source و devSoft و FarPoint Technologies و LEAD Technologies و ProtoView و Seagate Software، وغيرها الكثير…
تمتلك C# أيضًا ثالث أكبر مجتمع على StackOverflow (منصّة عملاقة للتواصل التقنيّ، تمّ إنشاؤها وتطويرها باستخدام C#!) مع أكثر من 1.1 مليون موضوع.
فرص عمل مع C#
تلك الشعبية تترجم إلى سوق عملٍ مزدهرٍ؛ فعندما يتعلّق الأمر بلغة C#، يتم الإعلان عن أكثر من 17000 وظيفة في كل شهرٍ (على مستوى العالم) بمتوسط رواتبٍ يزيد على 72000 دولار.
على مستوى الولايات المتحدة فقط، هناك أكثر من 6000 وظيفةٍ ـ معلنٍ عنها ـ كل شهرٍ، مع راتبٍ سنويّ قدره 92000 دولار. ويتم تشغيل 16٪ من أهم 100 مليون موقع بواسطة إطار عمل ASP.NET، والتي قد يستخدم العديد منها C#، لذلك هناك الكثير من الفرص على صعيد “التطوير”. ومع ذلك، فإن عمالقة التكنولوجيا يستخدمون Java بشكلٍ أساسيٍّ لتحسين قابليتها وأدواتها.
لكن مهلًا! … إذا كنت تعرف C# بالفعل، فلا ينبغي أن يكون من الصعب عليك ـ مع دافعٍ جيّد ـ أن تتعلّم Java وبشكلٍ أسرع وأكثر إنتاجًا.
نقطةٌ هامّةٌ أخيرةٌ تتمثّل مع صعود تطوير ألعاب الفيديو، إذ من المرجح أن يكون لدى مطوري C# فرص أفضل بكثيرٍ، حيث أن Unity (التي تشكّل C# أساسًا لنتاجها) أصبحت إلى حدٍّ كبيرٍ محرك الألعاب المستقبلي الأكثر إقناعًا.
مستقبل سي شارب C#
تتوهج آفاق مستقبل C# بوعود إيجابية، لا سيما بفضل الدعم المستمر والتحديثات من Microsoft. من المرجح أن تحافظ C# على دورها الرئيسي في مجموعة واسعة من التطبيقات والصناعات. بصفتها لغة برمجة قوية وموثوقة، تحتل C# موقعًا متميزًا في الساحة التكنولوجية.
إذا كانت رحلتك في عالم البرمجة تتطلب اختيار لغة جديدة للتعلم، فإن C# تعد خيارًا مثاليًا بفضل مرونتها، قوتها، والموارد الواسعة المتاحة للمتعلمين.