# تاريخ لغات البرمجة

يناقش هذا المقال الأحداث الكبرى في تاريخ لغات البرمجة.

## البداية المُبَكِّرة

في البداية، كانت لغات البرمجة الأولى السابقة للحاسوب الحديث عبارة عن رُموز بسيطة. وَلمدَّة تسعة أشهر بين 1842 و1843 قامت آدا لوفلايس بترجمة مذكرة العالم في الرياضيات الإيطالي لويجي مينابين على المحرِّك التحليلي، وَقد كانت آخر آلة اقترحها تشارلز بابيج. وأضافت هذا البند إلى مجموعة من الملاحظات وَالَّتي كانت تفصيل طريقةٍ لِحساب أعداد برنولي مع المحرِّك التحليلي. تمَّ التعرف على هذه الملاحظات من قبل بعض المؤرخين كأول برنامج حاسوبيّ في العالَم.
* لكن مدى مساهمات آدا لوفليس الأصلية مقارنة مع التي قام بها زوجها، لاتزال موضوع جدل بين أصحاب التراجم.
أدرك هيرمان هولليريث أنَّه بِإمكانه ترميز معلوماتٍ على بطاقاتٍ مُثَقَّبة عندما لاحَظ أنَّ ترميز كمسري القطار يظهر على البطاقة المحمولة حسب موقع الثقوب على البطاقة. ثُمَّ قام هولليريث في سنة 1890 بِترميز بيانات التَعداد على البطاقات المُثَقَّبَة.
كانت أوَّل رِمازات(شِفرات/أكواد) حاسوبيَّة مُتَخَصِّصَة بِتطبيقاتها. وَفي العُقود الأولى من القرن العشرين، اعتمدت الحِسابات الرقميَّة على الأعداد العُشْرِيَّة. أُدرِكَ أخيرًا أنَّه يمكن تمثيل المنطق بِالأرقام، وليس بالكلمات فحسب. كَمثال، كان ألونزو تشرتش قادرًا على التعبير عن المُعامِل لَمْدَا كَصيغةٍ. كانت آلة تورنغ خُلاصة عمليَّة آلة التعليم-بالنقر، كَمثال، كالمُستخدم في شركات الهاتف. أسَّسَت آلات تورنغ لِتخزين البرامج كَبيانات في هيكلة فون نيومان لِلحواسيب بِتمثيل الآلة عبر عدد محدود. وَبِعكس المُعامِل لمدا، فإنَّ رِماز تورنغ لا يخدم اللُّغات عالية المُستوى جيِّدًا—استخدامها الأساسيّ هو بِالتحليل الصارِم لِـنظرية التعقيد الحسابي.
مثل العديد من «البدايات» في التاريخ، يَصعُب تحديد أوَّل لغة برمجة مُعاصِرة. منذ البداية، عَرَّفت تقييدات العَتَاد اللُّغة. سمحت البطاقة المُثَقَّبَة بِـ 80 عامودًا، لكن كان من الصعب استخدام بعض الأعمدة لِترتيب رقم على كُلّ بطاقة. تضمَّنت فورتران بعض الكلمات المِفتاحيَّة الشبيهة بالكلمات الإنكليزيَّة، مثل «إذا» "IF"، «إذهب إلى» "GOTO" وهي جمعٌ للأحرف في عبارة (go to) وَ«اسْتَمِر» "CONTINUE". إنَّ استخدام الطبلة المِغناطيسيَّة لِلذاكرة يعني أَنَّ برامج الحاسوب تحتاج أيضًا لِأن تكون مُدخلة مع دَوَران الطبلة. لِهذا كانت البرامج أكثر اعتماديَّة على العَتَاد.
لِبعض الأشخاص، إنَّ أوَّل لغة برمجة مُعاصِرة تعتمد على مَقروئيَّتها بِالنسبة لِلإنسان وَكميَّة الطاقة اللَّازمة قبل إتاحة الحالة المُسمَّاة «لغة برمجة». كان لِـمحرك الاختلاف $^{[لغاتأخرى]}$‏(محرك التباعد) لِجاكوارد لومز وَكارلس بابّاج لغات بسيطة وَمحدودة للغاية من أجل وصف الأفعال الَّتي يجب أن تقوم بها تلك الآلات. يُمكن لِلشخص اعتبار ثُقَب الحُفَر على طُومار(دَرج) عازِف البيانو $^{[لغاتأخرى]}$‏ كَـلغة محدَّدة النِطاق، وَلو لم تكن مُصَمَّمَة لِلإستهلاك(الاستفادة) البشريّ.

## أوَّل لُغات البرمجة

ظهرت الحواسب الكهربائيّة الأولى في العصر الحديث في السنوات 1940 (الأربَعينيَّات). وَإِنَّ محدوديّة السرعة وَقدرة الذاكرة فرضت كتابة برامج تستغرق وقتًا طويلًا بلغة الأسمبلي (لغة التجميع). وقد كانت تتطلّب الكثير من الجهد الفكريّ، وكانت تؤدي لأخطاء عديدة.
صُمِّمَت أوَّل لغات البرمجة لِإيصال التعليمات إلى الحاسِب في الخمسينيَّات 1950. صُمِّمَت أقدم لغة برمجة عالية المُستوى لِلحاسِب بين عامي 1943 وَ 1945، دُعيت بلان كال كيل، طَوَّرها كونراد زوس من أجل زد3. لكنَّها لم تُنَفَّذ حتَّى 1998 وَ 2000.
عُرضت لغة البرمجة رِمازٌ(شِفرةٌ) قصيرٌ $^{[لغاتأخرى]}$‏ في عام 1949 من قِبَل جون ماكلي، كانت مِن أوائل مَن اللُّغات عالية المُستوى الَّتي طُوِّرت لِلحاسِب الإلكترونيّ. بعكس لغة الآلة، تُمَثَّل تعابير إفادات statements لغة رِمازٌ قصير الرِّياضيَّاتيَّة بِصيغةٍ مفهومة. لكن، يجب أن يُترجم البرنامج إلى لغة الآلة في كُلِّ مرَّةٍ يُشَغَّل، مِمَّا يجعل العمليَّة أبطأ من تشغيل رِماز(شِفرة) الآلة المكافئة للبرنامج.
طُوِّرَت أوتوكود في جامعة مانشستر في أوائل الخمسينيَّات. هي لغة برمجة تستخدم مُجَمِّعًا لِتحويل اللُّغة آليًّا إلى لغة الآلة. طُوِّرَت أوَّل شِفرة(رِماز) وَمُجَمِّع في 1952 لِحاسوب مارك 1 في جامعة مانشستر وَتُعتَبَر أوَّل لغة برمجة مُجَمَّعَة عالية المُستوى.
طُوِّرَت ثانِ أوتوكود من أجل مارك 1 من قِبَل رالف أنتوني «طوني» بروكر $^{[لغاتأخرى]}$‏ في 1954 وَسُمِّيَت «أوتوكود مارك 1»(Mark 1 Autocode). وَأيضًا طَوَّرَ طوني بروكر أوتوكود من أجل فيرَّانتي ميركيوري $^{[لغاتأخرى]}$‏ في الخمسينيَّات 1950s بالتعاون مع جامعة مانشستر. ابتُكِرَ إصدارٌ من أجل الحاسِبة الآليَّة الإلكترونيَّة متأخِّرة التخزين $^{[لغاتأخرى]}$‏ 2 (EDSAC) من قِبَل دايفيد فيلدينغ هارتلي من مختبر الرِّياضيَّات في جامعة كامبردج $^{[لغاتأخرى]}$‏ في 1961. عُرفت بِاسم EDSAC 2 Autocode، كانت تطوُّرًا مُباشرًا من ميركيوري أوتوكود مُهيَّئةً لِظروفٍ خاصَّة، وَلوحظت بسبب تمثيل الشِّفرة الكائنيَّة وَتشخيصات اللُّغة المصدريَّة حيثُ كانت مُتَقَدِّمَة في وقتها. تطويرٌ مُعاصِرٌ موازٍ لكن مُنفصل، كانت أطلس أوتوكود تُطَوَّر من أجل آلة أطلس 1 لِجامعة مانشستر.
عام 1954، اخترع جون باكوس لغة الفورتران في آي بي إم؛ كانت أوَّل لغة عالية المُستوى واسعة الاستخدام تمتلك تنفيذات إجرائيَّة functional implementation، بِعَكسِ التَّصميم الورقيّ. ماتزال لُغَةً شعبيَّة لِلـحوسَبة عالية الأداء وَتُستَخدم لِلبرامج كمعيار وَترتيب لِـأسرع الحواسيب الفائقة العالميَّة.
لغة برمجة أخرى مبكِّرة ابتُكرت من قِبَل جريس هوبر في الولايات المتحدة، وَدعيت فلو ماتيك $^{[لغاتأخرى]}$‏. لقد طُوِّرَت من أجل يونيفاك 1 في ريمنغتون راند $^{[لغاتأخرى]}$‏ خلال الفترة بين 1955 وَ 1959. وجدت هوبر أنَّ عُملاء معالجة بيانات العمل لم يكونوا مرتاحين للترقيم الرِّياضيَّاتيّ، وَفي بداية عام 1955 قامت هي وَفريقها بكتابة تخصيصات للغة برمجة إنكليزيَّة وَنفَّذوا نموذجًا بِدئيًّا. أصبح مجمِّع فلو ماتيك مُتاحًا للعامَّة في بداية عام 1958 وَاكتمل في عام 1959. كان لِـفلو ماتيك تأثير كبير على تصميم كوبول، وَقد انحصر استخدامها في ذلك الحين على إدارة معدات وتجهيزات القوات الجوية الأمريكية $^{[لغاتأخرى]}$‏.
لغات أخرى ماتزال تستخدم ليومنا هذا مُتضمَّنةً ليسب (1958) الَّتي اخترعت من قِبَل جون مكارثي وَكوبول (1959) الَّتي أنشئت من قِبَل لجنة المجال القصير(Short Range Committee). مَعلَمٌ آخر في آواخر الخمسينيَّات(1950) هو نشر «لغة جديدة للخوارزميَّات» من قِبَل لجنة علماء الحاسوب الأمريكيَّة الأوروبيَّة؛ دعيت ALGOL 60 (أخذ الاسم من ALGOrithmic Language «لغة خوارزميَّاتيَّة»). هذا التَّقرير يُعَزِّز العديد من الأفكار الحائمة في وقتنا هذا وَيُبرِز ثلاثة إبداعات للغة مفتاحيَّة:
* بنية طوب مُعَشِّشَة: يمكن لسلاسل الشفرات وَالإعلانات(التصريحات) أن تُجَمَّع ضمن طوب (برمجة) $^{[لغاتأخرى]}$‏ دون الحاجة لأن تُحَوَّل إلى إجراءات منفصلة وَمسمَّية بوضوح؛
* الحيِّز المُعجميّ: طوب له متغيراته وإجراءاته وَدوالُّه الخاصَّة وَمخفيّ عن الشِّفرات خارجه، وهذا ما يُدعى بإخفاء البيانات.
ابتكار جديد قريب من هذا، كان عن كيفيَّة وصف اللُّغة:
* استُخدمت صيغة باكوس نور(ترقيم رياضيَّاتيّ مضبوط) لوصف نحويَّة اللُّغات. وتقريبًا، كل لُغات البرمجة اللّاحقة استَخدَمت العديد من صيغ باكوس نور لوصف قواعد حرية السياق في نحويَّاتِها.
كان للغة ألغول 60 تأثيرًا بائِنًا على تصاميم اللُّغات اللَّاحقة، وقد أصبح لبعضها شعبيَّة واسعة. وقد صُمِّمَ نظام بورّوفز الكبير ليكون امتدادًا فرعيًّا لِألغول.
استمرَّت أفكار ألغول المِفتاحيَّة مُنتجةً ألغول 58:
* أصبحت النَّحَويَّة وَالدلالات أكثر توافقيَّة، وَبِروتينٍ مجهولٍ بزغ نظام الكتابة التَعَاْوُدِيَّة recursive بدوالٍّ أعلى تنظيمًا.
* لم يُعَرَّف فقط جزء «حريَّة السِّياق» بل أيضًا عُرِّفَت رسميًّا كل نَحَويَّة ودلالات اللُّغة بشروط قواعد فان ويجنجارد $^{[لغاتأخرى]}$‏؛ وَهي شكليَّات صُمِّمَت خِصِّيصًا لِهذا الغرض.
إنَّ الاستخدام القليل لِميِّزات لغة ألغول 68 (كمثال، الكُتَل(الطوب) المُتلاقية وَالمُتوازِية) وَنظامها المُعَقَّد من اختصارات الدلالات وَتحديد الأنواع الإجباريّ آليًّا جعلتها لغةً غير شعبيَّة لدى المُستخدمين وَاكتسبت سُمعَةً بِكونها لُغَةً «صعبة». وَقد خرج نيكلاوس ويرث من اللَّجنة لِيُنشِئ لغةً أبسط هي باسكال.
بعض اللُّغات البارزة الَّتي طُوِّرت في هذه الحِقبة:
| 1951 – لغة التجميع الإقليمية 1952 – أوتوكود (لغة برمجة) 1954 – لغة معالجة المعلومات (مُمَهِّدَةَ لِـليسب) 1955 – فلو ماتيك $^{[لغاتأخرى]}$‏ (أوصلتنا للغة كوبول) 1957 – فورتران (أوَّل مُجَمِّع) 1957 – كومتران (طَليعة لِكوبول) 1958 – ليسب 1958 – ألغول 58 1959 – تقنية تجميع آلية كليا $^{[لغاتأخرى]}$‏ (مُمَهِّدَةَ لِـكوبول) 1959 – كوبول | 1959 – آر بي جي 1962 – إيه بي إل(أخذت من: A Programming Language، اختصارًا: APL) 1962 – سيمولا 1962 – سنوبول 1963 – لغة برمجة متحدة $^{[لغاتأخرى]}$‏ (مُمَهِّدَةَ لِـسي) 1964 – حانة (بيئة حوسبية) $^{[لغاتأخرى]}$‏ 1964 – بيسيك 1964 – لغة البرمجة واحد $^{[لغاتأخرى]}$‏ 1966 – نظام متجر جونياك المفتوح $^{[لغاتأخرى]}$‏ 1967 – لغة البرمجة الأساسية المختلطة (مُمَهِّدَةَ لِـسي) |

## إرساء الأنماط الأساسيّة

لقد جلبت الفترة ما بين أواخر الستينات وأواخر السبعينات ازدهارًا رئيسيًّا للغات البرمجة. ومعظم أنماط اللّغات الرئيسيَّة المستخدمة حاليًّا قد اخترعت في هذه الفترة:
* حانة (بيئة حوسبية) $^{[لغاتأخرى]}$‏، طُوِّرَت في عام 1964 في مختبر أرجون الوطني من قِبَل ستانلي كوهين، وَهي لغة برمجة كائنيَّة التوجُّه أكثر شبهًا بـماتلاب وَلغة بيانات تفاعلية $^{[لغاتأخرى]}$‏ وحُزمة َماثماتيكا الرَّقَميَّة التي ظهرت لاحقًا. ولها نَحَوِيَّة فورتران واضحة المَعالِم. قامت بدايةً بعنونة حوسبيّة فيزيائية فعّاْلَة داخليًّا في مختبر أرغون الوطني، وقد عُدِّلت للاستخدام البحثيّ (باسم موديليسي (بالإنجليزية: Modeleasy)‏) من أجل مجلس المحافظين الاحتياطي الاتحادي (بالإنجليزية: Federal Reserve Board of Governors)‏ في بدايات السبعينيَّات وَبعدها أصبحت متوفِّرة تجاريًّا؛ ماتزال حانة (بالإنجليزية: Speakeasy)‏ وَموديليسي مُستخدمةً حاليًّا.
* سيمولا، اختُرعت في أواخر عقد 1960 من قبل نيغارد ودال كامتداد للغة ألغول 60، وكانت أول لغة برمجة مصممة لتدعم البرمجة الكائنية.
* سي، لغة لبرمجة النظم، طُورت من قبل دينيس ريتشي وكين تومسون في مختبرات بيل بين عامي 1969 و 1973.
* سمول توك، ظهرت في منتصف عقد 1970، وفرت تصميما متكاملا للغة برمجة كائنية التوجه.
* برولوغ، صُمِّمَت في عام 1972 من قِبَل ألان كولميراور وَفيليب روسيل وَروبرت كوالسكي، وكانت أَوَّل لغة برمجة منطقيّة.
* إم إل، بَنَتْ نوع نظام عديد الأشكال (بالإنجليزية: polymorphic type system)‏ (اخترعه روبن ميلنر في عام 1973) على ليسب، رائدةً لغات البرمجة الوظيفيّة ثابتة النوع.
كل لغة من هذه اللُّغات تعطي عائلة كاملة من اللُّغات المُتفرّعة عنها، وَأغلب اللُّغات الحديثة يكون لها على الأقل سلف واحد منها.
وأيضًا وُجِدَ في الستينيَّات والسبعينيَّات جدالٌ واسعٌ حول استحقاقات «البرمجة المُهيكلة»، والَّتي أساسًا تعني البرمجة دون استخدام «goto». يعتقد قسم من المبرمجين أنّه حتّى في اللُّغات الَّتي توفّر «goto»، فإنّ استخدامها يُعتبر أسلوب برمجة سيئ إلَّا في حالات نادرة. يتعلّق هذا الجِدال بشدّة بتصميم اللُّغة: فبعض اللُّغات لم تُضمِن «goto» على الإطلاق، وبذلك تجبر المبرمج على البرمجة المُهيكلة.
لتوفير سرعة في التجميع، وفّرت بعض اللُّغات «مجمّعات بمسار واحد»(one-pass compiler) والّتي تتوقَّع أن يتم تعريف الروتينات التابعة أوَّلًا، كما هو الحال في باسكال حيث يكون الروتين الرئيسيّ أو الدالّة القائدة هي القسم الأخير من البرنامج.
بعض اللُّغات الَّتي طُوِّرت في هذه الفترة:
| 1968 – لوغو 1969 – بي (مُمَهِّدَةً لِـسي) 1970 – باسكال 1970 – فورث 1972 – سي | 1972 – سمول توك 1972 – برولوغ 1973 – إم إل 1975 – مخطط (لغة برمجة) 1978 – إس كيو إل |

## الثمانينات: التصلُّد، الوحدات، الأداء

كانت الثمانينات من القرن العشرين سنوات التصلُّد النسبيّ في اللُّغات الأمريّة أكثر منه اختراع أنماط جديدة، وكلّ هذه الحركات متوسّعة عن أفكار ابتُدِعَت في العقد المُنصرم. فقد دَمجت سي++ بين البرمجة الكائنيَّة وَبرمجة الأنظمة. اعتمدت حكومة الولايات المتّحدة لغة أيدا كلغة برمجة للأنظمة لاستخدامها من قِبَل مُقاولي الأعمال الدفاعيَّة. وَفي اليابان وأَماكن أُخرى، صُرِفَت مبالغ جمّة على اختراع ما دُعِيَ بِلغات برمجة الجيل الخامس الّتي تجمع بين بُنى منطق البرمجة. تحرَّك مُجتمع اللُّغات الوظيفيّة لجعل ليسب وَإم إل لغاتٍ قياسيَّة. وَقد بدأت في هذا العقد أبحاث على لغة ميراندا؛ وَهي لغة برمجة وظيفيّة ذات تثمين كسول.
إحدى النَّزعات الجديدة وَالمُهمّة في تصميم اللُّغات هي التركيز على البرمجة لأنظمة المِقياس الكبير باستخدام «مَكتبات» أو وحدات تتظيميّة كبيرة المِقياس للشِفرة. فقد طَوَّرت كل من مودولا، أيدا، إم إل أنظمة مَكتبات مَرموقة في الثمانينات من القرن العشرين. وَغالبًا ما تَمَسَّكت هذه الأنظمة بِبُنَى البرمجة المُعَمَّمَة.
وَرغم ذلك لم تظهر غالبيَّة الأنماط الجديدة للغات البرمجة الأمريَّة، وقد قام العديد من الباحثين بالتوسُّع في أفكار اللُّغات الأولى وَلائموها مع النهج الجديد. كمثال، لائمت لُغات النظامين أرغوس وَإميرالد البرمجة كائنية التوجه مع الأنظمة الموزَّعة.
جلب العقد 1980 تقدُّمًا في تطبيقات لُغات البرمجة. وَافترضت مجموعة تعليمات بنية الحاسب أنَّه يجب أن تُصَمَّمَ معمارية الحاسوب من أجل المُجمّعات وَليس من أجل مُبرمجي التجميع البشريين. وَبفضل تحسينات سرعة المُعالِج الَّتي مَكَّنَت وجود تقنيَّات تجميع مُتسارعة بِشِدَّة، أثارت مجموعة تعليمات بنية الحاسب اهتمامًا مُتزايدًا بتقنيَّة التجميع للُّغات عالية-المُستوى.
استمرَّت تقنيّات اللُّغات بالتقدُّم في التسعينات من القرن العشرين.
بعض اللُّغات الَّتي طُوِّرت في هذه الفترة:
| 1980 – سي++ (سي مع أصناف الّتي أعيد تسميتها في 1983) 1983 – أيدا 1984 – ليسب الشائعة 1984 – ماتلاب 1985 – إيفل 1986 – سي-الكائنية | 1986 – إرلانج 1987 – بيرل 1988 – تي سي إل 1988 – لغة وولفرام (كجزء من ماثماتيكا، وحصلت على اسمٍ مُنفصل في يونيو/حزيران 2013) 1989 – إف إل |

## التسعينات: عصر الشبكة العالميّة

الشبكة العالميّة وتسمّى أيضًا الإنترنت أو الشَّابِكة؛ مأخوذة من العبارة: International Network.
كان النمو السريع للشبكة العالمية في أواسط التسعينات هو الحدث التالي الرئيسي للغات البرمجة. فاتحًا وبشكل جذري منصة جديدة لأنظمة الحاسوب، وقد أوجدت الشبكة العالمية فرصة لتبنِّي لغات جديدة. وبتحديدٍ، زادت شعبيَّة لغة البرمجة جافا سكريبت بسبب تكاملها المبكِّر مع مستعرض الشبكة «مستكشف نتسكيب». وحققت العديد من اللُّغات السِكربتيَّة استخدامًا واسعًا في تطوير تطبيقات مُخَصَّصَة لخواديم الشبكة مثل بي إتش بي.
لم تَشهَد التسعينيَّات من القرن العشرين أي تطوُّر أساسيّ في اللُّغات الأمريَّة، لكن حدث العديد من التهجين وَنضوج الأفكار القديمة. وَبدأ في هذه الفترة انتشار اللُّغات الوظيفيَّة. وَبزغت فلسفة عميقة جديدة هي «إنتاجيَّة المُبَرمِج». فبزغت العديد من لُغات «تطوير التطبيقات السريع»(بالإنكليزيَّة: rapid application development؛ اختصارًا: RAD)، وَالَّتي عادةً ما تأتي مع بيئة تطوير متكاملة وَجامع قُمامَة وَتَنحدر من لُغات أقدم. كلّ هذه اللُّغات كانت كائِنيَّة التوجُّه. وَتتضمَّن أوبجكت باسكال وَفيجوال بيسك وَجافا. وَتَلقَّت جافا تحديدًا الكثير من الانتباه. وَكانت لُغات البرمجة النصيَّة أكثر إبداعًا من لُغات «تطوير التطبيقات السريع». وَلم تنحدر هذه مُباشرةً من لُغاتٍ أُخرى وَقد عرضت نحويَّاتٍ جديدة وَمَيِّزات أُخرى أكثر تحرُّريَّة. يعتبر البعض لُغات البرمجة النصيَّة هذه أكثر إنتاجيَّة من لُغات «تطوير التطبيقات السريع»، لكن غالبًا يكون ذلك بسبب الخيارات الَّتي تجعل البرامج الصغيرة أبسط وَلكن قد تكون البرامج الكبيرة أصعب للكتابة وَالتطوير. وَبالرُّغم من ذلك، أصبحت اللُّغات النصيَّة هي الأكثر بُروزًا وَالمُستخدمة في الإتِّصال مع الشَّبكة.
بعض اللُّغات الَّتي طُوِّرت في هذه الفترة:
| 1990 – هاسكل 1991 – بايثون 1991 – فيجوال بيسك 1993 – روبي 1993 – لوا 1993 – آر 1994 – نظام كائن ليسب الشائعة $^{[لغاتأخرى]}$‏ (جزء من ليسب الشائعة للمعهد القومي الأمريكي للقياس) | 1995 – أيدا 95 1995 – جافا 1995 – دلفي 1995 – جافا سكريبت 1995 – بي إتش بي 1997 – ريبول 1999 – دي |

## الاتِّجاهات الحالية

استمر تطور لغات البرمجة، في كل من الصناعة والبحوث. بعض الاتجاهات الحالية:
* إضافة السلامة والأمن، لا سيما في اللغة التحقق (تحليل برنامج ثابت)، في السيطرة على تنسيق تدفق المعلومات (الإدخال / الإخراج) والحماية أثناء تنفيذ المواضيع المتزامنة (threadsafe) .
* مفاهيم جديدة للنمطية: وMixin الجوية، الوفد، الموجهة نحو الجانب البرمجة.
* تطوير مكون المنحى.
* الميتابرمجة (بالإنجليزية: metaprogramming)‏، وخاصة الإنعكاسية (بالإنجليزية: Reflection)‏ أو معالجة الشجرة النحوية المجردة (بالإنجليزية: Abstract syntax tree)‏.
* التركيز على توزع الموارد المعلوماتية والحركية.
* التكامل مع قواعد البيانات، قواعد البيانات المترابطة وخصوصا XML.
* التدويل مع دعم اليونيكود (بالإنجليزية: Unicode)‏في الكود المصدري : القدرة على استخدام ترميزات مختلفة في التعليمات البرمجية المصدر (خارج حدود ASCII)
* الاستخدامات المعممة للXML، وخاصة بالنسبة اجهات (XUL ،XAML).

## شخصيَّات بارِزة

بعض الأشخاص المهمِّين الَّذين ساعدوا بِتطوير لُغات البرمجة:
* أنشأ جو أرمسترونغ لغة إرلانج.
* اخترع جون باكوس لغة الفورتران، وَدمج بين تصميم ألغول 58 وَ ألغول 60.
* طوَّر ألان كوبر لغة الفيجوال بيسك.
* ابتكر أولي يوهان دال البرمجة كائنيَّة التوجُّه، وَساعد باختراع لغة سيمولا.
* طوَّر ادسخر دكسترا إطار عمل من أجل البرمجة البنيويَّة.
* ساعد جين-فيس جيرارد باختراع المُعامِل لمدا عديد-الأشكال $^{[لغاتأخرى]}$‏(النظام «إف» F).
* طوَّر جيمس غوسلينغ لغة أوك، وَطليعة لغة جافا.
* طوَّر أندرس هيلسبرغ لغة باسكال، دلفي، سي شارب وَلغة تايب سكرِبت.
* أنشأ ريج هيكي لغة كلوجر.
* اخترعت جريس هوبر أوَّل مُجَمِّع(مُحَرِّر) وَطوَّرت فلو ماتيك $^{[لغاتأخرى]}$‏، مؤثِّرَةً بِـكوبول. وأشاعت لغات البرمجة غير المُعتَمدة على الآلة وَالمُصطلح «تنقيح برمجي».
* جان إشبيا، رئيس مصمِّمي أيدا وَأيدا 83.
* طوَّر كينيث ايفرسون لغة إيه بي إل، وَمطوِّرًا مُساعدًا للغة جيه بالتعاون مع روجر هوي.
* ألان كاي، رائدٌ في العمل على البرمجة كائنيَّة التوجُّه، وَمُنشِئ سمول توك.
* بريان كيرنيغان، كاتب مُساعِد لأوَّل كتاب عن لغة البرمجة سي بالتعاون مع دينيس ريتشي وَالَّذي هو كاتب مُساعِد لِلُغتي البرمجة أوك وَ إي إم بي إل $^{[لغاتأخرى]}$‏.
* أنشأ يوكيهيرو ماتسوموتو لغة روبي.
* اخترع جون مكارثي لغة ليسب.
* اخترع بيرتراند ماير لغة إيفل.
* روبن ميلنر، اخترع لغة إم إل متشاركًا الحقوق لِـتداخُل نوع $^{[لغاتأخرى]}$‏ هيندلي–ميلنر المُتَعَدِّد الأشكال $^{[لغاتأخرى]}$‏.
* جون فون نيومان، مُنشِئ مفهوم نظام التشغيل(النظام العمليَّاتيّ).
* كريستين نيغارد، رائدٌ في العمل على البرمجة كائنيَّة التوجُّه، وَمخترع مُساعِد للغة سيمولا.
* مارتن أوديرسكي، مُنشِئ لغة سكالا، وَسابقًا ساهَم في تصميم لغة جافا.
* جون كارلس رينولدز، مُخترع مُساعِد لِـلمُعامِل لمدا عديد-الأشكال $^{[لغاتأخرى]}$‏(النظام «إف» F).
* دينيس ريتشي، مُخترع لغة سي، نظام التشغيل يونِكس، وَنظام التشغيل بلان 9.
* ناثانيل روشيستر $^{[لغاتأخرى]}$‏، مُخترع أوَّل مُجَمِّع (IBM 701).
* جايدو ڤان روسم، مُنشِئ لغة بايثون.
* بيارن ستروستروب، مطوِّر لغة سي++.
* كين تومسن، مُخترع لُغات البرمجة بي، غو، إنفرنو(الجحيم:Inferno)، وَكَكاتب مُساعِد لِنظام التشغيل يونِكس.
* لاري وول، مُنشِئ لغة البرمجة بيرل (تفقَّد بيرل وَ بيرل 6 $^{[لغاتأخرى]}$‏).
* نيكلاوس ويرث، مُخترع اللُّغات باسكال، مودولا، وَ أوبيرون.
* ستيفن ولفرام، مُنشِئ برنامج ماثماتيكا.
* كونراد سوزه، صَمَّمَ أوَّل لغة برمجة عالية المُستوى، بلان كال كَل (الَّتي تأثَّرت بِألغول 58).

## مراجع

* ↑ J. Fuegi and J. Francis (أكتوبر–ديسمبر 2003)، "Lovelace & Babbage and the creation of the 1843 'notes'"، Annals of the History of Computing، ج. 25، ص. 16, 19, 25، DOI:10.1109/MAHC.2003.1253887
* ↑ راؤول روجاس (أستاذ جامعي), et al. (2000). "Plankalkül: The First High-Level Programming Language and its Implementation". Institut frame Informatik, Freie Universität Berlin, Technical Report B-3/2000. (full text) نسخة محفوظة 12 مارس 2020 على موقع واي باك مشين.
* ↑ Sebesta، W.S. (2006). Concepts of Programming Languages. ص. 44. ISBN:0-321-33025-0.
* ↑ Knuth، Donald E.؛ Pardo، Luis Trabb. "Early development of programming languages". Encyclopedia of Computer Science and Technology. Marcel Dekker. ج. 7: 419–493.
* ↑ Peter J. Bentley (2012). Digitized: The Science of Computers and how it Shapes Our World. Oxford University Press. ص. 87. مؤرشف من الأصل في 2019-11-29.
* ↑ "Fortran creator John Backus dies - Tech and gadgets- msnbc.com". MSNBC. 20 مارس 2007. مؤرشف من الأصل في 2012-11-04. اطلع عليه بتاريخ 2010-04-25.
* ↑ "CSC-302 99S : Class 02: A Brief History of Programming Languages". Math.grin.edu. مؤرشف من الأصل في 2018-05-25. اطلع عليه بتاريخ 2010-04-25.
* ↑ Eugene Loh (18 يونيو 2010). "The Ideal HPC Programming Language". Queue. Association of Computing Machines. ج. 8 ع. 6. مؤرشف من الأصل في 2019-12-12.
* ↑ "HPL - A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers". مؤرشف من الأصل في 2018-10-01. اطلع عليه بتاريخ 2015-02-21.
* ↑ Hopper (1978) p. 16.
* ↑ Sammet (1969) p. 316
* ↑ Sammet (1978) p. 204.
* ↑ Gordon، Michael J. C. (1996). "From LCF to HOL: a short history" (PDF). ص. 3. مؤرشف من الأصل (PDF) في 2017-08-11. اطلع عليه بتاريخ 2015-05-04. Edinburgh LCF, including the ML interpreter, was implemented in Lisp.
* ↑ Rojas، Raúl؛ Hashagen، Ulf (2002). The First Computers: History and Architectures. MIT Press. ص. 292. ISBN:978-0262681377. مؤرشف من الأصل في 2018-11-30. اطلع عليه بتاريخ 2013-10-25.

## طالع أيضاً

| رابطة مكائن الحوسبة مجموعة الإهتمامات الخاصة بشأن لغات البرمجة $^{[لغاتأخرى]}$‏(م.ا.خ.ل.ب) تاريخ تداول لغات البرمجة $^{[لغاتأخرى]}$‏ تاريخ بناء المجمع (حوسبة) $^{[لغاتأخرى]}$‏ تاريخ عتاد الحوسبة | لغة برمجة خط زمني للحوسبة التسلسل الزمني للغات البرمجة قائمة لغات البرمجة لغات برمجة عربية قائمة لغات البرمجة كائنية التوجه |

## قراءة موسَّعة

| اسم الكتاب | الكاتب | الناشر وسنة النشر |
| Programming Systems and Languages | سول روزن | ماكجرو-هيل (1967) |
| Programming Languages: History and Fundamentals | جين ساميت | برنتيس-هول (1969) |
| Programming Languages: History and Future | جين ساميت | كومينيكيشن اوف ذا آي سي أم (يوليو 1972) |
| History of Programming Languages | توماس بيرغن وريتشارد غيبسون | أديسون-ويسلي (1996) |
| History of Programming Languages | ريتشارد ويكسلبلات | أكاديميك برس (1981) |

## وصلات خارجيَّة

* تاريخ وَتطوُّر لُغات البرمجة.
* رسم بياني حول تاريخ لُغات البرمجة
* بوابة التاريخ
* بوابة برمجة الحاسوب
* بوابة تقانة المعلومات
* بوابة علم الحاسوب