تاريخ التسجيل: 2008-02-06 مشاركات: 64
الجامعة: دمشق الكلية: الهندسة المعلوماتية المرحلة: السنة الأولى الاختصاص: غير ذلك
|
يقولون بأنه بمعرفة التاريخ فإنك تستطيع تحليل ما كان... وفهم ما أنت عليه الآن ... وتوقع ما سيكون (إن أراد الله) ... لذلك كان هو بداية حديثنا.
تبدأ قصتنا في عام 1960 كان لكل مجال أو تخصص لغة خاصة به, حيث كانت لغة الـ COBOL تستخدم في التطبيقات التجارية ولغة الـ FORTRAN تستخدم في التطبيقات الهندسية والعلمية, وهكذا.. ومن هنا بدأ المطورون بالتفكير (هل من الممكن إختزال جميع هذه التطبيقات في لغة واحده) وجاءت الإجابة في لغة الـ ALCOL 60 والذي قام بتطويرها (International Committee) ولأكنها لم يكتب لها الإنتشار وذلك بسبب ضعفها الشديد وهذا طبيعي لأول تجربة, وجاءت بعدها لغة الـ (Combined Programming Language) والتي تختصر إلى (CPL) وقام بتطويرها (Cambridge University) كانت هذه اللغة أفضل من سابقتها بكثير وكتب لها الإنتشار ولكن بشكل محدود بسبب صعوية التعامل مع عناصرها, مما أتاح المجال لتطويرها لتصبح لغة (Basic Combined Programming Language) وتختصر إلى (BCPL) قام بتطويرها (Martin Richards at Cambridge University) حيث قاموا بحل مشكلة الصعوبة ولكنها نتيجة لذلك أصبحت لغة إلى حد ما ضعيفة, وبعدها ظهرت لغة الـ (B) والتي تطورت بواسطة (Ken Thompson at AT&T) جاءت هذه اللغة ببعض التحسينات على لغة (BCPL) إلا أنها حوت على بعض نقاط الضعف مثل إحتوائها على نوع بيانات واحد فقط يسمى (Cell), وعدم دعدمها للـ (Floating Point Hardware), بالإضافة إلى بطئ الـ (Compiler). وبعدها وفي سنة 1972 ولدت بطلة قصتنا على يد رجل يدعى Dennis Richie في مختبر الـ AT&T’s في الولايات المتحدة الأمريكية, قام هذا الرجل بعملية التهجين ما بين BCPL و B لتولد البطله حامله لأفضل الجينات ومتلافيه الاخطاء السابقة لتحقق السهولة والقوة معاً .. أطلقوا على بطلتنا إسم الـ C , وعند نزولها وكأي لغة جديدة بدأت حربها مع باقي اللغات من أجل البقاء والإنتشار, ولتحقيق ذلك فلابد من وجود الدعاية والإعلام الجيدان لتصل بهذه اللغه إلى الأهداف المرجوه منها وإستعراض مميزاتها أمام باقي اللغات. والآن السؤال كيف كانت الدعاية لهذه اللغة الوليده والتي ما زلنا إلى اليوم نتغنى بها؟ الجواب ............ لا شئ!! ماذا؟ نعم لا شئ ... فلم يكن هناك دعاية ولا خطة للترويج, نعم دخلت السوق بصدر مفتوح ولكن بعد أيام قليلة .. كانت الصدمة حيث أنها ربحت الرهان ولم تكتفي بذلك فقط بل وحلت مكان بعض اللغات في ذلك العصر مثل (PL/I) و (ANGOL ) وغيرها.. لدرجة أن السيد/ Dennis نفسه كان مندهش من سرعة إستجابة المستخدميين لهذه القنبلة, حتى أنها وهي في عمرها القصير أصبحوا يفضلونها عن بعض اللغات العملاقة مثل الـ FORTRAN. ولكن ما سر هذا الإقبال؟ تميزت لغة C بالسهوله , وإمكانية الإعتماد عليها. حيث أنها وصفت بأنها الأخت الجميلة للغة PASCAL. وكما كانوا يقولون بأنك لو وقعت في حب PASCAL ففي النهاية ستتزوج من الـ C, وتمكنت في يومنا هذا من حصد عدة مميزات إضافية لم تكن في عصرها موجودة فأصبحت لغة متنقله: تعمل تحت أكثر من نظام تشغيل (Windows , IBM, Apple), لغة قويه وسريعه: فهي شبيهه بالـ (Assembly) ولكن مع (High Level Syntax) وأيضاً وقوعها في التصنيف تحت الـ Low Level فهذا يعني بأنها تتيح التعامل مع الآله بشكل شبه مباشر, لغه قياسية: ففي نهاية عام 1989 إستحوذت على مواصفات الـ ANSI ومن ثم أخذت القبول من الـ ISO في عام 1990.
ولكن ألا يراودنا سؤال يبدأ بكيف وينتهي بعلامة إستفهام ..
كيف للغة قديمة أن تستمر كل هذه الفترة بدون أن تندثر ؟ ...
كيف لهذه البطله أن تحوي كل هذه القوة ؟ ...
كيف لهذه العجوز أن تصرع اللغات الحديثة ؟ ...
كيف وكيف وكيف ؟؟؟؟؟؟
الإجابة الشائعة لهذه الأسئله .. بسبب المميزات التي تملكها والتي ذكرنها بالأعلى ... لا ضير ... سنرد الجواب بسؤال من أين جاءت هذه المميزات .. ؟؟؟
الإجابة لن تعجب البعض ....... وهي ........ (إقطعوا يد السارقة).
لنكشف القناع .. ونرى ماذا تخبئ لنا العجوز ..
منذ نعومة أصابعها لم ترد أن تتعلم الحبو ولم ترغب بالإستمرار بمرحلة الطفولة فعلمت أولى جرائمها وبدأت مع العائلة وهي سرقة أبوها (B) وجدتها (BCPL) وأقاربها من الـ (Fortran) و (ALGOL 60).
فقد أخذت من (BCPL) رشاقة التراكيب (Structure) مما أتاح لها التصريح بأكثر من Loop وأيضاً أخذت من الجدة رموز الـ Comment وهي (//), وقامت بالحركة القاتلة حين أخذت العامود الفقري للجده وهو الـ (Pointer).
وجاء دور الأب (B) ليدفع الثمن لتأخذ كنز لا يقدر بثمن وهو الـ (Static) و (Auto) والذان يعتبران من أدوات الـ Storage Data, ولم تكتفي السارقة بهذا فأخذت فكرة العدادات التي تكون بالصيغة التالية (x = +y) وأيضاً الـ (++) و (--), وإستمرت في جرائمها لتستولي على الـ (Array) وعلى الأساسات مثل (Switch , goto, If, AND, OR) فقد قامت بتصفية الأب حتى أن طريقة الـ Declaration أخذت منه, أما عن سبب تسمية الـ (C) بهذا الإسم, فهي أخذت الحرف الابجدي الذي يلي الأب (B).
نزلت البطله إلى الميدان وقد سرقت كل نفيس وغالي فها هي الـ (Basic) تنحني, وها هي الـ FORTRAN تجعلها من الماضي, أما الحسناء PASCAL فتتنازل عن التاج كرهاً, وبقيت البطله تكتسح كل جديد من عام 1973 إلى 1980, وأيضاً خلال هذه الفترة زادت قوتها من خلال التطويرات التي أضيفت لها وهي الـ Unsigned و Long و Enumeration و Structure مما سقلها وجعلها كالحديد في مواجهة أي عدو .. وأيضاً أضافوا إليها السلاح الخارق وهي الـ Union والتي ساعدت بالتحكم بي الـ (Hardware), هل إكتفت البطله بذلك لا فما زالت الشهيه مفتوحه, في نفس زمن ولادة الـ (C) كان نظام التشغيل الـ (Unix) وكان يعتمد على لغة الـ (B).. أعتقد بأنه لا يوجد داعي للتجريح وقول هل بقي للأب شئ, إستولت السارقة على كل شئ فأصبح النظام الـ (Unix) بالكامل مكتوب بواسطتها.
مرت الايام وما من منافس للبطله إلى أن جاء مصطلح الـ (Object Oriented Programmed) يمثل هذا المصطلح نقطة تحول جذرية فهو يمثل طريقة تفكير لجيل جديد.. فما موقف البطلة من هذا فالمواكبة تعني الإستغناء عن الكثير من التفاصيل والتي تمثل مصدر قوة والوقوف يعني الإنسحاب ومن هنا جاءت لغة الـ (C++) وهي عبارة عن جلد جديد للبطله لتنافس به مثيلتها من الـ (Height Level Programming), وعلى ما يبدوا بأنها حنت من جديد إلى السرقة ولكن من منْ نعم من إبنتها الـ (C++) فها هي تقوم بأخذ الـ (Function) لتضيفها إلى قائمة المسروقات, وما وزال مسلسل السرقات مستمر.... على يد السارقة.. فهي لا تميز بين أب أو جدة أو إبنة ...
هذه حكاية السارقة والبطله والعجوز الـ (C) أحببت أن أصيغها بأسلوب مختلف ليسهل فهم تاريخها,, وأنها ليست وحدها صاحبة المجد بل كان هناك لغات أخرى ساهمت في تكوين هذا البناء.
__________________
يا حيف عالزمن

|