لماذا سُميت لغة البرمجة C بهذا الاسم؟ وماذا حدث للغة D؟

قد لا ترى لغة البرمجة C في كل مكان، ولكنها موجودة بشكل خفي في كل مكان. عندما تبدأ تشغيل سيارتك، فمن المحتمل أن تستخدم اللوحة الرئيسية في سيارتك لغة C للتواصل مع مكوناتها المختلفة. عندما تستخدم هاتفك، سواء كان iOS أو Android، فإن نواة نظام التشغيل مكتوبة بلغة C. لا يمكنك تجاهل لغة C.

لماذا سُميت لغة البرمجة C بهذا الاسم؟ وماذا حدث للغة D؟

حسنًا. تورية سيئة. ولكن ما قصة الحرف C؟ عندما ظهرت لغة البرمجة C، أحدثت ثورة في العالم. ولكن لماذا سميت C؟

ذات مرة، في مختبرات Bell…

عقول لامعة وميزانيات ضخمة

A PDP-11 70 system that included two nine-track tape drives, two disk drives, an dmore in an office

للإجابة على ذلك، سنحتاج إلى العودة بالزمن إلى الوراء وإلقاء نظرة على مبنى متواضع ولكنه مترامي الأطراف يقع في نيو جيرسي. هذا المبنى هو مختبرات Bell. تأسست على يد ألكسندر جراهام بيل (هل يبدو الاسم مألوفًا؟) وكانت مملوكة في ذلك الوقت لشركة AT&T – التي كانت في الواقع احتكارًا مدعومًا من الحكومة – تمتعت مختبرات Bell بالكثير من الميزانية، والحرية في التجربة واللعب بالأفكار.

أدت هذه الطريقة غير التدخلية إلى اختراع الترانزستور (وهو السبب في أن أجهزة الكمبيوتر لم تعد بحجم أحياء المدينة)، والليزر، والخلايا الشمسية، على سبيل المثال لا الحصر. لغة C هي أيضًا نتاج مختبرات Bell الأسطورية. ولكن، قبل أن تكون هناك لغة C، كانت هناك لغة B.

كانت هناك لغة B

B من أجل BCPL أفضل

The original PDP-11 70 font panel

في عام 1969، كان كين تومبسون، الباحث اللامع والمستقل بشكل ملحوظ في مختبرات Bell، يعمل على مشروع نظام تشغيل ضخم ومبالغ فيه يسمى Multics. عندما أوقفت مختبرات Bell مشروع Multics، وجد تومبسون نفسه لديه بعض وقت الفراغ ومشكلة محددة للغاية: أراد أن يلعب لعبة كتبها تسمى Space Travel على جهاز كمبيوتر DEC PDP-7 قديم ومغبر كان يجلس في الردهة.

جهاز كمبيوتر DEC PDP-7

كان PDP-7 (الصورة على اليمين) قد عفا عليه الزمن حتى بمعايير الستينيات. كان لديه ذاكرة صغيرة (حوالي 8 كيلوبايت). لتشغيل لعبته على PDP-7، قام تومبسون ببناء نظام تشغيل جديد من الصفر. كانت هذه هي ولادة Unix. ولكن، كتابة Unix بلغة assembly code (وهي اللغة الخام والبدائية التي تتحدث إلى الآلات باستخدام 1 و 0) كان كابوسًا. احتاج تومبسون إلى لغة عالية المستوى، شيء أقرب إلى المنطق البشري.

في ذلك الوقت، كانت لغة البرمجة عالية المستوى ذات الصلة هي BCPL (اختصار لـ Basic Combined Programming Language). كانت BCPL كبيرة جدًا بالنسبة للأجهزة الضيقة في PDP-7، لذلك أخذ تومبسون كلمة “Basic” من BCPL، وجردها من أساسياتها، وأنشأ لغة جديدة. أطلق على هذه اللغة الجديدة اسم B. كانت سريعة، وكانت بسيطة، وكانت الخطوة الأولى نحو البرمجة الحديثة.

لعبة السفر عبر الفضاء من عام 1969

ولكن، كان مصير B هو الزوال في النهاية. لقد عملت بشكل جيد مع PDP-7، ولكن عندما قامت Bell Labs بالترقية إلى PDP-11 الأكثر تطوراً، لم تكن لغة غير محددة النوع مثل B كافية. كانت غير فعالة، وجعلت PDP-11 الجديدة والمكلفة تعمل بشكل أبطأ بكثير مما كانت قادرة عليه.

أصبحت C هي B الجديدة

حصلت B على ترقية

Ken Thompson و Dennis Ritchie يعملان على Unix

هذا يقودنا إلى Dennis Ritchie، الصديق المقرب لـ Thompson والمتعاون معه. أدرك Ritchie أنه إذا كان لـ Unix البقاء على الأجهزة الأحدث، فيجب أن تنمو اللغة التي كتبت بها – لذلك أمضى عامين في العمل على B لإصلاحها.

كان ابتكاره هو إدخال نظام الأنواع (Type System). لقد أنشأ نوع char للأحرف ونوع int للأعداد الصحيحة. الآن يمكن للمبرمج أن يخبر الكمبيوتر أن هذا الصندوق مخصص لحرف واحد، لذلك لا تهدر مساحة إضافية عليه. سمح هذا للبرنامج بملاءمة الجهاز.

كين تومسون ودينيس ريتشي حوالي عام 1973

لفترة من الوقت، أشار ريتشي وتومسون ببساطة إلى هذا المشروع باسم “B الجديدة”. ولكن مع ازدياد تميز اللغة وقوتها، أدركوا أنها تستحق هوية خاصة بها. وبما أنها كانت خليفة للغة B، فقد نظروا إلى الحرف التالي في الأبجدية وأطلقوا عليها اسم C.

ثم، في عام 1973، أعاد ريتشي وتومسون كتابة جوهر نظام التشغيل Unix بلغة C. قبل ذلك، كانت أنظمة التشغيل تُكتب دائمًا بلغة التجميع لأن الجميع يعرف أن اللغات عالية المستوى بطيئة جدًا. أثبتت C أن الجميع كانوا مخطئين. كانت سريعة وأنيقة، والأهم من ذلك أنها كانت قابلة للنقل.

… ثم جاءت D

أم ماذا؟

اللوحة الأمامية الأصلية لجهاز PDP 11 20

بحلول أواخر السبعينيات، كانت C هي الملك بلا منازع. ولكن في النهاية، مع ازدياد تعقيد البرامج، بدأت تظهر عليها علامات التقدم في السن. كان Bjarne Stroustrup، وهو باحث آخر في Bell Labs، معجبًا بسرعة C، لكنه أراد إضافة مفهوم يسمى “البرمجة الشيئية”. لتبسيط الأمر، أراد السماح للمبرمجين بتجميع البيانات وتسجيل الدخول إلى “كائنات” مثل كائن “مستخدم” يعرف اسمه وكلمة مروره.

Bjarne Stroustrup

عندما حان الوقت ليقوم ستروستروب (شاهده في مكتبه على اليسار) بتسمية ابتكاره، كانت الخطوة المنطقية التالية هي D. ولكن العاملين في Bell Labs كانوا مغرمين بالتلاعب بالألفاظ. لذا، اقترح ماسكيتي، وهو زميل لستروستروب، اسم C++. بالنسبة لهم على الأقل، كانت نكتة عبقرية. أشارت إلى أن اللغة هي C، ولكن تم زيادتها بمقدار واحد. كانت C، ولكن أفضل.

كان اختيار الاسم هذا جذابًا للغاية لدرجة أن خانة D في التسلسل الأبجدي ظلت فارغة لمدة عشرين عامًا تقريبًا. أصبحت C++ هي المعيار لكل شيء من ألعاب الفيديو إلى متصفحات الويب، وانتقل العالم ببساطة. إذا كنت لا تعرف، في لغة C، لزيادة رقم بمقدار واحد، فإنك تستخدم أمرًا خاصًا: ++. إذا كان لديك متغير x وكتبت x++، فسيصبح x + 1.

توجد بالفعل لغة D

لكنها ظهرت بعد عقود

Walter Bright the creator of the D programming language

لم يكن الأمر كذلك حتى عام 2001 عندما قرر مهندس المحولات المخضرم، والتر برايت، أخيرًا المطالبة بالحرف. أمضى برايت سنوات في بناء أدوات ++C وكان محبطًا من مدى “ضخامة” و “عدم أمان” اللغة، لأنها اضطرت إلى البقاء متوافقة مع التعليمات البرمجية القديمة من السبعينيات.

أراد القوة الخام للغة C، والميزات التنظيمية للغة ++C، ولكن بتصميم عصري ونظيف يصعب كسره. لذلك، قام بإنشاء لغة البرمجة D. قدمت D إدارة أفضل للذاكرة وميزات أمان منعت أنواع الأخطاء التي تتسبب في ظهور الشاشة الزرقاء على جهاز الكمبيوتر الخاص بك.

ولكن، على الرغم من إنجازها، واجهت D مشكلة كلاسيكية. بحلول الوقت الذي وصلت فيه D، كان العالم قد تجاوزها بالفعل. كانت الشركات تستخدم Java و C#، وكان العالم لا يزال مغلقًا بإحكام في C و ++C. بعد بضع سنوات، ظهرت لغة تسمى Rust والتي ركزت بشدة على سلامة الذاكرة (نفس مبدأ D)، وتمكنت من جذب انتباه عالم التكنولوجيا بطريقة لم تتمكن D من تحقيقها تمامًا – وجعلت D غير ذات صلة بشكل فعال.

اليوم، توجد D كلغة متخصصة تحظى باحترام كبير. يتم استخدامه بالفعل من قبل شركات مثل Netflix و eBay لمهام محددة عالية الأداء. إنها لغة رائعة، لكنها لم تصبح ملكًا أبدًا.

هل كانت هناك لغة A؟

نعم، ولكن… ليس حقًا

حسنًا. الآن نحن نعلم أن C هي C لأنها أتت من B. ولكن، هل كانت هناك لغة A أتت قبل B؟ الجواب هو نعم، ولكن ليس بالطريقة التي تعتقدها. ترى، لم تكن هناك لغة A رسمية قبل هذه اللغات. نعم، أصبحت C هي C لأنها أتت بعد B. ولكن، أصبحت B هي B لأنها كانت الحرف الأول من BCPL، وليس لأنها أتت بعد A.

غلاف دليل لغة ALGOL لعام 1965

ومع ذلك، إذا تتبعنا السلالة بشكل صحيح، فإن القصة تبدأ قبل مختبرات Bell Labs. قبل فترة طويلة من وجود B أو C، كانت هناك ALGOL. لغة ALGOL، وهي اختصار لـ Algorithmic Language (اللغة الخوارزمية)، ولدت في عام 1958. لم تكن نتاج رجل واحد، ولكن لجنة من العلماء الأوروبيين والأمريكيين الذين أرادوا طريقة عالمية لوصف العمليات الرياضية. إذا كنا نبحث عن الجد الأكبر للترميز الحديث – “A” الحقيقي في قمة الهرم – فهو ALGOL.

تم إنشاء لغة تسمى CPL (Combined Programming Language) بناءً على أفكار ALGOL، لكنها كانت معقدة للغاية – معقدة للغاية بالنسبة لأجهزة ذلك الوقت. أدى ذلك إلى إصدار “أساسي” من CPL، أطلق عليه اسم BCPL. وهنا تبدأ قصة Bell Labs الخاصة بنا.

الآن في عام 2026، ما زلنا نعيش في عصر C. حتى اللغات الجديدة الفاخرة مثل Python أو JavaScript عادة ما يتم تفسيرها بواسطة برامج مكتوبة بلغة C نفسها. تظل C هي الأساس. لغة ولدت في مختبر في نيو جيرسي لمساعدة شخص ما على لعب لعبة فضاء على جهاز كمبيوتر كان في الأساس آلة حاسبة عملاقة.

زر الذهاب إلى الأعلى