> ## Content Index
> Fetch the complete content index at: https://arabroot.io/llms.txt
> Use this file to discover other available public pages before exploring further.

# قصص لغات البرمجة ومن صنعها، من Fortran إلى Rust
- URL: https://arabroot.io/articles/قصص-لغات-البرمجة-ومن-صنعها/
- Published: 2026-10-05T16:00:00.000Z
- Updated: 2026-10-12T05:36:30.000Z
- Description: من صنع اللغات التي نكتب بها كل يوم، وما المشكلة التي دفعته إلى ذلك، وكيف تشرح قصة كل لغة قراراتها.
- Author: فريق عرب رووت
- Tags: الأدلة التقنية, أساسيات الحاسب والبرمجة, DevOps وCI/CD, الاستضافة الذاتية

كل سطر كود تكتبه اليوم يمر عبر لغة برمجة Programming Language صممها شخص أو فريق صغير في وقت معين ولسبب معين، فالمتغير الذي تعرفه في Python، والقوس المعقوف الذي تفتح به دالة في C أو Java، والوعد Promise الذي تنتظره في JavaScript، كلها قرارات اتخذها أشخاص لهم أسماء ووجوه، وكانوا في الغالب يحلون مشكلة مزعجة أمامهم وليس مشكلة البشرية كلها. وفي مقال [Hello World من لوحة المفاتيح إلى الشاشة](https://arabroot.io/articles/%D8%B1%D8%AD%D9%84%D8%A9-hello-world-%D9%85%D9%86-%D9%84%D9%88%D8%AD%D8%A9-%D8%A7%D9%84%D9%85%D9%81%D8%A7%D8%AA%D9%8A%D8%AD-%D8%A7%D9%84%D9%89-%D8%A7%D9%84%D8%B4%D8%A7%D8%B4%D8%A9/) تتبعنا برنامج C صغيراً من المحرر إلى الشاشة، أما هنا فسوف نرجع خطوة إلى الوراء ونسأل سؤالاً آخر: من صنع هذه اللغات، وما الذي كان يزعجه حتى قرر أن يصنع لغة جديدة بدل أن يستخدم ما هو موجود؟

والسبب في أهمية هذا السؤال للمطور أن فهم المشكلة التي ولدت منها اللغة يشرح لك الكثير من قراراتها، فعندما تعرف أن Go ولدت أثناء انتظار ترجمة Compilation تستغرق 45 دقيقة سوف تفهم لماذا يهتم فريقها بسرعة الترجمة إلى هذه الدرجة، وعندما تعرف أن JavaScript كتبت نسختها الأولى في عشرة أيام سوف تفهم بعض غرائبها التي ما زلنا نعيش معها. ولن نشرح هنا أنماط البرمجة وأنظمة الأنواع لأن لها [مقالاً خاصاً](https://arabroot.io/articles/%D8%A7%D9%86%D9%85%D8%A7%D8%B7-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D9%88%D8%A7%D9%86%D8%B8%D9%85%D8%A9-%D8%A7%D9%84%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D9%84%D9%84%D9%85%D8%A8%D8%AA%D8%AF%D8%A6%D9%8A%D9%86/)، ولن نشرح كيف تكتب مواصفات اللغات وتحكم لأن لها [مقالاً خاصاً](https://arabroot.io/articles/%D9%85%D9%88%D8%A7%D8%B5%D9%81%D8%A7%D8%AA-%D9%84%D8%BA%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D9%88%D8%AA%D8%B7%D8%A8%D9%8A%D9%82%D8%A7%D8%AA%D9%87%D8%A7-%D9%88%D8%AD%D9%88%D9%83%D9%85%D8%AA%D9%87%D8%A7/) أيضاً، وإنما سوف نحكي القصص نفسها بتواريخ من مصادرها الأصلية: صفحات التاريخ الرسمية للغات، وكتابات صانعيها بأنفسهم، وأرشيف الشركات والمتاحف.

وسوف نناقش في هذا المقال ما يلي:

- البداية قبل الحاسب: ملاحظات آدا لوفليس Ada Lovelace في 1843.
- كيف بدأت لغات المستوى العالي High-level Languages مع Fortran وCOBOL، ودور جريس هوبر Grace Hopper الحقيقي.
- قصة C وUnix في Bell Labs، ثم C++ التي ولدت من رسالة دكتوراه في Cambridge.
- لغات التسعينات: Python التي بدأت هواية في عطلة، وJava التي بدأت مشروعاً سرياً للأجهزة المنزلية، وJavaScript التي كتبت في عشرة أيام، وPHP التي بدأت أدوات لصفحة سيرة ذاتية، وRuby التي سميت باسم جوهرة.
- أندرس هايلسبرغ Anders Hejlsberg بين C# وTypeScript، ثم Go وRust، ونظرة سريعة على Swift وKotlin.
- شجرة مبسطة توضح من أخذ من من، ثم ما الذي يجمع كل هذه القصص.

## خمس عشرة لغة على خط زمني واحد

الصورة التالية تبين اللغات التي سوف نمر عليها مرتبة حسب سنة أول إصدار عام لها أو الإعلان عنها، ومع كل لغة اسم من صنعها، ولاحظ أن عام 1995 وحده أخرج أربع لغات من أشهر لغات الويب اليوم:

![خط زمني مرسوم يبدأ بلغة Fortran في 1957 ثم COBOL في 1959 وC في 1972 وC++ في 1985 وPython في 1991 ثم Java وJavaScript وPHP وRuby في 1995 وC# في 2000 وGo في 2009 وTypeScript في 2012 وSwift في 2014 وRust في 2015 وKotlin في 2016، ومع كل لغة شعارها واسم من صنعها](https://arabroot.io/content/images/2026/10/language-creators-01-timeline.webp)

من Fortran إلى Kotlin: كل لغة عند سنة أول إصدار عام أو إعلان، مع اسم صانعها

## قبل الحاسب: ملاحظات آدا لوفليس

قبل أن يوجد أي حاسب إلكتروني بأكثر من قرن، كان تشارلز باباج Charles Babbage يصمم آلة ميكانيكية سماها المحرك التحليلي Analytical Engine، وكانت آدا لوفليس، ابنة الشاعر لورد بايرون، قد تعرفت عليه في 1833 وهي في السابعة عشرة. وفي 1843 نشرت ترجمة لمقال كتبه المهندس الإيطالي لويجي منابريا Luigi Menabrea عن هذه الآلة، وأضافت إليه ملاحظات مطولة من عندها، وفي هذه الملاحظات، كما يذكر [متحف تاريخ الحاسب Computer History Museum](https://www.computerhistory.org/babbage/adalovelace/?ref=arabroot.io)، أول وصف منشور لسلسلة خطوات متتالية تحل مسألة رياضية على آلة، أي ما نسميه اليوم خوارزمية Algorithm، ولهذا توصف كثيراً بأنها «أول مبرمجة».

![لوحة مائية لآدا لوفليس بفستان بنفسجي وشال أسود وزينة زهور في شعرها](https://arabroot.io/content/images/2026/10/language-creators-02-ada-lovelace.webp)

آدا لوفليس Ada Lovelace، صاحبة ملاحظات 1843 عن المحرك التحليلي. الصورة: لوحة مائية رسمها Alfred Edward Chalon حوالي 1840 (Science Museum Group)، ملكية عامة Public Domain، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Ada%5FLovelace%5Fportrait.jpg?ref=arabroot.io) (تم تصغيرها وتحويلها إلى WebP).

ويجدر بنا أن نكون دقيقين هنا كما يفعل المتحف نفسه، فهو يذكر أن المؤرخين يختلفون في حجم إسهام آدا وأصالته مقارنة بباباج، ولكنه يذكر أيضاً أن الأهم ربما هو رؤيتها، فقد كتبت أن الآلة قد تعمل على أشياء غير الأرقام، وأنها قد تؤلف مقطوعات موسيقية، وهذه بالضبط الفكرة التي نعيشها اليوم: الحاسب لا يعالج أرقاماً فقط، وإنما أي شيء تستطيع أن تمثله بأرقام.

## البداية: Fortran وCOBOL

### جون باكوس وFortran: لأنه لم يحب كتابة البرامج

في بداية الخمسينات كان البرنامج يكتب بلغة الآلة Machine Language مباشرة، أي سلاسل من الأصفار والآحاد بترتيب دقيق، وكانت البرمجة حكراً على مجموعة صغيرة من المتخصصين. ويذكر [أرشيف IBM عن Fortran](https://www.ibm.com/history/fortran?ref=arabroot.io) أن تكلفة المبرمجين كانت في العادة تساوي تكلفة الحاسب نفسه على الأقل، وأن المبرمجين كانوا يقضون حتى نصف وقتهم في تصحيح الأخطاء Debugging، ووصف جون باكوس John Backus تلك الطريقة بأنها «قتال يد بيد مع الآلة» ("hand-to-hand combat with the machine")، والآلة هي التي تفوز في الغالب.

وكانت فكرة باكوس أن يكتب المبرمج برنامجه بشيء يشبه الصيغ الرياضية، ثم يترجمه برنامج آخر إلى لغة الآلة، وفي 1953 حصل على ميزانية ليشكل فريقاً صغيراً في IBM يختبر هذه الفكرة، وكانت إعلانات التوظيف تقول إن من يحب الشطرنج وحل الألغاز مرحب به. وكان المشروع مخططاً له أن يستغرق ستة أشهر فاستغرق ثلاث سنوات، وكان الفريق يعمل في الليل لأنه الوقت الوحيد الذي يجد فيه دوراً على حاسب IBM 704، وفي 1957 صدر Fortran، واسمه اختصار لـ Formula Translation، ومعه أول مترجم Compiler يحسن الكود Optimizing Compiler، فالبرامج التي ينتجها كانت تعمل بسرعة قريبة من البرامج المكتوبة يدوياً، وهذا ما أسكت المشككين الذين قالوا إن لغة عالية المستوى لن تكون بكفاءة الكود المكتوب باليد. وبحسب المصدر نفسه فإن البرنامج الذي كان يحتاج قرابة ألف تعليمة بلغة الآلة صار يكتب في 47 جملة Fortran، وما زالت اللغة تستخدم اليوم في توقعات الطقس ومحاكاة الجزيئات.

![صورة قديمة لجون باكوس بنظارة كبيرة وشعر خفيف وربطة عنق](https://arabroot.io/content/images/2026/10/language-creators-03-john-backus.webp)

جون باكوس John Backus، قائد فريق Fortran في IBM. الصورة: [Pierre Lescanne](https://commons.wikimedia.org/wiki/User:PIerre.Lescanne?ref=arabroot.io)، بترخيص [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/?ref=arabroot.io)، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:John%5FBackus%5F2.jpg?ref=arabroot.io) (تم تحويلها إلى WebP، والنسخة متاحة بالرخصة نفسها).

والطريف أن باكوس لم يكن طالباً نموذجياً، فقد [فصل من جامعة Virginia](https://www.ibm.com/history/john-backus?ref=arabroot.io) لكثرة غيابه، وترك كلية الطب بعد تسعة أشهر، ولما سئل عن سر أعماله قال: «الكثير من عملي جاء من الكسل» ("Much of my work has come from being lazy")، والسبب كما أكمل أنه لم يكن يحب كتابة البرامج فبدأ يعمل على نظام يجعل كتابتها أسهل، وهذا الكسل المفيد هو ما يجعل المطور اليوم يكتب سكربتاً بدل أن يكرر الأمر نفسه عشر مرات.

### جريس هوبر وCOBOL: لغة يقرأها رجال الأعمال

كانت Fortran لغة العلماء والمهندسين، ولكن الشركات والحكومات كانت تحتاج شيئاً آخر: برامج رواتب ومخازن وفواتير يكتبها ويقرأها أشخاص ليسوا رياضيين. وهنا يأتي دور جريس هوبر Grace Hopper، ويجب أن نكون دقيقين في دورها لأن الشائع أنها «اخترعت COBOL» وهذا غير صحيح بهذه الصيغة. فبحسب [جامعة Yale](https://news.yale.edu/2017/02/10/grace-murray-hopper-1906-1992-legacy-innovation-and-service?ref=arabroot.io)، طور فريقها في Remington Rand في 1952 مترجماً اسمه A-0 من أوائل المترجمات، ثم طور لغة Flow-Matic التي كانت أول لغة تستخدم أوامر قريبة من الإنجليزية، لأنها رأت أن موظفي معالجة البيانات سوف يرتاحون للكلمات أكثر من الرموز الرياضية.

وفي 1959 تشكل تحالف من الحكومة الأمريكية والشركات اسمه مؤتمر لغات أنظمة البيانات Conference on Data Systems Languages واختصاراً CODASYL، بمبادرة من وزارة الدفاع الأمريكية التي أرادت لغة واحدة تعمل على أجهزة مختلفة، وكتب هذا التحالف لغة COBOL التي [أخذت جزءاً من أفكارها من Flow-Matic](https://www.ibm.com/think/topics/cobol?ref=arabroot.io). وكانت هوبر، كما يقول [متحف تاريخ الحاسب](https://www.computerhistory.org/fellowawards/hall/grace-murray-hopper/?ref=arabroot.io)، صاحبة دور مهم في تعريف هذه اللغة، ثم قادت في الستينات جهود بناء مترجماتها ودافعت عن استخدامها في الجيش والشركات، حتى وصفها كاتب سيرتها بأنها الشخص الأكثر مسؤولية عن نجاح COBOL في تلك الفترة. أي أن COBOL عمل لجنة، وهوبر هي التي مهدت طريقها بلغتها السابقة ثم نشرتها.

![صورة رسمية لجريس هوبر بزي البحرية الأمريكية وقبعة ونظارة وخلفها العلم الأمريكي](https://arabroot.io/content/images/2026/10/language-creators-04-grace-hopper.webp)

جريس هوبر Grace Hopper في صورة رسمية للبحرية الأمريكية سنة 1984\. الصورة: James S. Davis (البحرية الأمريكية)، ملكية عامة Public Domain، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Commodore%5FGrace%5FM.%5FHopper,%5FUSN%5F%28covered%29%5Fhead%5Fand%5Fshoulders%5Fcrop.jpg?ref=arabroot.io) (تم تصغيرها وتحويلها إلى WebP).

ومن القصص المرتبطة باسمها قصة «الحشرة» الأولى، ففي 9 سبتمبر 1947 وجد فريق حاسب Harvard Mark II فراشة عالقة بين ملامسات أحد المرحلات Relays، فألصقوها في سجل الحاسب وكتب أحدهم بجانبها «أول حالة فعلية لوجود حشرة» ("First actual case of bug being found")، ويذكر [متحف تاريخ الحاسب](https://www.computerhistory.org/tdih/september/9/?ref=arabroot.io) أن هوبر كانت حاضرة وأنها هي التي جعلت القصة مشهورة في محاضراتها، ولكن كلمة Bug بمعنى العطل أقدم من ذلك بكثير وتعود إلى أيام توماس إديسون. لذلك عندما تقول لزميلك إن عندك Bug فأنت تستخدم كلمة عمرها أكثر من قرن، والفراشة جاءت لتؤكد المعنى حرفياً.

## C وUnix: لغة صنعت من أجل نظام تشغيل

في 1969 انسحبت Bell Labs من مشروع Multics، وهو نظام تشغيل ضخم كانت تبنيه مع MIT وGeneral Electric، والسبب كما يكتب دينيس ريتشي Dennis Ritchie في ورقته [The Development of the C Language](https://www.nokia.com/bell-labs/about/dennis-m-ritchie/chist.html?ref=arabroot.io) أن الإدارة وحتى الباحثين اقتنعوا بأن وعود Multics سوف تتحقق متأخرة جداً وبتكلفة عالية جداً. ولكن مجموعة صغيرة يقودها كين تومسون Ken Thompson بدأت تكتب نظاماً أبسط على حاسب PDP-7 صغير، وهو النظام الذي صار اسمه Unix، وأراد تومسون لغة برمجة للنظام الجديد، فبعد محاولة سريعة مع Fortran تخلى عنها صنع لغة سماها B، ويصفها ريتشي بأنها BCPL «معصورة في 8 كيلوبايت من الذاكرة» ("BCPL squeezed into 8K bytes of memory") ومفلترة عبر عقل تومسون، وBCPL لغة صممها مارتن ريتشاردز Martin Richards في منتصف الستينات.

![صورة دينيس ريتشي بلحية رمادية وبدلة داكنة وربطة عنق في حفل جائزة اليابان](https://arabroot.io/content/images/2026/10/language-creators-05-dennis-ritchie.webp)

دينيس ريتشي Dennis Ritchie، صانع C وأحد صانعي Unix، في حفل جائزة اليابان Japan Prize سنة 2011\. الصورة: Denise Panyik-Dale، بترخيص [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/?ref=arabroot.io)، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Dennis%5FRitchie%5F2011.jpg?ref=arabroot.io) (تم تحويلها إلى WebP).

وفي 1970 حصل الفريق على حاسب PDP-11 جديد، وهنا ظهرت مشكلة B الحقيقية: فهي لا تعرف إلا نوعاً واحداً هو «الخلية» التي تساوي كلمة الآلة Machine Word، وهذا كان مناسباً للأجهزة القديمة ولكنه صار ثقيلاً على جهاز يتعامل بالبايت Byte، فالتعامل مع الحروف صار متعباً، والأعداد العشرية Floating-point لا تتسع في كلمة من 16 بت. لذلك بدأ ريتشي في 1971 يضيف إلى B نوعاً للحروف ويعيد كتابة مترجمها لينتج تعليمات PDP-11 مباشرة، وسمى النسخة المعدلة NB أي «B الجديدة»، ثم لما اكتمل نظام الأنواع Type System رأى أنها تستحق اسماً جديداً فسماها C. ويذكر ريتشي أن أكثر فترة إبداعية في تطوير اللغة كانت خلال 1972، وأنه بحلول بداية 1973 كانت أساسيات C الحديثة قد اكتملت، فأعادوا كتابة نواة Unix بلغة C في صيف ذلك العام، وهذه هي اللحظة التي صار فيها نظام التشغيل قابلاً للنقل Portable إلى أجهزة أخرى بإعادة ترجمته بدل إعادة كتابته.

![صورة كين تومسون بلحية بيضاء ونظارة يتحدث في مؤتمر VCF East سنة 2019](https://arabroot.io/content/images/2026/10/language-creators-06-ken-thompson.webp)

كين تومسون Ken Thompson، صانع B وUnix وأحد صانعي Go، في مؤتمر VCF East سنة 2019\. الصورة: A.C.Diller، بترخيص [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/?ref=arabroot.io)، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Ken%5FThompson,%5F2019.jpg?ref=arabroot.io) (تم تحويلها إلى WebP، والنسخة متاحة بالرخصة نفسها).

وفي 1978 نشر براين كيرنيغان Brian Kernighan وريتشي كتاب The C Programming Language الذي يعرف باسم K&R، ومنه انتشر مثال Hello World الذي [تتبعناه في مقال سابق](https://arabroot.io/articles/%D8%B1%D8%AD%D9%84%D8%A9-hello-world-%D9%85%D9%86-%D9%84%D9%88%D8%AD%D8%A9-%D8%A7%D9%84%D9%85%D9%81%D8%A7%D8%AA%D9%8A%D8%AD-%D8%A7%D9%84%D9%89-%D8%A7%D9%84%D8%B4%D8%A7%D8%B4%D8%A9/)، ثم صارت للغة مواصفة رسمية من لجنة ANSI X3J11 في الثمانينات، وقصة المواصفات هذه نتركها [لمقال المواصفات](https://arabroot.io/articles/%D9%85%D9%88%D8%A7%D8%B5%D9%81%D8%A7%D8%AA-%D9%84%D8%BA%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D9%88%D8%AA%D8%B7%D8%A8%D9%8A%D9%82%D8%A7%D8%AA%D9%87%D8%A7-%D9%88%D8%AD%D9%88%D9%83%D9%85%D8%AA%D9%87%D8%A7/). وقد يتساءل البعض: لماذا اسمها C؟ والإجابة أن ريتشي نفسه ترك السؤال مفتوحاً عن قصد، فقد كتب أنه اتبع أسلوب الحرف الواحد وترك للناس أن يقرروا هل الاسم يعني الحرف التالي في الأبجدية بعد B، أم الحرف التالي في كلمة BCPL. والطريف أن B انتقلت مع أحد زملائهم إلى جامعة Waterloo في كندا وولدت هناك لغتين اسمهما Eh وZed، وهما بحسب ريتشي الجواب الكندي على سؤال «ما الذي يأتي بعد B؟».

## C++: رسالة دكتوراه ومحاكي بطيء

قبل أن يصل بيارنه ستروستروب Bjarne Stroustrup إلى Bell Labs كان يكتب رسالة الدكتوراه في جامعة Cambridge، وكان يحتاج محاكياً Simulator ضخماً لنظام موزع، فكتبه بلغة Simula واستمتع بذلك، لأن الكلاسات Classes في Simula ساعدته على أن يفكر في مشكلته نفسها. ولكن المحاكي كان بطيئاً جداً لدرجة كادت توقف المشروع، فأعاد كتابته بلغة BCPL، وهنا صارت التجربة كما يصفها في [ورقته عن تاريخ C++](https://www.stroustrup.com/hopl2.pdf?ref=arabroot.io) «مريعة»، وكتب أن «BCPL تجعل C تبدو لغة عالية المستوى جداً» ("BCPL makes C look like a very high level language")، فخرج من Cambridge وقد أقسم ألا يواجه مشكلة كهذه مرة أخرى بأدوات غير مناسبة.

![صورة بيارنه ستروستروب بنظارة وقميص أسود ينظر إلى الأعلى في مسابقة ICPC](https://arabroot.io/content/images/2026/10/language-creators-07-bjarne-stroustrup.webp)

بيارنه ستروستروب Bjarne Stroustrup، صانع C++، في مسابقة ICPC سنة 2013\. الصورة: ICPCNews (تصوير Victor Zavyalov)، بترخيص [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/?ref=arabroot.io)، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Bjarne%5FStroustrup%5F%282013%29.jpg?ref=arabroot.io) (تم تصغيرها وتحويلها إلى WebP).

وفي أبريل 1979 بدأ العمل في مركز أبحاث Bell Labs في Murray Hill على تحليل نواة Unix لمعرفة هل يمكن توزيعها على أكثر من حاسب في شبكة، فوجد نفسه أمام النوع نفسه من المشاكل، فقرر أن يبني الأداة التي تمناها: كلاسات Simula مع سرعة C ومرونتها. وفي أكتوبر 1979 كان لديه معالج مسبق Preprocessor اسمه Cpre يضيف كلاسات إلى C، وسميت اللغة «C with Classes»، ثم بحسب [صفحة الأسئلة الشائعة لستروستروب](https://www.stroustrup.com/bs%5Ffaq.html?ref=arabroot.io) استخدمت أول نسخة من C++ داخل AT&T في أغسطس 1983، والاسم اقترحه زميله ريك ماسكيتي Rick Mascitti في 1983، وصدرت أول نسخة تجارية في أكتوبر 1985 مع الطبعة الأولى من كتاب The C++ Programming Language. ولاحظ أن الاسم نفسه نكتة مبرمجين، فالعامل `++` في C يعني «زد واحداً»، أي أنها C بعد خطوة واحدة.

ومن التفاصيل اللطيفة أن أول مترجم لـ C++ واسمه Cfront كتب بلغة C++ نفسها، والطريقة أن ستروستروب كتب أولاً بلغة C معالجاً يحول «C with Classes» إلى C، ثم كتب Cfront بلغة «C with Classes»، وهذه الحيلة اسمها التمهيد الذاتي Bootstrapping، وفعلها تومسون قبله عندما أعاد كتابة مترجم B بلغة B.

## Python: هواية لأسبوع عيد الميلاد

كان جيدو فان روسم Guido van Rossum يعمل في مركز CWI للأبحاث في أمستردام، وقضى أربع أو خمس سنوات في فريق لغة اسمها ABC صممت لتعليم البرمجة، ثم انتهى مشروع ABC لعدم نجاحه الواضح وانتقل جيدو إلى فريق نظام تشغيل موزع اسمه Amoeba، وكما يكتب في [سلسلة تاريخ Python](https://python-history.blogspot.com/2009/01/personal-history-part-1-cwi.html?ref=arabroot.io) فإن ABC أعطته الإلهام الأساسي، وAmoeba أعطته الدافع المباشر، لأن الفريق كان يحتاج لغة لكتابة أدوات النظام أسهل من C وأقوى من Shell. وفي [مقدمة كتبها لكتاب Programming Python](https://www.python.org/doc/essays/foreword/?ref=arabroot.io) يحكي أنه في ديسمبر 1989 كان يبحث عن مشروع «هواية» ("hobby") يشغله خلال أسبوع عيد الميلاد، فالمكتب مغلق وعنده حاسب في البيت ولا شيء آخر يشغله، فقرر أن يكتب مفسراً Interpreter للغة جديدة يأخذ فيها كل ما أحبه في ABC ويصلح ما رآه من مشاكلها.

![صورة جيدو فان روسم بشعر رمادي ولحية خفيفة ونظارة يبتسم في مؤتمر PyCon US 2024](https://arabroot.io/content/images/2026/10/language-creators-08-guido-van-rossum.webp)

جيدو فان روسم Guido van Rossum، صانع Python، في مؤتمر PyCon US 2024\. الصورة: Kushal Das، بترخيص [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/?ref=arabroot.io)، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Guido%5Fvan%5FRossum%5Fin%5FPyConUS24%5F%28cropped%29.jpg?ref=arabroot.io) (تم تصغيرها وتحويلها إلى WebP، والنسخة متاحة بالرخصة نفسها).

وفي 20 فبراير 1991 نشر الإصدار 0.9.0 في مجموعة alt.sources على Usenet، مقسماً إلى 21 جزءاً يجب أن تجمعها وتفك ترميزها لتحصل على ملف مضغوط، وكانت رخصته تكاد تكون نسخة حرفية من رخصة MIT، وهي من الرخص المتساهلة التي شرحناها في [مقال البرمجيات مفتوحة المصدر ورخصها](https://arabroot.io/articles/%D9%85%D8%A7-%D9%87%D9%8A-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A7%D8%AA-%D9%85%D9%81%D8%AA%D9%88%D8%AD%D8%A9-%D8%A7%D9%84%D9%85%D8%B5%D8%AF%D8%B1-%D9%88%D8%AA%D8%B1%D8%A7%D8%AE%D9%8A%D8%B5%D9%87%D8%A7/). أما الاسم فلا علاقة له بالأفعى كما يظن أغلب الناس، فبحسب [الأسئلة الشائعة في وثائق Python](https://docs.python.org/3/faq/general.html?ref=arabroot.io) كان جيدو يقرأ نصوص البرنامج الكوميدي «Monty Python's Flying Circus» من BBC، وأراد اسماً قصيراً وفريداً وفيه شيء من الغموض، والأفعى جاءت لاحقاً لأن دار O'Reilly تضع حيواناً على غلاف كل كتاب.

ومن الأشياء المخفية في اللغة نص اسمه The Zen of Python، كتبه تيم بيترز Tim Peters ونشر في [PEP 20](https://peps.python.org/pep-0020/?ref=arabroot.io)، ويلخص مبادئ تصميم اللغة في عشرين حكمة كتبت منها تسع عشرة فقط، وتستطيع أن تقرأه من أي نسخة Python بأمر واحد، والمثال التالي يبين ذلك داخل Container من Docker Image الرسمية `python:3.13-slim`:

```bash
docker run --rm python:3.13-slim python3 -c 'import this'
```

والمخرج سوف يكون كما يلي:

```text
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
```

في المخرج أعلاه لاحظ التالي:

- السطر الذي يقول إن الطريقة الواضحة قد لا تكون واضحة «إلا إذا كنت هولندياً» إشارة إلى جيدو نفسه، فهو هولندي.
- عبارة «Readability counts» هي سبب قرارات كثيرة في اللغة، منها أن المسافات البادئة Indentation جزء من القواعد وليست تنسيقاً اختيارياً.
- الأمر `import this` مكتبة حقيقية في المكتبة القياسية Standard Library، أي أن مزحة صغيرة صارت جزءاً من كل نسخة Python على الأرض.

### لماذا بقي self صريحاً في Python؟

وأوضح مثال على عبارة «Explicit is better than implicit» في المخرج أعلاه هو الكلمة `self` التي تكتبها أول معامل في كل دالة داخل كلاس، وهي من أكثر ما يشتكي منه من يأتي إلى Python من Java أو C#. وفي 23 سبتمبر 2008 كتب بروس إيكل Bruce Eckel، مؤلف كتاب Thinking in Java، تدوينة على Artima بعنوان [Self in the Argument List: Redundant is not Explicit](https://www.artima.com/weblogs/viewpost.jsp?thread=239003&ref=arabroot.io)، قال فيها إن `self` ضرورية داخل جسم الدالة لتفرق بين متغيرات الكائن والمتغيرات العامة، ولكن كتابتها في قائمة المعاملات تكرار لا فائدة منه، وسأل لماذا يكون التصريح أفضل عند تعريف الدالة بينما نقبل أن يمرر الكائن ضمنياً عند استدعائها، مع أنه كتب بنفسه أنه لا يتوقع أن يتغير شيء.

وفي 26 أكتوبر 2008 رد جيدو فان روسم في مدونته بتدوينة عنوانها [Why explicit self has to stay](https://neopythonic.blogspot.com/2008/10/why-explicit-self-has-to-stay.html?ref=arabroot.io)، وبدأ بتلخيص الاقتراح: أن تحذف `self` من قائمة المعاملات وتصبح كلمة محجوزة Keyword تستخدم داخل الدالة فقط. واعترف بأن المشكلة حقيقية، فمن ينسى `self` يحصل على رسائل خطأ غامضة، ولكنه قال إنه يفضل أن تصلح رسائل الخطأ دون أن تتغير اللغة، ثم شرح لماذا لا يمكن أن ينجح الاقتراح:

- **الاستدعاءان شيء واحد**: مع `self` الصريحة يصبح `foo.meth(arg)` مساوياً تماماً لـ `C.meth(foo, arg)` إذا كان `foo` كائناً من الكلاس `C`، واعترف جيدو بأن هذه الحجة نظرية في الغالب.
- **إضافة دالة إلى الكلاس بعد تعريفه**: تستطيع أن تكتب دالة عادية خارج الكلاس، أول معامل فيها هو الكائن، ثم تضعها في الكلاس بسطر مثل `C.meth = meth`، فتصبح دالة في كل كائناته، حتى الكائنات التي أنشئت قبل ذلك، وهذا يعمل لأن الدالة داخل الكلاس هي دالة عادية تأخذ الكائن أول معامل.
- **ال Decorators**: وهذه الحجة التي سماها «the ultimate downfall» للاقتراح، فإذا كانت الدالة عليها Decorator فلا يستطيع المترجم أن يعرف هل يضيف لها `self` ضمنية أم لا، لأن ال Decorator قد يجعلها `staticmethod` بلا `self`، أو `classmethod` يكون أول معامل فيها الكلاس نفسه، أو أي شيء آخر، ومن السهل أن تكتب Decorator يعمل عمل `classmethod` بلغة Python نفسها. ورفض جيدو أن تعامل `@classmethod` و`@staticmethod` كحالتين خاصتين، ورفض أن يحدد نوع الدالة من فحص جسمها، لأن ذلك يجعل من الصعب أن تعرف كيف تستدعى الدالة من سطر `def` وحده.

والمثال التالي يبين الحجتين الأوليين، ثم الخطأ الذي يحصل عليه من ينسى `self`:

```python
class C:
    def meth(self, arg):
        self.val = arg
        return self.val

foo = C()
print(foo.meth(1) == C.meth(foo, 1))   # the same call written two ways

def meth2(myself, arg):                # a plain function, injected later
    return myself.val + arg

C.meth2 = meth2
print(foo.meth2(10))                   # works on an object created before

class D:
    def forgot(arg):                   # self forgotten
        return arg

D().forgot(5)
```

وعند تشغيله داخل Container من Docker Image الرسمية `python:3.13-slim` سوف يكون المخرج كما يلي:

```text
True
11
Traceback (most recent call last):
  File "/demo/self_demo.py", line 24, in <module>
    D().forgot(5)
    ~~~~~~~~~~^^^
TypeError: D.forgot() takes 1 positional argument but 2 were given
```

ولاحظ أن الرسالة «takes 1 positional argument but 2 were given» ما زالت تحير المبتدئ، فهو كتب معاملاً واحداً ومرر معاملاً واحداً، والمعامل الثاني الذي لا يراه هو الكائن نفسه. وهذه بالضبط المشكلة التي اعترف بها جيدو، والثمن الذي قبله مقابل أن تبقى القاعدة واحدة في كل الحالات.

ولم يكتف جيدو بالرفض، فقد ذكر أن الاقتراح الوحيد الذي يستحق النظر هو أن تقبل اللغة الصياغة `def self.foo(arg): ...` داخل الكلاس كاختصار Syntactic Sugar لـ `def foo(self, arg): ...`، ومثلها `def cls.foo(arg)` مع `@classmethod`، لأنها لا تكسر الكود القديم Backward Compatible ويمكن أن تكتب لها PEP بتطبيق مرجعي دون جهد كبير، ومع ذلك قال إنه لا يفضلها على الوضع الحالي، وكتب أن إيكل كان سيكتشف عيوب اقتراحه بنفسه لو حاول أن يكتب له PEP متكاملاً أو أن يطبقه. وفي هذه القصة درس في طريقة تفكير مصمم اللغة: الراحة Convenience التي يطلبها المطور حقيقية، ولكنها تقاس بما تكسره في الاتساق Consistency، فقاعدة «الدالة داخل الكلاس دالة عادية أول معاملها الكائن» هي التي تجعل ال Decorators وإضافة الدوال بعد التعريف تعمل دون أي حالة خاصة، وتوفير ستة أحرف في كل دالة لا تستحق أن تكسر ذلك.

والطريف أن هذه ليست المرة الوحيدة التي يقترح فيها إيكل تغييراً في لغة ويرفضه الطرف الآخر، فقبلها بسنوات كتب أن الاستثناءات المفحوصة Checked Exceptions في Java تجربة فشلت لأنها تدفع المطورين إلى ابتلاع الأخطاء، ورد عليه إليوت رستي هارولد بمقال عنوانه «Bruce Eckel is Wrong»، وقد حكينا تلك القصة في [مقال كيف تتعامل لغات البرمجة مع الأخطاء](https://arabroot.io/articles/%D9%83%D9%8A%D9%81-%D8%AA%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%84%D8%BA%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D8%AE%D8%B7%D8%A7%D8%A1/#debate). وفي القصتين كان إيكل يدافع عن راحة المطور، وكان الطرف الآخر يدافع عن قاعدة واحدة واضحة.

## Java: مشروع سري لجهاز لم يره أحد

في 1991 بدأت Sun Microsystems مشروعاً سرياً سمته Green Project، بدأه باتريك نوتون Patrick Naughton ومايك شيريدان Mike Sheridan وجيمس جوسلينج James Gosling، ولم يكن الهدف لغة برمجة أصلاً، وإنما توقع «الموجة القادمة» في الحوسبة، وكان استنتاجهم أن الأجهزة المنزلية الرقمية سوف تلتقي بالحاسب. وبحسب [صفحة Sun عن السنوات الأولى لـ Java](https://web.archive.org/web/20050420081440/http://java.sun.com/features/1998/05/birthday.html) عزل الفريق نفسه في مكتب مجهول في Menlo Park وعمل ثمانية عشر شهراً، وخرج في صيف 1992 بجهاز تحكم محمول بشاشة لمس اسمه \*7 (StarSeven)، وعليه شخصية متحركة صارت لاحقاً تميمة Java واسمها Duke. وكان الجهاز يعمل على أجهزة مختلفة لأنه مكتوب بلغة جديدة لا ترتبط بمعالج معين، صممها جوسلينج خصيصاً له وسماها Oak على اسم الشجرة التي كانت خارج نافذته.

![صورة جيمس جوسلينج بلحية ونظارة وقميص أسود يتحدث ويشير بيديه](https://arabroot.io/content/images/2026/10/language-creators-09-james-gosling.webp)

جيمس جوسلينج James Gosling، المهندس الرئيسي ومصمم Java، في ندوة Enterprise Java Australia. الصورة: Peter Campbell، بترخيص [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/?ref=arabroot.io)، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:James%5FGosling%5F2008.jpg?ref=arabroot.io) (تم تصغيرها وتحويلها إلى WebP، والنسخة متاحة بالرخصة نفسها).

ولكن سوق أجهزة التلفاز التفاعلي لم يكن جاهزاً بعد، ثم جاء متصفح Mosaic في 1993 وجعل الويب سهلاً للجميع، فانتبه الفريق إلى أن الإنترنت صار بالضبط الشبكة التي كانوا يحاولون إقناع شركات الكابل ببنائها، فكتبوا في 1994 متصفحاً بلغتهم سموه WebRunner ثم صار اسمه HotJava. وفي بداية 1995 عرضه جون جيج John Gage في مؤتمر TED، فلما حرك جوسلينج الماوس فوق صورة جزيء ثلاثي الأبعاد داخل الصفحة وبدأ الجزيء يدور، وقف الحضور يصفقون، لأنهم لم يروا قبل ذلك داخل المتصفح إلا صوراً ثابتة. وفي 23 مايو 1995 أعلن جيج مع مارك أندريسن Marc Andreessen من Netscape في مؤتمر SunWorld أن Java صارت حقيقة، وسوف ترى بعد قليل أن هذا الإعلان نفسه أثر في لغة أخرى ولدت في الشهر نفسه.

وتقول [مواصفة لغة Java](https://docs.oracle.com/javase/specs/jls/se21/html/jls-1.html?ref=arabroot.io) في مقدمتها إن اللغة مرتبطة بلغتي C وC++ ولكنها منظمة بطريقة مختلفة، فقد حذفت منها أجزاء من C وC++ وأضيفت إليها أفكار من لغات أخرى، وهذا ما يفسر لماذا يشعر مبرمج C++ بالألفة عندما يقرأ كود Java لأول مرة.

## JavaScript: عشرة أيام في مايو 1995

انضم برندن آيك Brendan Eich إلى Netscape في 1995 بوعد أن يضع لغة Scheme في المتصفح، وكما يكتب في [مقاله عن تلك الفترة](https://brendaneich.com/2008/04/popularity/?ref=arabroot.io) كانت إدارة Netscape مقتنعة بأن الصفحات تحتاج لغة تكتب داخل HTML مباشرة. ولكن الأمر الذي جاء من الإدارة الهندسية العليا كان أن اللغة يجب أن «تبدو مثل Java» ("look like Java")، والسبب أن Netscape تصورت نوعين من المبرمجين: محترفون يكتبون المكونات بلغة C++ أو Java، وكاتبو سكربتات يكتبون الكود داخل HTML مباشرة، فأرادت للنوع الثاني لغة صغيرة تقف بجانب Java، وهذا الشرط أخرج Perl وPython وTcl وScheme من السباق.

![صورة رسمية لبرندن آيك يبتسم بنظارة وبدلة داكنة وقميص أبيض](https://arabroot.io/content/images/2026/10/language-creators-10-brendan-eich.webp)

برندن آيك Brendan Eich، صانع JavaScript، في صورته الرسمية من Mozilla Foundation سنة 2012\. الصورة: Darcy Padilla، بترخيص [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/?ref=arabroot.io)، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Brendan%5FEich%5FMozilla%5FFoundation%5Fofficial%5Fphoto.jpg?ref=arabroot.io) (تم تصغيرها وتحويلها إلى WebP، والنسخة متاحة بالرخصة نفسها).

فكتب آيك النموذج الأول في عشرة أيام في مايو 1995، وهو ما يؤكده بنفسه في [تدوينة على موقعه](https://brendaneich.com/2011/06/new-javascript-engine-module-owner/?ref=arabroot.io)، وفي ورقة [JavaScript: The First 20 Years](https://doi.org/10.5281/zenodo.4960086?ref=arabroot.io) التي كتبها مع ألن ويرفس بروك Allen Wirfs-Brock، وكان اسم النموذج Mocha، فلما ظهرت اللغة للجمهور أول مرة في سبتمبر 1995 مع النسخة التجريبية الأولى من Netscape Navigator 2.0 كان اسمها LiveScript، ثم في 4 ديسمبر 1995 أعلنت Netscape وSun معاً في [بيان صحفي مشترك](https://web.archive.org/web/20070916144913/http://wp.netscape.com/newsref/pr/newsrelease67.html) لغة اسمها JavaScript، وقدمتها «مكملة لـ Java» بدعم 28 شركة. أي أن الاسم كان قراراً تسويقياً يربطها بلغة Sun المشهورة، ولا علاقة تقنية بين اللغتين إلا الشكل.

وقد يتساءل البعض: إذا كانت تشبه Java في الشكل، فمن أين جاءت روحها؟ والإجابة يقولها آيك نفسه في المقال الأول: اختار «دوال من الدرجة الأولى على طريقة Scheme ونماذج أولية Prototypes على طريقة Self» ("Scheme-ish first-class functions and Self-ish (albeit singular) prototypes")، لذلك تستطيع في JavaScript أن تمرر دالة كأي قيمة، وأن يرث كائن من كائن آخر مباشرة دون كلاسات، وهذان من أقوى ما في اللغة اليوم. وللأمانة فإن آيك نفسه ليس متساهلاً مع لغته، فقد وصفها في المقال نفسه بأنها «ابن متعجل لـ C وSelf» ("quickie love-child of C and Self").

## PHP: أدوات صغيرة لصفحة سيرة ذاتية

في 1994 أراد راسموس ليردورف Rasmus Lerdorf أن يعرف من يزور صفحة سيرته الذاتية على الإنترنت، فكتب مجموعة صغيرة من برامج CGI بلغة C، وسماها بحسب [صفحة تاريخ PHP الرسمية](https://www.php.net/manual/en/history.php.php?ref=arabroot.io) «Personal Home Page Tools» أي أدوات الصفحة الشخصية. ثم أضاف إليها التعامل مع قواعد البيانات وما يلزم لبناء تطبيقات بسيطة مثل دفتر الزوار Guestbook، وفي يونيو 1995 نشر الكود المصدري للجميع، فصار المستخدمون يرسلون إصلاحات الأخطاء ويحسنون الأدوات، وهذا القرار البسيط هو الذي حول مشروعاً شخصياً إلى لغة يستخدمها الملايين.

![صورة راسموس ليردورف بنظارة وقميص داكن في مؤتمر PHP في نيوزيلندا](https://arabroot.io/content/images/2026/10/language-creators-11-rasmus-lerdorf.webp)

راسموس ليردورف Rasmus Lerdorf، صانع PHP، في مؤتمر New Zealand PHP Conference سنة 2014\. الصورة: William Stadtwald Demchick، بترخيص [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/?ref=arabroot.io)، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Rasmus%5FLerdorf%5FAugust%5F2014%5F%28cropped%29.JPG?ref=arabroot.io) (تم قصها وتصغيرها وتحويلها إلى WebP، والنسخة المعدلة متاحة بالرخصة نفسها).

وفي سبتمبر 1995 أعاد كتابة الأدوات وسماها FI، اختصاراً لـ Forms Interpreter، وكان فيها متغيرات تشبه متغيرات Perl وكود يوضع داخل HTML، ثم أعاد الاسم PHP في أكتوبر من العام نفسه. وفي 1997 احتاج طالبان من تل أبيب هما آندي جوتمانس Andi Gutmans وزئيف سوراسكي Zeev Suraski لغة أقوى لمشروع تجارة إلكترونية في الجامعة، فأعادا كتابة المحلل Parser بالكامل، واتفقا مع ليردورف على أن تكون النسخة الجديدة PHP 3.0\. والطريف هنا قصة الاسم، فقد أرادوا التخلص من معنى «الصفحة الشخصية» الذي يوحي بأداة صغيرة، فصار PHP اختصاراً يشير إلى نفسه Recursive Acronym هو PHP: Hypertext Preprocessor، تماماً كما فعل مشروع GNU قبله.

## Ruby: لغة سميت باسم جوهرة

في 24 فبراير 1993 كان يوكيهيرو ماتسوموتو Yukihiro Matsumoto، المعروف باسم Matz، يتحدث مع زميل له عن إمكانية وجود لغة سكربتات Scripting Language كائنية التوجه Object-oriented، وكما يحكي في رسالة نقلتها [الأسئلة الشائعة الرسمية لـ Ruby](https://www.ruby-lang.org/en/documentation/faq/1/?ref=arabroot.io) كان يعرف Perl ولم يحبها لأنها بدت له لعبة، وكان يعرف Python ولم يرها كائنية التوجه بالكامل، فقرر أن يصنع لغته. ويعتبر Matz هذا اليوم عيد ميلاد Ruby. أما الاسم فله قصة لطيفة تذكرها الصفحة نفسها: فقد أراد اسم جوهرة لأنه تأثر بـ Perl (اللؤلؤ)، فاختار حجر ميلاد أحد زملائه وهو الياقوت Ruby، ثم انتبه لاحقاً إلى أن الياقوت يأتي بعد اللؤلؤ في أحجار الشهور، فاللؤلؤ لشهر يونيو والياقوت لشهر يوليو.

![صورة بالأبيض والأسود ليوكيهيرو ماتسوموتو يضحك بنظارة وشعر أسود](https://arabroot.io/content/images/2026/10/language-creators-12-yukihiro-matsumoto.webp)

يوكيهيرو ماتسوموتو Yukihiro Matsumoto، صانع Ruby، سنة 2018\. الصورة: Christopher Adams، بترخيص [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/?ref=arabroot.io)، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Yukihiro%5FMatsumoto%5F%282018%29.jpg?ref=arabroot.io) (تم تصغيرها وتحويلها إلى WebP).

واستغرق تشغيل المفسر عدة أشهر، ونشر Ruby 0.95 في مجموعات الأخبار اليابانية في ديسمبر 1995، وتقول [صفحة التعريف الرسمية](https://www.ruby-lang.org/en/about/?ref=arabroot.io) إنه مزج أجزاء من لغاته المفضلة Perl وSmalltalk وEiffel وAda وLisp، وإنه يردد أنه «يحاول أن يجعل Ruby طبيعية وليست بسيطة» ("trying to make Ruby natural, not simple"). وظلت اللغة لسنوات مشهورة في اليابان أكثر من خارجها، حتى جاء إطار Ruby on Rails فانتشرت في العالم، وتذكر الصفحة نفسها أن Ruby وصلت إلى القبول الواسع في 2006.

## أندرس هايلسبرغ: من C# إلى TypeScript

قليل من الناس صمموا لغة واحدة مشهورة، وأقل منهم صمموا أكثر من لغة، أما أندرس هايلسبرغ Anders Hejlsberg فتعرفه [صفحته في مدونة Microsoft](https://devblogs.microsoft.com/typescript/author/andersh/?ref=arabroot.io) بأنه المصمم الأصلي لـ Turbo Pascal وDelphi وC#، والمعماري الرئيسي لـ TypeScript، أي أن جيلاً كاملاً من المطورين تعلم البرمجة على أدوات صممها هذا الرجل الدنماركي دون أن يعرف اسمه.

![صورة أندرس هايلسبرغ يبتسم بنظارة وقميص فاتح في مؤتمر PDC 2008](https://arabroot.io/content/images/2026/10/language-creators-13-anders-hejlsberg.webp)

أندرس هايلسبرغ Anders Hejlsberg، المعماري الرئيسي لـ C# وTypeScript، في مؤتمر PDC سنة 2008\. الصورة: DBegley، بترخيص [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/?ref=arabroot.io)، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Anders%5FHejlsberg.jpg?ref=arabroot.io) (تم تصغيرها وتحويلها إلى WebP).

في 26 يونيو 2000 أعلنت Microsoft في [بيان صحفي](https://web.archive.org/web/20081118122803/http://www.microsoft.com/PressPass/press/2000/jun00/CSharpPR.asp) عن لغة C# (تنطق C Sharp) لمنصة .NET الجديدة التي أعلنت قبلها بأسبوع، وصدر الإصدار 1.0 في يناير 2002 مع Visual Studio .NET 2002، وتعترف [صفحة تاريخ C# الرسمية](https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history?ref=arabroot.io) بأن ذلك الإصدار «كان يشبه Java كثيراً» ("looked a lot like Java")، بلا Generics ولا LINQ ولا async، ثم صارت C# على مدى السنين واحدة من أغنى اللغات بالميزات. وتصف [جولة C# في وثائق Microsoft](https://learn.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/overview?ref=arabroot.io) اللغة بأنها من عائلة C، وأن من استخدم C أو C++ أو Java أو JavaScript سوف يجد صياغتها مألوفة.

وبعد عشر سنوات تقريباً واجه هايلسبرغ مشكلة من نوع آخر: الشركات صارت تكتب تطبيقات ضخمة بلغة JavaScript، واللغة لم تصمم لذلك، فلا توجد أنواع Types تكتشف الأخطاء قبل التشغيل ولا أدوات تفهم الكود الكبير. وفي 1 أكتوبر 2012 أعلنت Microsoft [لغة TypeScript](https://devblogs.microsoft.com/somasegar/typescript-javascript-development-at-application-scale/?ref=arabroot.io) بوصفها مجموعة أكبر Superset من JavaScript، أي أن كل كود JavaScript صحيح هو كود TypeScript صحيح، والمترجم يضيف فحص الأنواع ثم يخرج JavaScript عادية. والطريف أن قصة TypeScript تلتقي بقصة Go التي سوف نحكيها الآن، ففي 11 مارس 2025 أعلن هايلسبرغ بنفسه في تدوينة [A 10x Faster TypeScript](https://devblogs.microsoft.com/typescript/typescript-native-port/?ref=arabroot.io) نقل مترجم TypeScript من TypeScript إلى Go ليصبح أسرع بعشرة أضعاف، وفي 8 يوليو 2026 صدر [TypeScript 7.0](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/?ref=arabroot.io) بهذا المترجم الجديد.

## Go: ولدت أثناء انتظار الترجمة

في سبتمبر 2007 كان روب بايك Rob Pike في Google يعمل على تعديل صغير في برنامج C++ ضخم، وكما يحكي في مقاله [Less is exponentially more](https://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html?ref=arabroot.io) كانت ترجمة البرنامج تستغرق قرابة 45 دقيقة على عنقود الترجمة الموزع الضخم في الشركة، وفي أثناء ذلك حضر محاضرة عن الإصدار القادم من C++ الذي كان يسمى C++0x، فسمع عن قرابة 35 ميزة جديدة، فسأل نفسه هل كانت مشكلة C++ فعلاً أنها تحتاج ميزات أكثر؟ وتقول [الأسئلة الشائعة الرسمية لـ Go](https://go.dev/doc/faq?ref=arabroot.io) إن اللغة «ولدت من الإحباط من اللغات الموجودة» ("Go was born out of frustration with existing languages")، لأن المبرمج كان عليه أن يختار بين ترجمة سريعة أو تشغيل سريع أو سهولة في البرمجة، ولا توجد لغة شائعة تعطيه الثلاثة معاً.

![صورة روب بايك بنظارة حمراء وقميص أسود عليه دب أبيض يتحدث من منصة في مؤتمر OSCON](https://arabroot.io/content/images/2026/10/language-creators-14-rob-pike.webp)

روب بايك Rob Pike، أحد صانعي Go الثلاثة، في مؤتمر OSCON سنة 2010\. الصورة: Kevin Shockey، بترخيص [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/?ref=arabroot.io)، المصدر: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Rob-pike-oscon.jpg?ref=arabroot.io) (تم قصها وتصغيرها وتحويلها إلى WebP).

وفي 21 سبتمبر 2007 بدأ روبرت جريسيمر Robert Griesemer وروب بايك وكين تومسون يرسمون أهداف لغة جديدة على السبورة، نعم كين تومسون نفسه صاحب B وUnix، وفي يناير 2008 بدأ تومسون مترجماً تجريبياً كان ينتج كود C، ثم صارت اللغة مشروعاً بدوام كامل في منتصف العام، وأصبحت مشروعاً مفتوح المصدر في 10 نوفمبر 2009\. وتقول الأسئلة الشائعة نفسها إن Go في أغلبها من عائلة C في الصياغة، مع أثر كبير من عائلة Pascal وModula وOberon في التعريفات والحزم Packages، وأفكار في التزامن Concurrency من لغات تأثرت بنموذج CSP لتوني هور Tony Hoare مثل Newsqueak وLimbo. أما تميمة Go وهي حيوان الغوفر Gopher فصممتها رينيه فرنش Renée French، التي صممت قبلها أرنب نظام Plan 9.

## Rust: مصعد معطل في الطابق الحادي والعشرين

في 2006 كان جرايدون هور Graydon Hoare مبرمجاً في التاسعة والعشرين يعمل في Mozilla، ويسكن في الطابق الحادي والعشرين من مبنى في فانكوفر، وعاد إلى البيت ذات يوم فوجد المصعد معطلاً لأن برنامجه تعطل، ولم تكن هذه المرة الأولى. ويحكي مقال [MIT Technology Review](https://www.technologyreview.com/2023/02/14/1067869/rust-worlds-fastest-growing-programming-language/?ref=arabroot.io) أنه وهو يصعد الدرج غاضباً فكر في أن أغلب هذه الأعطال سببها أخطاء في إدارة الذاكرة Memory في برامج مكتوبة بلغتي C وC++، ثم فتح حاسبه وبدأ يصمم لغة تسمح بكتابة كود صغير وسريع بلا أخطاء ذاكرة، وسماها Rust على اسم مجموعة من الفطريات التي يصفها بأنها «مصممة بإفراط للبقاء» ("over-engineered for survival").

وفي 2009 قررت Mozilla أن ترعى المشروع رسمياً وتدفع رواتب مهندسين للعمل عليه، وقدم في مؤتمر للشركة في 2010، ثم صدر [Rust 1.0](https://blog.rust-lang.org/2015/05/15/Rust-1.0/?ref=arabroot.io) في 15 مايو 2015، وفي 2021 تأسست مؤسسة Rust Foundation غير الربحية بتمويل من شركات تقنية كبرى لتدعم المشروع بعيداً عن شركة واحدة. ويعترف [مرجع Rust الرسمي](https://doc.rust-lang.org/reference/influences.html?ref=arabroot.io) بأن اللغة ليست أصلية في أغلب أفكارها، ويذكر مصادرها واحدة واحدة: الأنواع الجبرية ومطابقة الأنماط Pattern Matching من SML وOCaml، والمراجع ونمط RAII والمؤشرات الذكية Smart Pointers من C++، والسمات Traits من Haskell، وتمرير الرسائل من Erlang، والقنوات Channels من Newsqueak وLimbo، أي أن Rust جمعت أفضل ما في أربعين سنة من أبحاث اللغات في مكان واحد. ولم نجد صورة لجرايدون هور برخصة حرة يمكن التحقق منها، لذلك اكتفينا بقصته.

## نظرة سريعة على Swift وKotlin

بدأ كريس لاتنر Chris Lattner، صاحب مشروع LLVM، العمل على Swift في يوليو 2010 سراً كما يكتب في [صفحته الشخصية](https://nondot.org/sabre/?ref=arabroot.io)، وانضم إليه آخرون في أواخر 2011، وصارت تركيزاً رئيسياً لفريق أدوات المطورين في Apple في يوليو 2013، ثم أعلنتها Apple في 2 يونيو 2014 مع [أدوات تطوير iOS 8](https://www.apple.com/newsroom/2014/06/02Apple-Releases-iOS-8-SDK-With-Over-4-000-New-APIs/?ref=arabroot.io)، وصارت مفتوحة المصدر في ديسمبر 2015، ويذكر لاتنر أنها أخذت أفكاراً من Objective-C وRust وHaskell وRuby وPython وC# وCLU. أما Kotlin فبدأتها شركة JetBrains صاحبة أدوات IntelliJ في 2010، وصدر [الإصدار 1.0](https://kotlinlang.org/docs/faq.html?ref=arabroot.io) في فبراير 2016، ثم أعلنت Google في 17 مايو 2017 [دعمها رسمياً لتطوير Android](https://android-developers.googleblog.com/2017/05/android-announces-support-for-kotlin.html?ref=arabroot.io)، وفي Google I/O 2019 أعلنت أن تطوير Android سوف يكون [Kotlin أولاً](https://developer.android.com/kotlin/first?ref=arabroot.io).

## من أخذ من من؟

بعد هذه القصص سوف تلاحظ أن أغلب اللغات لم تولد من فراغ، وإنما أخذ كل صانع ما أعجبه من لغات سبقته وأصلح ما أزعجه فيها، والصورة التالية تبين شجرة مبسطة للتأثير بين اللغات التي ذكرناها، وكل سهم فيها مأخوذ من وثائق اللغة الرسمية أو من كلام صانعها كما رأيت في الأقسام السابقة:

![شجرة تأثير مرسومة: BCPL ثم B ثم C، ومن C وSimula جاءت C++، ومن C وC++ جاءت Java ثم C#، ومن C جاءت Go، ومن C++ جاءت Rust، ومن ABC جاءت Python، ومن Scheme وSelf وشكل Java جاءت JavaScript ثم TypeScript، ومن Perl جاءت PHP وRuby، ومع Swift قائمة اللغات التي أخذت منها](https://arabroot.io/content/images/2026/10/language-creators-15-family-tree.webp)

شجرة تأثير مبسطة: الأسهم من وثائق اللغات وكلام صانعيها، والأسماء الرمادية لغات أقدم

في الشكل أعلاه لاحظ التالي:

- خط C هو العمود الفقري: من BCPL إلى B إلى C، ومنها خرجت C++ وJava وC# وGo، وهذا سبب تشابه الأقواس المعقوفة والفاصلة المنقوطة في كل هذه اللغات.
- السهم المتقطع من Java إلى JavaScript يعني الشكل فقط، فالروح جاءت من Scheme وSelf كما قال آيك.
- اللغات الحديثة مثل Rust وSwift لها أكثر من أب، وهذا طبيعي لأن صانعيها كانت أمامهم خمسون سنة من التجارب، وما معنى هذه الأفكار نفسها (الكلاسات، والنماذج الأولية، ومطابقة الأنماط، والأنواع الثابتة والديناميكية) هو موضوع [مقال أنماط البرمجة وأنظمة الأنواع](https://arabroot.io/articles/%D8%A7%D9%86%D9%85%D8%A7%D8%B7-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D9%88%D8%A7%D9%86%D8%B8%D9%85%D8%A9-%D8%A7%D9%84%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D9%84%D9%84%D9%85%D8%A8%D8%AA%D8%AF%D8%A6%D9%8A%D9%86/).

## ما الذي يجمع هذه القصص؟

إذا وضعت هذه القصص بجانب بعضها فسوف تجد نمطاً يتكرر بشكل لافت، وأول ما فيه أن كل لغة بدأت بمشكلة محددة يعيشها صانعها بنفسه: باكوس لم يحب كتابة البرامج بلغة الآلة، وتومسون وريتشي أرادا لغة لنظام تشغيلهما الصغير، وستروستروب عانى من محاكي بطيء، وليردورف أراد أن يعرف من يزور سيرته الذاتية، وبايك انتظر 45 دقيقة حتى تنتهي الترجمة، وهور صعد الدرج إلى الطابق الحادي والعشرين. ولم يبدأ أحد منهم بقوله «سوف أصنع أفضل لغة في العالم»، وإنما بدأ بما يزعجه هو.

والأمر الثاني أن البداية كانت صغيرة جداً: شخص واحد في أغلب الحالات، وأسبوع عطلة عند جيدو، وعشرة أيام عند آيك، وسبورة واحدة عند فريق Go، ثم نمت اللغة بعد ذلك على مدى سنوات وصار لها فرق ولجان ومواصفات. والأمر الثالث أن الانفتاح هو الذي صنع الفرق في أغلب القصص، فجيدو نشر Python على Usenet، وليردورف نشر كود PHP فبدأ الناس يصلحونه، ونشرت Google لغة Go مفتوحة المصدر في 2009، وانتقلت Rust من مشروع شخصي إلى رعاية Mozilla ثم إلى مؤسسة مستقلة، ولو بقيت هذه اللغات داخل جدران أصحابها لما سمعنا بها، وهذا يرتبط مباشرة بقصة [البرمجيات الحرة والمفتوحة ورخصها](https://arabroot.io/articles/%D9%85%D8%A7-%D9%87%D9%8A-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A7%D8%AA-%D9%85%D9%81%D8%AA%D9%88%D8%AD%D8%A9-%D8%A7%D9%84%D9%85%D8%B5%D8%AF%D8%B1-%D9%88%D8%AA%D8%B1%D8%A7%D8%AE%D9%8A%D8%B5%D9%87%D8%A7/).

وعندما تكبر اللغة لا يعود صانعها وحده يقرر مستقبلها، فتظهر المواصفات الرسمية واللجان وعمليات الاقتراح مثل PEP في Python وRFC في Rust، وكيف يحدث ذلك ولماذا توجد عدة تطبيقات Implementations للغة الواحدة هو موضوع [مقال مواصفات اللغات وحوكمتها](https://arabroot.io/articles/%D9%85%D9%88%D8%A7%D8%B5%D9%81%D8%A7%D8%AA-%D9%84%D8%BA%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D9%88%D8%AA%D8%B7%D8%A8%D9%8A%D9%82%D8%A7%D8%AA%D9%87%D8%A7-%D9%88%D8%AD%D9%88%D9%83%D9%85%D8%AA%D9%87%D8%A7/). والدرس العملي لك كمطور أن المشكلة التي تزعجك اليوم في عملك قد تكون بداية أداة يستخدمها غيرك، بشرط أن تبدأ صغيراً وأن تنشر ما تكتبه.

## الخلاصة

- نشرت آدا لوفليس في 1843 أول وصف منشور لخطوات تحل مسألة على آلة، وصدر Fortran من IBM في 1957 بقيادة جون باكوس ليحرر المبرمجين من لغة الآلة.
- جريس هوبر لم تخترع COBOL وحدها، وإنما صنعت A-0 وFlow-Matic التي أخذت منها COBOL، ثم نشرت COBOL التي كتبها تحالف CODASYL في 1959.
- ولدت C في Bell Labs بين 1969 و1973 من BCPL وB لتكتب بها Unix، وولدت C++ من رغبة ستروستروب في كلاسات Simula بسرعة C، وصدرت تجارياً في 1985.
- بدأت Python هواية في ديسمبر 1989 ونشرت في فبراير 1991، واسمها من Monty Python وليس من الأفعى.
- في 1995 ظهرت Java من مشروع Green في Sun، وJavaScript التي كتب نموذجها في عشرة أيام في مايو، وPHP من أدوات صفحة شخصية، وRuby التي ولدت فكرتها في فبراير 1993 وصدرت في ديسمبر 1995.
- صمم أندرس هايلسبرغ Turbo Pascal وDelphi وC# (2000) وTypeScript (2012)، وصدر TypeScript 7 في 2026 بمترجم مكتوب بلغة Go.
- بدأت Go في Google في 21 سبتمبر 2007 وفتحت في 2009، وبدأت Rust مشروعاً شخصياً لجرايدون هور في 2006 وصدر الإصدار 1.0 منها في 15 مايو 2015.
- القاسم المشترك: مشكلة حقيقية يعيشها الصانع، وبداية صغيرة، وانفتاح على مجتمع يكمل الطريق.

وإذا أردت أن تكمل من هنا، فهذه مقالات تشرح الأفكار التي تحملها هذه اللغات، وكيف تحكم وتوحد، وما الذي يحدث فعلاً عندما يعمل برنامجك:

[![](https://arabroot.io/content/images/2026/10/paradigms-types-cover-cover.webp)دليلأنماط البرمجة وأنظمة الأنواع: لماذا تختلف اللغات؟نحل مسألة واحدة بعدة أساليب برمجة، ونرى هل تكتشف اللغة أخطاءك قبل التشغيل أم بعده، وماذا يعني ذلك عند اختيار لغة لمشروعك.](https://arabroot.io/articles/%D8%A7%D9%86%D9%85%D8%A7%D8%B7-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D9%88%D8%A7%D9%86%D8%B8%D9%85%D8%A9-%D8%A7%D9%84%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D9%84%D9%84%D9%85%D8%A8%D8%AA%D8%AF%D8%A6%D9%8A%D9%86/)[![](https://arabroot.io/content/images/2026/10/language-specs-cover-cover.webp)دليلاللغة شيء والمترجم شيء آخر: من يقرر مستقبل لغات البرمجة؟لماذا لا تصح جمل مثل «Python بطيئة»، وما الفرق بين مواصفة اللغة والبرامج التي تطبقها، ومن يقرر مستقبلها.](https://arabroot.io/articles/%D9%85%D9%88%D8%A7%D8%B5%D9%81%D8%A7%D8%AA-%D9%84%D8%BA%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D9%88%D8%AA%D8%B7%D8%A8%D9%8A%D9%82%D8%A7%D8%AA%D9%87%D8%A7-%D9%88%D8%AD%D9%88%D9%83%D9%85%D8%AA%D9%87%D8%A7/)[![](https://arabroot.io/content/images/2026/10/open-source-licenses-cover-cover.webp)دليلما هي البرمجيات مفتوحة المصدر؟ القصة وأشهر الرخصكيف بدأت البرمجيات الحرة والمفتوحة، وما الفرق بين الحر والمجاني، وكيف تعرف ما تسمح به رخصة أي مشروع قبل أن تبني عليه.](https://arabroot.io/articles/%D9%85%D8%A7-%D9%87%D9%8A-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A7%D8%AA-%D9%85%D9%81%D8%AA%D9%88%D8%AD%D8%A9-%D8%A7%D9%84%D9%85%D8%B5%D8%AF%D8%B1-%D9%88%D8%AA%D8%B1%D8%A7%D8%AE%D9%8A%D8%B5%D9%87%D8%A7/)[![](https://arabroot.io/content/images/2026/10/hello-world-cover-cover.webp)دليلماذا يحدث عندما تشغل برنامج Hello World؟نتتبع برنامج C صغيراً من المحرر إلى الشاشة، فترى كل طبقة يمر بها في الجهاز حتى تظهر الجملة أمامك.](https://arabroot.io/articles/%D8%B1%D8%AD%D9%84%D8%A9-hello-world-%D9%85%D9%86-%D9%84%D9%88%D8%AD%D8%A9-%D8%A7%D9%84%D9%85%D9%81%D8%A7%D8%AA%D9%8A%D8%AD-%D8%A7%D9%84%D9%89-%D8%A7%D9%84%D8%B4%D8%A7%D8%B4%D8%A9/)

## سجل التحديثات (Changelog)

- أكتوبر 2026: كتابة المقال اعتماداً على كتابات صانعي اللغات أنفسهم وصفحات التاريخ الرسمية للغات وأرشيف IBM وSun وMicrosoft ومتحف تاريخ الحاسب، مع صور من Wikimedia Commons برخص حرة تم التحقق منها، وتشغيل مثال Python داخل Container.
- أكتوبر 2026: إضافة قسم [لماذا بقي self صريحاً في Python؟](#explicit-self) عن اقتراح بروس إيكل ورد جيدو فان روسم في 2008، مع مثال Python جديد تم تشغيله داخل Container.