مرت لغات البرمجة في رحلة طويلة تبدلت خلالها معالمها الأساسية وطريقة عملها بل وحتى أهدافها في أحيان كثيرة. لكن رغم كل التحولات التي طرأت عليها ظلت لغات البرمجة تخدم مبدأ أساسيا واحدا ألا وهو تقديم وسيلة تواصل بين الإنسان والآلة. بغض النظر عن طبيعة تلك الآلة.
يسمى هذا التواصل برنامج. وتسمى عملية إنشاء هذا التواصل برمجة. تقوم البرمجة على تلقين الالة مجموعة من الخطوات (عادة ما تكون مكررة). تحفظ الالة هذه الخطوات وتقوم باستخدامها لتحقيق هدف ما. أول محاولات برمجة الآلة كانت في عام 1801م مع نول النسيج الجاكارد (Jacquard loom). نول النسيج هو الة ميكانيكية من اختراع جوزيف ماري جاركارد سهلت إنتاج النسيج ذي الرسمات المعقدة.
حتى يفهم نول الجاكارد طبيعة الرسمة المعقدة, يقوم المبرمج بتقسيم التصميم النسيجي الى صفوف متلاقصة. يتم غزل كل صف من هذه الصفوف من خلال تمرير الغزل عبر بطاقات مثقبة يفهم من خلالها النول أين يجب أن يضع العقدة ذات لون ما وأين يجب أن يضع عقدة ذات لون آخر. توصل هذه البطاقات مع بعضها البعض بشكل متسلسل حتى نحصل على التصميم النسيجي المطلوب.
أدرك جوزيف جاكارد أن عملية النسج كانت تخضع لخطوات محددة مكررة رغم أنها عملية معقدة ودقيقة. وكانت هذه أول محاولة لتعليم آلة كيفية إنجاز مهمة بطريقة تلقائية من خلال برنامج.
في عام 1822 أنهى شارلز بابيج Charles Babbage أول تصور لآلة ميكانيكية قادرة على القيام بحل معادلات polynomial من الدرجة السابعة seventh order polynomial equations. لكن تصوره لم يبصر النور بسبب ارتفاع تكلفة إنجاز مثل تلك الحاسبة. بعد مئة و ثلاثين سنة من وفاته في عام 1985 قرر مدير المتحف البريطاني دورون سويد Doron Swade تكريم شارلز بابيج بتصميم ماكينته العملاقة واختبار اذا ما كانت تعمل حقا وبالفعل عملت الآلة بنجاح تام. عندها وعندها فقط اعتبرت الة شارلز بابيج أول آلة إخترعها الإنسان وتقوم بما يقوم به الحاسوب المعاصر. استعملت هذه الآلة النظام العشري decimal number وليس النظام الثنائي binary system كنظام عد. وكان تشغيلها يتم من خلال تحريك باليد لمسنن أولي يشكل حلقة البدء بتحريك مسننات متتالية كانت تمثل ذاكرة الآلة الحاسبة.
إلا أن أول حاسوب إلكتروني بشكله الحالي لم يبصر النور حتى عام 1945 بعدما قام آلان تورينغ Alan Turing بتصميم أول آلة قادرة على فك أكواد التشفير رياضية -أنيغما- التي استخدمتها القوات النازية لتشفير رسائلها الراديوية. بناء على تصميم تورينغ تم إنشاء أول حاسوب رقمي إلكتروني متعدد المهام .عرف هذا الحاسوب باسم Electronic Numerical Integrator and Computer (ENIAC). إلا أن حاسوب ENIAC استخدم نظام العد العشري مما جعله صعب الإستخدام والضبط.
في عام 1951 قامت شركة IBM بإنتاج ما يعرف ب vaccum tube computer وهو عبارة عن حاسوب صممه العالمان أتانسوف Atanasoffوبري Berry في عام 1931. وكان أول حاسوب يستخدم النظام الثنائي بدل النظام العشري. وكما ENIAC استخدم حاسوب IBM كروت مثقبة مشابهة لكروت نول الجاكارد لإعطاء الأوامر للحاسوب.
مع اكتشاف الترانزيسترات في خمسينيات القرن الماضي وتصميم ال integrated circuits: ICs التي استعاضت عن ال vaccum tubes اصبح تصميم الحواسيب أكثر فاعلية وسرعة وصغرا في الحجم. واستعيض عن كروت البرمجة بأوامر كتابية عرفت بإسم لغة التجميع Assembly . ومع تعدد الشركات المصنعة للحواسيب أصبحت لغة الأسمبلى تعتمد بشكل كبير على نوع الآلة والشركة المصنعة لها. فكان لابد من تطوير لغة تعمل دون الإعتماد على الآلة وتعمل على كل ال platforms ومن هنا بدأ ظهور اللغات البرمجية بشكلها الحديث.
اعتمدت لغات البرمجة (ولا زالت تعتمد) في عملها على ما يعرف باسم compiler وال dll dynamic link libraries كوسيط بين اللغة المتقدمة الأعلى التي يفهمها الإنسان ويكتب الأكواد بها ولغة الـ binary التي تفهمها الالة وهى لغة الصفر والواحد .
حيث يقوم الcompiler بتحويل أكواد اللغة المتقدمة الأعلى إلى لغة ثم يقوم الـ(assembler ) وهو مترجم بتحويل كود الأسمبلي إلى كود الآلة وبذلك أصبحت اللغات البرمجية لا تعتمد على platform الخاص بالآلة.
ومن هذه نقطة بدأت لغات البرمجة بالظهور والتنوع كلغات COBOL و PASCAL و C و FORTRAN و . Lisp. ولكل واحدة من هذه اللغات خصائصها المميزة وغايتها الوظيفية المختلفة. والتي سنتحدث عنها في مقالات قادمة إن شاء الله.
Computer science An Overview 12th Edition Global Edition J. Glenn [1] Brookshearand Dennis BrylowGlobal Edition contributions byManasa S.
[2] http://www.unhas.ac.id/~rhiza/arsip/kuliah/Komputasi-dan-Pemrograman/history-prog-lang.pdf
[3] https://www.arageek.com/tech/programming-languages-history