دورة جافا: الطريق لإحتراف البرمجة من الصفر

 

1. تاريخ وأنواع البرمجة

الحمد لله رب العالمين والصلاة والسلام على أشرف المرسلين محمد عليه الصلاة والسلام.

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

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

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

في هذه الفقرة سوف نرى تاريخ هذه اللغة والذي يقربنا من مزاياها، كما سنرى موضوع مهم هو أنواع البرمجة، وهو يدخل أيضاً ضمن مزاياها فنوع البرمجة المتبع في جافا ليس هو المتبع في السي ( أو ليس وحده )، النوع هنا يقصد به الطريقة التي تعالج بها لغة البرمجة البرامج .

 

فهرس الفقرة :

1.1 تاريخ لغة الجافا .

2.1 الفرق بين برمجة إجرائية وكائنية التوجه .

- 1.2.1 البرمجة الإجرائية .

- 2.2.1 البرمجة كائنية التوجه .

 

3.1 تاريخ لغة الجافا

هل سمعتم يوما عن لغة اسمها السي طبعا سمعتوا عنها، على الأقل عندنا في المجمع، ربما اللغة التي لم تسمعوا عنها والتي سنقوم بالتلميح لها في درسنا هي Mesa وهي لغة ذات منهج إجرائي.

تم ذكر اللغتين لأنهما اللتان أثرتا بالفكرة لظهور الجافا، طبعا ليسا الوحيدين فالجافا تاثرت أيضا ب Ada 83 ,Eiffel ,Smalltalk ,Modula-3 ,Objective-C, لكنهما أثرتا بالفكرة لدى Bill Joy في بداية السبعينات، فقد كان يريد الجمع بين إيجابياتهما، لكن لم يتمكن من تحقيق مبتغاه.

وفي بداية التسعينات وصف في أحد المقالات اسمه further كيف يمكن أن تكون لغة برمجة ذات منهج غرضي التوجه (البرمجة غرضية التوجه) : يجب أن تبنى على السي بلس بلس. لكن وبخيبة أمل أخرى فقد أدرك أن السي بلس بلس كلغة أم غير ملائمة وأنها غير عملية للبرامج الكبيرة .

لكنه لم ييأس وظل يبحث.

شخص أخر كانت له أيضاً علاقة بالجافا، اسمه James Gosling، والذي يعتبر الأب الروحي للغة البرمجة جافا، قام بالتطوير في لغة السي بلس بلس لكن لم تعجبه النتيجة. وفي وسط هذا الإحباط ظهرت له لغة oak وتعني بلوط، سماها هكذا لأنه كان يشتغل ثم نظر من خلال نافذته فرأى بلوطة ( ولله في خلقه شؤون ) .

في دجنبر 1990 انطلق مشروع : The Green-Project من طرف Patrick Naughton والذي شارك فيه كل من James Gosling و Mike Sheridan . فكرة هذا المشروع كانت لتطوير برامج التلفزة والأجهزة الاستهلاكية الكهربائية . الأدوات الأساسية لهذا المشروع كانت : Green-Os, OAK, وبعض الأدوات الأخرى .

قام Bill Joy بعرض مقال further على بقية الأعضاء وبدأ مباشرة بتطوير أحد واجهات التصميم. بعد ذلك قام gosling بتصميم المترجم الرئيسي بلغة السي أما لغة OAK فهي التي نفذت وقدمت أول البرامج في غشت 1991 التي أدت بالمجموعة لتصميم آلة سموها Seven*. مدير شركة Sun : Scott McNealy انبهر ب *7.

أسست المجموعة شركة First Person في نونبر 1992 .

في بداية سنة 1993 سمع الفريق عن طلب من Time Warner متعلق بنظام ل set-top-box وهي عبارة عن أدوات كهربائية.

وجهت شركة First Person النظر على هذه الأدوات لكن Time Warner لم تكن مهتمة بذلك.رغم ذلك ظلت الشركة تطور في نفسها وبتغيير لوجهات تطوير عديدة تمركز التطوير على World wide Web والذي كان يحتاج إلى لغة برمجة قوية لتطبيقها في الويب.

رأى فريق العمل أن لغة oak لغة مثالية لاستخدامها في الويب رغم أنها طورت لغرض مخالف تماما. بعد ذلك أخذت لغة oak اسم java لأجل حقوق الحفظ والطبع : كانت هناك لغة برمجة أخرى أخدت الاسم . بعد أن قدمت لغة الجافا نموذج WebRunner وهو نموذج للمتصفحات، قام Jonathan Payne بتنقيحه حيث ظهر متصفح HotJava وفي ماي قدم الافتتاح للغة جافا لدى sunWorld '95 .

فقط مستعملون قليلون هم من صاحبوا HotJava, فجاء NetScape كحظ للغة الجافا ليرخص لتقنية الجافا واستعملت بذلك في النسخة 2.0 للبرنامج . حتى هذه اللحظة لم يتمكن المبرمجون من برمجة تطبيقات الجافا، فقط ابتداء من سنة 1996 حيث ظهر JDK 1.0 الذي مكنهم من البرمجة. قبل ذلك بقليل قام أعضاء الفريق بإنشاء شركة javasoft والتي بدأ معها مشوار الجافا .

 

ملخص لتاريخ جافا :

النقاط المهمة التي يجب أن تبقى راسخة في الذهن .

  1. Java تم تطويرها من طرف شركة sun .
  2. سنة 1995 قدمت كلغة برمجة غرضية التوجه وغير مرتبطة بأي نوع من أنظمة التشغيل .
  3. يرجع اكتشاف الجافا إلى لغة oak التي كانت موجهة للبرمجة على أنظمة التشغيل وكذلك على أجهزة حاسوبية أو الكترونية .
  4. تم الاعتراف بلغة الجافا في سنة 1996 مدموجة في متصفحات الويب وتطبيقات الانترنت .

 

2.1 الفرق بين برمجة إجرائية وغرضية التوجه

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

في عالم البرمجة هناك طرق عديدة لحل المشاكل في البرامج بحسب كل لغة برمجة، فبينما يتم هذا الاجراء بطريقة تسلسلية في لغة برمجة معينة، يتم في أخرى بطريقة تمثيل الواقع بكائناته !

سوف أتكلم عن نموذجين من أشهر نماذج البرمجة وكون أنني سأتكلم عن هذين النموذجين فقط هذا لا يعني أنهما الوحيدين في عالم البرمجة فهناك أيضا نماذج أخرى لن نتطرق لها والسبب هو أنها لا تهمنا ولأن أغلب لغات البرمجة وأشهرها نظامها يكون على شكل النموذجين .

 

1.2.1 البرمجة الإجرائية

هي المنهج لتصميم برامج، هذه البرامج تحتوي ببساطة على سلسلة من المراحل مرحلة بعد الأخرى. كما تعتمد تقسيم البرامج لمهام صغيرة أو Procedures ومنها أتت التسمية. إن تطوير لغات البرمجة التي تتبع هذا المنهج كان خطوة أساسية بين لغة Assembler واللغات العالية المستوى.

البرمجة الإجرائية هي حل أمثل وأحسن من البرمجة المتتابعة التي تعتمد على كتابة البرنامج مبسط وطويل .

 

من إيجابيات هذا النموذج :

  1. إمكانية إعادة استعمال كود من الأكواد المدخلة في البرنامج لعدة مرات بلا إعادة كتابته في أي مكان في البرنامج
  2. متابعة البرنامج وفهمه فهما جيدا .
  3. إنشاء كود مبني ببنية ووحدات قوية .
  4. ملائمة جدا للبرامج الصغيرة.

أمثلة للغات البرمجة التي تتبع النموذج الإجرائي :

  1. لغة السي : سنة 1970 .
  2. FORTRAN : سنة 1956 .
  3. Cobol : سنة 1960.
  4. Algol 60 : سنة 1960.
  5. PL/1 : سنة 1968.
  6. Pascal : سنة 1970.
  7. Pearl : سنة 1981.
  8. السي بلس بلس : سنة 1986.

 

من سلبيات هذا النموذج :

  1. ضعفه أمام البرامج الكبيرة فهو غير ملائم للبرمجة المعقدة .
  2. مشاكل كبيرة ومعقدة في التصميم والصيانة .
  3. عند إعادة استعمال أجزاء البرنامج (ليس في الكود نفسه ولكن في إعادة استعمال أكواد أخرى يستعملها البرنامج الرئيسي ) :

- صعوبة تنفيذ التغيرات .

- تدفق للخوارزميات ولهياكل البيانات .

- تطوير برنامج جديد يكون في الغالب أرخص من التعديل .

 

2.2.1 البرمجة كائنية التوجه :

هي عبارة عن نمط برمجة متقدم، وفيه يقسم البرنامج إلى وحدات تسمى الكائنات (Objects)، كل كائن عبارة عن حزمة (تعليب) من البيانات (المتغيرات والثوابت) والدوال ووحدات التنظيم وواجهات الاستخدام . ويتم بناء البرنامج بواسطة استخدام الكائنات وربطها مع بعض وواجهة البرنامج الخارجية باستخدام هيكلية البرنامج وواجهات الاستخدام الخاصة بكل كائن. (ويكبيديا) .

الفكرة الأساسية للبرمجة كائنية التوجه هي تجميع البيانات والدوال لكود ما في ما يسمى كائن لإعادة استعمالها في الكود لجعل البرنامج مفهوم أكثر وتسهيل تعقيده .

نفذ هذا النموذج بداية في لغة Smalltalk التي اخترعت من طرف Alan Kay.

أهم شيء في هذا النموذج هو الكائن object وللمقاربة بواقعنا فكما يعلم الجميع أن عالمنا يتكون من أشياء : سيارة, إنسان, حجر ... هذه الأشياء يتم وصفها فمثلا إن أخذنا شخص ما فوصفه سيكون ربما بالشكل التالي :

ـ طويل .

- أسمر .

- نحيف .

- شعره أسود .....

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

The design goal was to create a better C, a C with classes

الشيء الذي يدل على أن البرمجة غرضية التوجه نموذج أريح من نظيره الإجرائي، لكن السي بلس بلس بقيت إجرائية كذلك .

أمثلة للغات البرمجة التي تتبع النموذج كائني التوجه :

smalltalk : سنة 1980.

java :سنة 1992.

السي بلس بلس : 1986 .

لغة الجافا تتبع هذا النوع من البرمجة، بطبيعة الحال فإن البرمجة بهذا النموذج تكون صعبة، لكن السهولة النسبية تتمثل في القدرة على تمثيله بسرعة لأنه قريب من الواقع.

 

تطرقنا لتاريخ الجافا وكذلك لأنواع البرمجة، فعرفنا بذلك أن الجافا ليست كعكة وانما لغة برمجة، من خلالها يمكننا تصميم برامج كالاكلبس الذي سنراه بعد قليل، وهو برنامج يترجم أكواد الجافا والعديد من البرامج الاخرى والألعاب ...