🎞️ Netflix

لغة البرمجة C أصعب اللغات وأكثرها تعقيداً.. من يستخدم هذه اللغة اليوم بعد 50 عاماً على وجودها؟

C programming language
ناصر داخل
ناصر داخل

5 د

لا يوجد مبرمج لم يتعلّم لغة البرمجة c أو على الأقل سمعَ بها مرّة واحدة على الأقل في حياته البرمجية، يعتبرها البعض بأنّها لغة البرمجة المفصليّة في تاريخ البرمجة التي نقلتنا من لغات البرمجة منخفضة المستوى (Low-level) إلى لغات البرمجة عالية المستوى (High-level).

وبغضّ النظر عن مرتبتها وأهميّتها ضمنَ لغات البرمجة الأخرى فهي ما تزال مستخدمة ومطلوبة بكثرة في سوق العمل حتّى بعدَ مرور 50 سنة من إطلاقها، ما السبب؟ لنذهب سويّاً في رحلة ضمن هذه المقالة ونتكلّم عن تاريخ لغة C وأينَ هي الآن.


ماذا كنّا نستخدم قبل ولادة لغة البرمجة C؟

لغة البرمجة c

سبقَ لغة C العديد من لغات البرمجة مختلفة الأغراض ولعلّ أبرزها كان Pascal و FORTRAN و COBOL بعضها حافظ على مرتبته وأهميّته حتى بعدَ ظهور لغة C وبعضها الآخر اندثر بحسب استخداماتها وسلبياتها وإيجابيّاتها، دعونا نتناول لغة Pascal أوّلاً.

تمّ إطلاق لغة Pascal عام 1970 وسميت تيمّناً بعالم الفيزياء الشهير “بليز باسكال” وقد تمّ إنشائها كلغة تعليميّة حتى تُستَخدَم في المدارس والجامعات ولكن سرعانَ ما تمّ استخدامها على نطاق واسع، لكنّ امتلكت لغة Pascal العديد من المشاكل التي اشتكى منها المطوّرين آنذاك منها افتقارها للبرمجة كائنيّة التوجّه (Object-Oriented) وحتميّة تعريف كل المتغيّرات التي تريد أن تستخدمها في بداية الرمز المصدري (Source Code) ومشاكل أخرى تكلّمَ عنها “براين كيرنيغان” -واحد من العقول التي قامت بابتكار نظام يونيكس وتطوير لغة C- في مقالته.

أتَت بعدَ ذلك لغة Object Pascal والتي تعتبر تطويراً على Pascal وتحسيناً لبعض النقاط في عام 1985، بالإضافة إلى لغة Delphi عام 1983 والتي بُنيَت على Turbo Pascal وكانت موجهّة للشركات بشكل رئيسي ممّا أثار غضب بعض المطوّرين ونفورهم منها، في ذاك الوقت وفي عام 1972 تمّ إطلاق لغة C لأوّل مرّة، والتي قدّمت حلولاً للعديد من المشاكل التي تعاني منها لغة Pascal، وكما ذكرنا سابقاً تمّ إطلاق Object Pascal و Delphi كمحاولة للإبقاء على هذه اللغة ولكنّ الوقتَ كانَ متأخّراً لذلك!

ولكنّنا لا نقول هنا إنّ لغة C قضَت على جميع لغات البرمجة التي سبقتها بالضرورة، فعلى سبيل المثال ما تزال لغة FORTRAN مستخدمة بشكل كبير في الوسط العلمي إذ تتميّز بسهولة استخدامها في هذا المجال بفضل وجود مجموعة كبيرة من المكتبات وتتّسم بنفس سرعة التنفيذ مقارنةً بـ C وتحظى بتطويرات متجدّدة آخرها كان في عام 2018، لغة أخرى ما زالت مستخدمة إلى يومنا هذا هيَ لغة COBOL، وبالأخصّ في المجال البنكي والمحاسبة، وبحسب إحدى الإحصائيات فإنّ 43 بالمئة من أنظمة البنوك في الولايات المتّحدة الأمريكيّة بُنيَت على COBOL.


رحلة تطوير لغة C

كانت بدايات لغة C في مختبرات بيل (Bell Labs) في بدايات السبعينيّات إذ طُوِّرَت هذه اللغة طبقاً لما ذكره “دينيس ريتشي” -مبتكر لغة C- في ورقته عن تطوير لغة C بغرض إيجاد لغة للتعامل مع نظام يونيكس (UNIX) والمشتقّة عن لغة BCPL، إذ تمّ إنشاء لغة BCPL بهدف إيجاد لغة برمجة تكون قابلة للنقل (Portable) عند التجميع (Compiling) بينَ الأجهزة والنظم المختلفة وصغيرة الحجم بحيث لم يتعدّ حجم الملف 18 كيلوبايت بعدَ تجميعه.

بعدها، قامَ دينيس بالتعاون مع زميله في مختبرات بيل “كِن ثومبسون” بتطوير لغة B ولكن لسوء الحظّ، لم يتمّ تبنّي لغة B وذلك لأنّها بطيئة، ليأتي بعدها “دينيس” ويقوم بالتعديل عليها لتصبح لغة C التي نعرفها اليوم، بحلول عام 1973 وصلت لغة C إلى مرحلة مستقرّة مما سمحَ بإمكانيّة إعادة كتابة نواة يونيكس (UNIX) لحاسوب PDP-11 والذي ساعد على تبنّي لغة C على نطاق عالمي، وبالفعل هذا ما حدث، ففي عام 1988 قام المعهد الأمريكي للمعايير القوميّة (ANSI) بتشكيل لجنة لتحديد معايير C الموحّدة وتمّ دعم C بعدها على معظم المجمّعات (Compilers).

PDP-11 Computer

حاسوب PDP-11

استخدمت C أيضاً في برمجة معظم نواة لينكس (Linux)، كما أنّ معظم أُطر عمل قواعد البيانات تمّت برمجتها بلغة C بشكل جزئي مثل Oracle Database و MySQL و MS SQL Server و PostgreSQL، بالإضافة إلى أنّ معظم اللغات عالية المستوى تعتمد على C بشكل أو بآخر فعلى سبيل المثال يعتمد مفسّر لغة Python على لغة C.


أينَ لغة C اليوم؟ وأين يتمّ استخدامها؟

حافظَت لغة C على مرتبتها رغمَ وجود لغات البرمجة القويّة والمتقدّمة التي ظهرت بعدها مثل بايثون وجافا وغيرها، وذلك بسبب بعض الخصائص التي تتمتّع بها، منها سرعتها في التنفيذ وقابليّة تشغيلها على كلّ المنصّات والأجهزة (Portability) واحتوائها على بُنى المعطيات المختلفة المبنيّة في مكتبتها الأساسيّة، كنتيجة لذلك تنوّعت استخدامات لغة C ونذكر من ضمنها:


برمجة النظم المدمجة (Embedded Systems)

تعتبر لغة C خياراً ممتازاً عند برمجة النظم المدمجة وذلكَ بسبب اعتبارها لغة متوسّطة المستوى (Mid-level) وبالتالي فهيَ قريبة للغة الآلة وفي نفس الوقت فإنّ التعامل معها بسيط مقارنةً باللغات منخفضة المستوى مثل Assembly، ونقصد هنا بالنّظم المدمجة أي نظام يحتوي على وحدة معالجة مثل المتحكّمات الصغريّة (Microcontrollers) وغيرها.


برمجة نُظم التشغيل (Operating Systems)

من المنطقي للغاية أن تضم استخدامات لغة C برمجة نُظم التشغيل، إذ تمّ برمجة أوّل نظام تشغيل في العالم بواسطتها -يونيكس UNIX- بالإضافة إلى نظام ويندوز من بعده وجزء من نظام أندرويد وذلكَ نظراً لأنّه مبني على نواة لينكس Linux.


برمجة لغات البرمجة (Programming Languages)

كما يعرف الكثير من التقنيين فقد اعتمدت ++C على لغة C، ولكنّها ليسَت اللغة الوحيدة في ذلك، فكل من Java و #C و Perl و PHP و Python اعتمدت عليها أو على الأقل استوحت وأخذت بعضاً من مبادئها أو طريقة كتابتها (Syntax).


برمجة الألعاب وتطويرها (Game Development)

نظراً لسرعة تنفيذ الأكواد المكتوبة بلغة C فهي تعتبر من أبرز اللغات التي تستخدم في صناعة وبرمجة الألعاب نظراً لحاجة هذا المجال إلى العمليات والأوامر الحسابية، لذا فإنّ عامل السرعة يعتبر هامّاً جداً، وقد بُنيَت مجموعة من محرّكات الألعاب بالاعتماد على لغة C مثل محرّك Jedi ومحرّك Allegro ومحرّك Build وغيرها الكثير، بالإضافة إلى المحرّكات الرسوميّة مثل محرّك Blender.


برمجة البرامج والمنصّات الحسابيّة (Computational Platforms)

أدّت سرعة لغة C ومكاتبها الواسعة والعديدة في مجال الحساب والرياضيات في استخدامها ضمنَ العديد من المنصّات الحسابيّة وذلكَ مثل برنامج Wolfram Mathematica وبرنامج MATLAB.

اقرأ أيضًأ: حرب حقيقية لا أحد يعلم خفاياها وأسرارها.. ما هي حروب لوحات المفاتيح وما هي اللوحة الأفضل للاستخدام اليومي؟

ذو صلة

هل سبقَ وتعلّمت أو برمجتَ مشروعاً باستخدام لغة C؟ ما هيَ المزايا التي لاحظتها من خلال استخدامك وتعاملك مع هذه اللغة؟ شاركنا تجربتك مع هذه اللغة في التعليقات!

أحلى ماعندنا ، واصل لعندك! سجل بنشرة أراجيك البريدية

بالنقر على زر “التسجيل”، فإنك توافق شروط الخدمة وسياسية الخصوصية وتلقي رسائل بريدية من أراجيك

عبَّر عن رأيك

إحرص أن يكون تعليقك موضوعيّاً ومفيداً، حافظ على سُمعتكَ الرقميَّةواحترم الكاتب والأعضاء والقُرّاء.

ذو صلة