غالبا ما يصطدم الذين يريدون دخول مجال برمجة بعدم إلمامهم بكل لغات البرمجة وقدراتها.
لذلك تجدهم بعد فترة يتخلون عن فكرة تعلم البرمجة بسبب عدم قدرتهم على المتابعة لعدة أسباب مختلفة، وأحيانا يتخلون عن الفكرة حتى قبل البدأ.
لكن لماذا؟
ببساطة لسببين أساسيين، كلاهما يتسببان في إختيار اللغة الخاطئة.
المبتدؤون غالبا. لأنهم يتوجهون إلى محرك البحث جوجل ولا تبتعد كلمات بحثهم عن المواضيع التالية: "أفضل لغة برمجة"، "كيف أبدأ البرمجة"، "أقوى لغة برمجة"، "أسهل لغة برمجة" ...
فيجدون عشرات المقالات، كل مقال تذكر إمكانات لغة مختلفة عن المقالة الأخرى. فلا يجد المسكين طريقة للبدأ. هذا أولاً
والسبب الثاني هو سوء الإختيار. تخيل معي مبتدأ ليست لديه خبرة سابقة فيقوم بإختيار خاطئ. فلا يوجد أسوء كابوس من أن يبدأ مبتدئ بتعلم الأسيمبلي أو السي!!
فيجدون تلك اللغة صعبة للغاية ويصلون لنقطة لا يستطيعون المتابعة بعدها.
أنا لدي خبرة لا بأس بها في الجانب النظري من البرمجة، وأعرف الكثير من لغات البرمجة الحديثة ومميزاتها وعيوبها.
لذلك كل ما أفعله هو ذكر مجالات البرمجة واللغات المختلفة لكل مجال، كذلك مساوؤها ومميزاتها وأستعمل مصادر خارجية لتأكيد المعلومات أو إضافة أخرى جديدة. وأترك الخيار لك وحدك.
لكن المجال لن يكفيني لذكر كل لغات البرمجة.
لذلك سأكتفي بأكثرها إنتشارا وإستعمالا.
PHP: تعتبر البي اتش بي لغة برمجة نصية صممت لأجل إستعمالها في صفحات الويب الديناميكية وبناء تطبيقات ويب تفاعلية.
هي تقنية تعمل من جهة المخدم ولا تعمل على المتصفح، تم بناؤها على لغة السي العريقة.
كذلك تعتبر أكثر اللغات إنتشارا وإستعمالا في مجالها بحصة تعدت 70% وحوالي 9 ملايين موقع يستعملها.
مميزتها:
- لغة بسيطة جدا ومفرداتها واضحة وسهلة التعلم.
- تدعم أغلب أوجه البرمجة الكائنية.
- تكاملها مع عدة أنظمة قواعد البيانات وعملها بكفاءة معها، لكنها غالبا ما تستعمل مع نظام Mysql.
- جل الإستضافات تدعمها، إن لم تكن كلها، يعني لن تجد مشكلة في العثور على إستضافة وبثمن يناسب قدراتك.
- يتوفر لها الكثير من أطر العمل التي تساعد المبرمج على كتابة شفرة نظيفة وخالية من الأخطاء والعلل البرمجية غالبا.
- مجتمع كبير جدا و مصادر كثيرة ومتنوعة.
عيوبها:
- المكتبات القياسية في اللغة تحتاج المزيد من التنظيم، حيث تحتوي على دوال تقوم بنفس العمل مع إسم مختلف لكل منها.
-لا تحتوي على دعم كامل لترميز Unicode حاليا، لكن يتم التخطيط للدعم الكامل له في نسخ قادمة.
Visual BASIC: إحدى اللغات التي تطورها مايكروسوفت الأمريكية (أو بالأحرى كانت تطورها). هي عبارة عن تطوير للغة البايسك الشهيرة، تعتبر من أكثر اللغات إنتشارا عند المبتدئين بسبب بساطتها الشديدة وسهولة تطوير تطبيقات ويندوز بها، لكن نادرة الإستعمال عند المتقدمين. تعتبر مقدمة جيدة للتعامل مع البرمجة عامة، وكذلك البرمجة غرضية التوجه. تحتاج إلى برنامج خاص لتطوير تطبيقاتها.
مميزتها:
- لغة بسيطة جدا وسهلة للمبتدئين الذين يريدون تعلم أساسيات البرمجة.
- تدعم المنحى الكائني في البرمجة.
- تصميم الواجهات الرسومية بهذه اللغة أمر بسيط وسهل.
- إعتمادها على HTML مما يجعلها سهلة الفهم والتعلم.
عيوبها:
- إن سهولة هذه اللغة قد تسببت في جعل إمكانياتها محدودة جدا جدا، فمايكروسوفت قد تخلت عن القوة مقابل السهولة.
- عدم دعمها لكل أوجه البرمجة الكائنية.
- مترجم اللغة نفسه به شوائب.
- عدم مجانية بعض برامجها.
Python: تم تطوير لغة البايثون سنة 1990 على يد المطور الهولندي Guido Van Rossum، كان تطوير اللغة أساسا للمساعدة في تطوير نظام تشغيل بإسم Amoeba.
إكتسبت بايثون مع الوقت الكثير من المميزات، وصارت تعمل بكفاءة في عدة مجالات، كتطبيقات سطح المكتب ولغة لتوير مواقع الويب كذلك يمكنها التعامل مع المكتبات البرمجية لعدة لغات كالجافا مثلا.
تستعمل الجافا على نطاق واسع جدا اليوم وكذلك في مواقع كبيرة كاليوتيوب وجوجل وما إلى ذلك.
مميزتها:
- لغة بسيطة جدا من ناحية القواعد الكتابية ومع هذا لا تتخلى عن القوة مثل الفيجوال بيسك.
- تدعم المنحى الكائني في البرمجة.
- تصميم الواجهات الرسومية من خلال عدة مكتبات برمجية متاحة ومجانا.
- كونها مفتوحة المصدر يجعلها تتطور بوتيرة كبيرة جدا.
- مجتمع اللغة يكبر يوما بعد يوم ودعمها أكبر من أي وقت مضى وكذلك مصادر تعلمها وفيرة خصوصا باللغة العربية.
- برامج البايثون تعمل على أي منصة لأنها لغة مفسرة وليست مترجمة.
عيوبها:
- أكثر ما يعيب البايثون هو بطئها النسبي مقارنة بلغات أخرى.
- قوية لكن حاليا لا ترقى لمستوى لغات عريقة كالجافا.
C: تعتبر لغة السي أم جميع اللغات المعاصرة تقريبا، من السي بلس بلس والجافا، إلى البايثون والـ PHP.
جاء تطوير لغة السي على يد دينيس ريتشي، كن تومسون و برايان كرنيغان في أوائل السبعينات من القرن الماضي في معامل بل.
جاء تطوير لغة السي لأجل إستعمالها في بناء نظام التشغيل يونكس أساسا، لكن اللغة إنتشرت بسرعة كبيرة جدا في أواسط المبرمجين.
تعتبر السي من اللغات عالية الستوى وفي نفس الوقت يمكنها العمل مع العتاد بكل يسر وسهولة وبنفس إمكانيات الأسمبلي تقريبا.
وبشكل غريب تحافظ السي على شعبيتها في حرب لغات البرمجة، حيث تحتل صدارة أكثر لغات البرمجة شعبية حسب فهرس تيوبي (تفوقت عليها الجافا هذا الشهر).
مميزتها:
- لغة قوية جدا وسريعة جدا أثناء وقت التنفيذ.
- تدعم عدة أنماظ للبرمجة لكن لا تعدم البرمجة الكائنية.
- حجم برامجها صغير مقارنة باللغات الأخرى.
- تتعامل مع العتاد بكل سهولة.
- التحكم اليدوي في الذاكرة
- لغة عريقة ومصادرها كثيرة.
عيوبها:
- صعبة التعلم كثيرا خصوصا للمبتدئين.
- لغة كبيرة وتحتاج وقت طويل جدا جدا للإلمام بكل إمكاناتها.
- لا توجد بها مكتبات إفتراضية لتصميم الواجهات الرسومية، أصلا السي صنعت لأجل البرمجة منخفضة المستوى والتعامل مع العتاد وليس لصنع البرامج البسيطة.
- لا تدعم البرمجة الكائنية.
++C: احممم. السي بلس بلس، صحيح لغتي المفضلة والتي أدرسها وأستعملها، لكن سأكون محايدا :)
++C لغة متعددة أنماط البرمجة وتضم العديد من مميزات لغات البرمجة عالية المستوى وكذلك منخفضة المستوى.
بدأ تطوير لغة ++C في أواخر سبعينيات وأوائل ثمانينيات القرن الماضي على يد Bjarne Stroustrup في مختبرات بيل، كانت في البداية تسمى لغة سي مع الصفوف، لكن الإسم تغير لاحقا للإسم المعروف اليوم.
تعتبر لغة ++C من أكثر اللغات شيوعا وتستعمل على نطاق واسع في بناء أنظمة التشغيل الحديثة لقوتها في التعامل مع الهاردوير، هذه الميزة التي ورثتها من أمها الحنون لغة السي!
مميزاتها:
- لغة قوية جدا تستعمل في أغلب أنظمة التشغل الحديثة.
- تدعم الكثير من أنماط البرمجة بالإضافة طبعا للبرمجة الكائنية المنحى.
- يعتبرها الكثيرون اللغة الأمثل لأجل المشاريع الكبيرة والمعقدة.
- تتميز بالسرعة الكبيرة أثناء وقت التنفيذ.
- مصادر وفيرة وكتب اللغة موجودة بكثيرة.
- مجتمع اللغة كبير.
عيوبها:
- صعبة نسبيا على المبتدئين لصعوبة Syntax الخاص بها.
- لا توفر للمبرمج الكثير من المساعدة ولاتمتلك مكتبات بقوة مكتبات أخرى كلغة جافا مثلا.
- لا توجد بها مكتبات إفتراضية لتصميم الواجهات الرسومية.
Java: تم تطوير لغة جافا في تسعينات القرن الماضي، تحديدا سنة 1995 على يد جيمس جوسلينج في مختبرات صن ميكروسيستمز، لكنها تعتبر اليوم من أملاك أوراكل بعد أن إستحوذت الأخيرة على صن ميكروسيستمز.
تستعمل الجافا في مجالات مختلفة اليوم، من تطوير تطبيقات للهواتف المحمولة إلى تطبيقات سطح المكتب والويب أيضا
مميزتها:
- لغة قوية ولها دعم واسع ودروس كثيرة.
- تدعم البرمجة الكائنية.
- لغة محمولة، أي نفس الشفرة ستعمل على أكثر من منصة.
- سهولة تطوير تطبيقات الهواتف المحمولة بإستعمالها.
- إستعمالها في مجال الويب.
- لغة واسعة وغالبا لن تحتاج لمكتبات خارجية لأغلب مشاريعك.
- تحتوي على مكتبات لبرمجة الواجهات الرسومية بشكل إفتراضي.
عيوبها:
- بطيئة نوعا ما مقارنة بلغات أخرى.
- لغة كبيرة وواسعة مما يتطلب وقت أطول لتعلمها وإحترافها، هذه النقطة قد تعتبر ميزة وعيب كذلك.
- تعتد على البرمجة الكائنية بشكل كامل وعبارات اللغة طويلة إلى حد ما.
#C: لغة سي شارب هي إحدى لغات بيئة NET. يتم تطويرها من طرف شركة البرمجيات الأمريكية مايكروسوفت.
تدعم هذه اللغة البرجة الكائنية بالإضافة إلى أنظام برجية أخرى. تجمع السي شارب بين قوة السي بلس بلس وسهولة الفيجوال بيسك.
كما أن شفرة اللغة التي تشبه إلى حد كبير لغة الجافا جاء عن قصد لأجل جذب مبرمجي الجافا إلى هذه اللغة.
مميزتها:
- لغة قوية وفي نفس الوقت سهلة التعلم وبرامجها سريعة التطوير.
- تدعم البرمجة الكائنية.
- تعتمد على مكتبات إطار الـ NET. مما يسهل عملية كتابة البرامج المعقدة دون مصادر خارجية.
- إستعمالها في مجال الويب.
- مجتمع اللغة ومصادرها تزداد يوما بعد يوم.
عيوبها:
- لا تعمل إلا على بيئة الويندوز، على الرغم من ظهور مشاريع كبيئة مونو ولكن تبقى حلولا غير رسمية.
- يعتبرها الكثيرون مجرد تقليد للغة الجافا، وجاءت مايكروسوفت بها للخروج من ورطتها مع شركة صن لا أكثر.
Objective-C: تعتبر الأوبجكتيف سي (تسمى أيضا سي الكائنية) تطويرا للغة السي الأصلية، حيث أضافت لها دعما للبرمجة الكائنية كما هو واضخ من إسمها. تستعمل هذه اللغة في المقام الأول لأجل برمجة تطبيقات أنظمة آبل، مثل نظام الماك لأجهزة ماكنتوش والـ IOS لأجهزة آيفون وآيباد.
تم تطويرها سنوات الثمانينات من القرن الماضي (ظهورها الرمسي كان سنة 1983) على يد Brad Cox و Tom Love.
إستعمال الأوبجكتيف سي محدود نوعا، فهي تقريبا لا تستعمل إلا مع الأنظمة المذكورة من قبل.
مميزتها:
- تعتبر اللغة الشائعة والحل الأمثل للتطوير لأنظمة آلا عموما.
- تدعم البرمجة الكائنية.
عيوبها:
- لغة غير معروفة وغير منتشرة كثيرا ولكن إستعمالها ودعمها من طرف آبل قد غير النظرة لهذه اللغة قليلا.
- لا توجد كتب ومصادر قوية وكثيرة للغة.
الخلاصة:
أنا لا أستطيع أن أخبرك ما هي لغة البرمجة التي يجب أن تتعلمها، أو لغة البرمجة الأمثل. لكن هذا القرار يعود لك.
عليك أن تعرف ما تريد فعله، التطوير للويب، التطوير لسطح المكتب، البرمجة منخفضة المستوى، تطبيقات الهواتف النقالة...
ثم بعدها يمكنك تقرير ما هي اللغة الأنسب لك.