كيف تطورت لغات البرمجة من الصفر
جمعنا لكم اهم ماورد حول بدايات البرمجة لمن يريد الصعود درجة درجة، ولعل البدء من المفاهيم الاولى أجدر بتعلمها بعمق.
مقدمة حول تاريخ لغات البرمجة | ![]() |
![]() |
![]() |
ظهر في النصف الثاني من القرن العشرين العديد من لغات البرمجة.![]() • تمثل الخانات الثنائية فيها رموز العمليات و مواقع الذاكرة وقيم المتحولات , ولكن من العسير جداً كتابة البرامج فيها . • ظهر بعد ذلك لغات التجميع(Assembly Languages) • و على الرغم أن البرمجة بلغات التجميع أبسط بكثير من البرمجة بلغة الآلة إلا أنها بقيت بعيدة عن اللغات الطبيعية • إذاً هكذا ظهرت لغات البرمجة عالية المستوى (لغات الجيل الثالث) الأقرب إلى اللغات الطبيعية المحكية و المستقلة عن العتاد المادي للحاسوب . • و بالمناسبة كانت أولى هذه اللغات لغة (FORTRAN) • و نتيجة لعدة أسباب ذكرت أهمها أعلاه ظهرت لغة • و في فترة السبعينات ظهرت لغة (C) الشهيرة ذات المرونة الكبيرة و التي تتركز تطبيقاتها في برمجة نظم التشغيل (Operating Systems) و المترجمات (Compilers) و برمجيات التحكم بالمنظومات الصناعية , بسبب كونها لغة عالية المستوى تتضمن فاعلية لغة التجميع . • كما ظهرت لغة (PASCAL) التي اشتهرت بكونها لغة تعليمية مهيكلة دقيقة التنميط . • كما تميزت فترة الثمانينيات بظهور لغات برمجة الموجهة الكائنية المنحى و اللغات الكتلية التي عكست مفاهيم هندسة البرمجيات(Software Engineering) .[/color] • كانت البداية الفعلية للغات البرمجة الكائنية المنحى مع لغة (Small Talk 80) , و ترسخت أكثر مع لغة (ADA) ثم حققت انتشارها الواسع مع لغة (C++) التي دعمت لغة (C) الواسعة الإنتشار أصلاً بمفاهيم البرمجة كائنية المنحى . • شهدت حقبة التسعينات تطورين بارزين هما : وقد انعكس ذلك على تطور لغات البرمجة , لذلك ظهرت لغات البرمجة المرئية و هي لغات موجودة أصلاً لكنها طعمت بمزايا التعامل مع الواجهات الرسومية و بالإستجابة إلى الأحداث التي يقوم بها المستخدم مثل لغة –(DELPHI) و لغات أخرى كثيرة • و لعل أهم ما يميز هذه الحقبة هو ظهور لغة (JAVA) التي تحوي دعماً خاصاً لكي تنفذ من خلال الويب و هي لغة كائنية المنحى تشبه كثيراً لغة C++) (لكنها لا تقبل تعليمات هذه اللغة . أسس البرمجة : لم اتعود في حياتي تعلم شئ لا ادري او لا اعرف كيف سأستفيد منه و لفهم البرمجة و لغات البرمجة علينا ان نفهم حقيقة ما الفائدة منها و لماذا وجدت و كيف يستطيع المرء الاستفادة منها . اللغات مفتوحة المصدر : و هي اللغات التي يتم فيها ترجمة النص او الكود البرمجي اثناء التنفيذ و يمكن لاي شخص الاطلاع عليها او التعديل فيها . “بايثون لغة برمجة، من لغات المستوى العالي، تتميز ببساطة كتابتها وقرآءتها، سهلة التعلم، تستخدم أسلوب البرمجة الكائنية (OOP)، مفتوحة المصدر، وقابلة للتطوير. تعتبر لغة بايثون لغة تفسيرية، متعددة الأغراض وتستخدم بشكل واسع في العديد من المجالات، كبناء البرامج المستقلة باستخدام الواجهات الرسومية المعروفة وفي عمل برامج الويب، بالإضافة إلى استخدامها كلغة برمجة نصية للتحكم في أداء بعض من أشهر البرامج المعروفة أو في بناء برامج ملحقة لها. وبشكل عام يمكن استخدام بايثون لبرمجة البرامج البسيطة للمبتدئين، ولإنجاز المشاريع الضخمة كأي لغة برمجية أخرى في نفس الوقت. غالباً ما يُنصح المبتدئين في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسرع اللغات البرمجية تعلماً. نشأت بايثون في مركز CWI (مركز العلوم والحاسب الآلي) بأمستردام على يد جويدو فان رُزوم في أواخر الثمانينات من القرن المنصرم، وكان أول إعلان عنها في عام 1991. تم كتابة نواة اللغة بلغة C. أطلق فان رُزوم اسم “بايثون” على لغته تعبيرًا عن إعجابه بفِرقَة مسرحية هزلية شهيرة من بريطانيا، كانت تطلق على نفسها اسم مونتي بايثون (بالإنجليزية: Monty Python). تتميز بايثون بمجتمعها النشط، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة والتي برمجها أشخاص من مجتمع هذه اللغة، مثلاً مكتبة PyGame التي توفر مجموعه من الوظائف من أجل برمجة الألعاب. ويمكن لبايثون التعامل مع العديد من أنواع قواعد البيانات مثل MySQL وغيره” اللغات المغلقة المصدر : و هي اللغات التي يتم ترجمة النص او الكود البرمجي فيها بعد الانتهاء من كتابة الكود و لا يعود المبرمج او أي شخص آخر قادرا على رؤية النص البرمجي و مثالي عليها Visual Basic مقتبس من الموسوعة الحرة : “هي بيئة تطوير ولغة برمجة من مايكروسوفت تستند إلى لغة البيسك الشهيرة. وهي تصنف ضمن لغات البرمجة الشيئية. منذ أن بدأت مايكروسوفت في اصدار الفيجوال بيسك وهي تلاقى نجاحا باهرا وشعبية لا بأس بها بين المبرمجين نظرا لسهولتها الشديدة في مقابل التعقيد الشديد الذي يواجهه أى مبرمج يسعى لبرمجة ويندوز باستخدام السي أو السي++. عموما تناسب الفيجوال بيسك تطبيقات قواعد بيانات والتطبيقات المخصصة للشركات الصغيرة وبرامج الحسابات وهي مريحة وسهلة وتؤدى الغرض بالإضافة إلى أنها تسمح للمبرمج بالتركيز على حل المشكلة فغالباً ما لا يواجه صعوبات فنية أثناء كتابة برنامج بالفيجوال بيسك. و لكن بقى أن نذكر أن برامج الفيجوال بيسك لا تتم ترجمتها كاملة إلى لغة الآلة مثل السي++ أو الدلفي وإنما تترجم إلى كود وسطى يتصل مع مكتبة ربط تسمى ب”Run Time library” واسمها MSVBM??.dll مع استبدال علامات الاستفهام برقم الإصدار. لغة البرمجة فيجوال بيسك هي لغة ذات تصميم مرئي واجهة رسومية بعكس بعض اللغات مثل الاسمبلي ذات الشاشة السوداء. حيث تحتوي هذه اللغة على العديد من الاوامر بداخلها ولغة سهلة التطبيق تم تطوير هذه النسخة من البرنامج عن النسخة القديمة basic والتي تعمل تحت بيئة dos إلى هذه النسخة التي تعمل تحت بيئة وندوز. تعتمد اللغة في تطوير تطبيقاتها على الكائنات فهي تشبه العديد من لغات البرمجة الحديثة من حيث اعتمادها على الديناميكية والأحداث. تعني الديناميكية في هذه اللغة القدرة على استدعاء اي اقتران أو اجراء اعتمادا على الحدث. الحدث هو اي عملية يقوم بها مستخدم التطبيق على التطبيق مثل الضغط بزر الفارة أو الضغط على أحد ازرار لوحة المفاتيح أو حتى تحميل نموذج.” بيئة الدوت نت التي طرحت في السوق عام 2001 : لقد قررت الشركة المعروفة Microsoft و بعد طول انتظار من المبرمجين ان تقوم بتلك النقلة النوعية في عالم الحاسب و برمجيات وندوز فقد أطلقت بيئة عمل متكاملة و قد كانت تضم في بدايتها ثلاثة لغات فقط و هي ( c# ,c++,vb.net) و قد انضمت لها حديثا لغة رابعة و هي j# و قد كان الهدف من انشاء هذه البيئة البرمجية المتكاملة هو امكانية عمل عدد كبير من المبرمجين معا و ضمن نفس المشاريع حتى لو كان هؤلاء المبرمجين يتقنون لغات مختلفة و قد حققت Microsoft ذلك من خلال وضع نظام Assembly مشترك و موحد بين تلك اللغات المختلفة و قد صممت برنامجا ساهم في تحقيق تلك النقلة و يدعى Net Framework و كان الهدف الرئيس من هذا البرنامج هو قدرته على ترجمة الكود البرمجي لكل لغة على حدا إلى كود وسطي موحد و من ثم الى لغة الآلة (Assembly ) الاسمبلي المشترك ( و فقط للتوضيح فإن الاسمبلي لا تمثل لغة الآلة بشكل مباشر و انما تدعى بلغة التجميع و هي اللغة المتعارف عليها الآن للتعامل مع الآلات بدلا من الطرق القديمة التي نحمد الله انه تم التخلص منها و هي استخدام 10101000111 كما هو معلوم لدى الجميع ) و بعد ان يتم اخرج البرنامج اما على شكل مكاتب مغلقة المصدر (.dll) و هي اختصار ل المصطلح (Dynamic link library) ما اللغة التي يجب علي أن أتعلمها و لماذا ؟ كما رأينا سابقا فإن لغات البرمجة عديدة و حتى يصعب إحصاؤها لذا لابد للراغب في التعلم ان يعلم ما الذي يجب ان يتعلمه و لماذا و هنا اريد ان انصح كل من يرغب في التعلم بأن لغات البرمجة كما سبق و ذكرت تصنف إلى نوعين رئيسيين و هما المفتوحة المصدر و هي مصممة للبرمجة على انظمة لينوكس بشكل رايس و لغات مغلقة المصدر و هي مصممة للبرمجة على أنظمة ويندوز لذا فإن اختيارك يتوقف على أي من النظامين تفضل فإن اخترت الاول أنصحك بالبايثون لسهولتها و سهولة التعامل معها و لانها تعتبر من اللغات التفسيرية هذا عدا عن انها محمولة أي بإمكانك ان تبرمج على المفكرة لو احببت و ان أحببت الوندوز فأنصحك بإحدى اللغتين vb.net او c# و للمبتدئين انصح بالاولى و للذين سبق و أن تعلموا لغات برمجية أفضل الثانية لأنها أقوى و أسرع و أقرب إلى C التي صممت عليها 99% من أنظمة التشغيل المعروفة و لا أنصح نهائيا بال c++ لأنه و كما يظهر من كل اصدارت ال .NET ان Microsoft قد خفضت اهتمامها بتلك اللغة أي ربما لن تجد الدعم الكافي لها بعد فترة زمنية على عكس c# حديثة العهد التي لن تتوقف Microsoft عن دعمها على الأقل لعشر سنوات و كما قلت فهي قريبة للغات الاخرى مثل C أي في حال أردت تعلم أي لغة أخرى و على سبيل المثال JavaScript و هي لغة مصممة لإضافة المؤثرات على مواقع الواب فستجد بأنها شبيهة جدا بال c# . ما الفائدة من تعلم لغات البرمجة ؟ ان الفائدة المرجوة من تعلم لغات البرمجة هي ذاتها الفائدة المرجوة من اقتناء جهاز الحاسب لانك لن تستطيع يوما فهم ما يدور في حاسبك و لن تستطيع ان تفهم سبب الاخطاء التي تظهر لك او ماهيتها الا من خلال تعلم لغات البرمجة هذا من جهة و من جهة اخرى يا صديقي ان لغات البرمجة اصبحت من لغات العصر تماما مثل اللغة الانكليزية أي بإمكانك الافادة المادية منها من خلال القيام بمشروعات فردية صغيرة مثل برامج المحاسبة او من خلال القيام بمشروعات جماعية كبيرة مثل برامج التصميم و ادراة الشبكات او حتى انشاء مواقع الانترنت و ان البرمجة على صعوبتها الظاهرة فهي سهلة للغاية لاني و كما قلت فإنها تحاكي المنطق البشري و لم تنشئ من فراغ فهي تحول النصوص التي يفهمها البشر الى 101000101 التي يفهماها الحاسب و قد يستهجن البعض استخدامي لكلمة حاسب بدلا من كلمة كمبيوتر او pc و هنا أريد ان اوضح بان من يفهم لغات البرمجة يدرك و بكل سهولة بان الكمبيوتر لا يدرك سوى الارقام الثنائية و كل ما تراه امامك من صور ليست سوى عمليات حسابية تتحول من خلال آلاف العلاقات التي لست مضطرا لكتابتها جميعا ان اردت ان تكون مبرمجا الى صور و فيديو و مواقع انترنت و غيرها لذا فالاسم الصحيح هو الحاسب و ليس الكمبيوتر . لغات البرمجة العربية : ان المقصود بلغات البرمجة العربية أي اللغات التي تستخدم اللغة العربية في كتابة نصوصها البرمجية و للأسف ليس هناك سوى لغة واحدة و هي لغة الجيم من تصميم الدكتور عمار سلكه و هي لغة رائعة و كما يقول الدكتور عمار في موقعه تحتوي على جل المميزات الهامة للغات رفيعة المستوى (جزاه الله خيرا) النظام العشري و الثنائي و التحويل بينهم شرح مهم ( التحويل بين نظام العد البشري و نظام الآلة ) : في بداية مشوارنا , من المهم ان نفهم ماهو النظام العشري Decimal system و النظام الثنائي Binary system و حتى النظام الست عشري Hexadecimal system. النظام العشري نستخدم النظام هذا يوميا في حياتنا و في اغلب امورنا و هو بكل بساطة نظام الارقام على الاساس العشري و يحتوي على : مبدأ هذه الطريقة هو القسمة على 2 وتكرار هذه العملية حتى تنتهي العملية مع الاحتفاظ بالباقي . وتشكل البواقي العدد الثنائي المكافئ NAND OR XOR NOT مشروعات قيد الإنشاء : لقد قمت و بحمد الله بإنشاء مشروعات ربما تكون بسيطة و ليست على درجة عالية من الجودة و لكن لم يكن ذلك لقلة القدرة او الكفاءة و انما لانه و كما قال اجدادنا يد واحدة لا يمكن ان تصفق و يد الله مع الجماعة و من خلال هذا المقال أردت أن أدعو كل الشباب المهتمين الراغبين في التعلم او الأكفاء القادرين على المشاركة الى مساعدتي في هذا المشروع و طبعا رح يكون المشروع جماعي و الفائدة للجميع و ما اعمل عليه حاليا : وقد تم بحمد الله الجزء الأعظم من كلا المشروعين و كان العمل الى الآن فرديا و لم يشاركني فيه احد لذا إن كنت من الراغبين في المشاركة بالأفكار و التطوير و تستطيع البرمجة على إحدى لغات الدوت نت ( برمجة شيئية ) أهلا و سهلا بك للعلم فأنا بحاجة مختص في البرمجة الرياضية و ترييض العلاقات بشكل رأيسي لعلنا نجعل المشروع الاول عالميا و يناهز الاكسس او ال SQL . أخوكم : محمد جهاد الشرع ولا تنسونا من دعوة صالحة . مصادر اخرى داعمة: http://www.ckfu.org/vb/t374352.html http://rochdi2013.blogspot.com/2013/07/blog-post_12.html
http://www.shorooq.net/programing_langs.php
|