جافا (لغة برمجة)

جافا(بالإنجليزية:Java)‏ هي لغةبرمجة كائنية التوجه،عالية المستوى، ابتكرهاجيمس غوسلينغفي عام1992م، أثناء عمله في مختبرات شركةصن ميكروسيستمز (بالإنجليزية: Sun Microsystems)، وذلك لاستخدامها كالعقل المفكر المستخدم لتشغيل أجهزة التطبيقات الذكية مثلالتليفزيون التفاعلي. وقد كانت لغة الجافا تطويرًاللغة سي ++، وعند إنشائها أطلق عليها مبتكرها«أواك»بمعنى شجرةالسنديان، وهي الشجرة التي كان يراها من نافذة مكتبه وهو يعمل في مختبرات صن ميكروسيستمز، ثم تغير الاسم إلى جافا، وهذا الاسم (على غير العادة في تسمية لغات البرمجة) ليس الحروف الأولى من كلمات جملة معينة أو تعبيرًا بمعنى معين، ولكنه مجرد اسم وضعه مطورو هذه اللغة لينافس الأسماء الأخرى.
توجد لغات برمجة عديدة: إلا أنه يوجد فيها نوع من التخصص، حيث يعتمد اختيار اللغة على المهام التي نريد من الحاسب إنجازها، حيث أن لكل لغة ما يناسبها، وهناك مهام يصعب تنفيذها بلغة معينة ولكنها تكون ميسورة بلغة أخرى، ومن اللغات التي ظهرت في فترة الستينات لغةالبيسكوهي لغات تدرس للمبتدئين، Beginners All Symbolic Instruction Code.
وظهرت بعدها لغةفيجوال بيسك(التي وضعتها مايكروسوفت) وهي غنية عن التعريف ولها مميزات عديدة، حيث تجمع بين سهولة لغةالبيسكوتصميم برامج ذات واجهة رسومية، وأيضًا فيجوال بيسك سكريبت التي تقدم برمجيات تعمل ضمن صفحات الإنترنت، وأيضًا لغة السي بلس بلس ذائعة الصيت، وهي لغة برمجة أُبتكرت كتطوير للغة السي التي هي الأخرى تحسين للغة البي وهناك العشرات من لغات البرمجة الأخرى.
تتميز لغة جافا بمميزات خاصةمما يجعلها أكثر لغات البرمجة إثارة؛ حيث أن ما يميزها الآتي:
حيث تتوفر أدوات البرمجة بهذه اللغة على موقع شركة صن ميكروسيستمز، كما يمكن تحميل برامج جافا من مواقع إنترنت مختلفة. وهي لغة سهلة التعلم. الإ أنها تحتاج كغيرها من اللغات إلى تطبيق وممارسة.
.تعتبر لغة جافا من اللغات الحديثة جداً في عالم البرمجة التي أنتجتها شركة sunmicrosystem في عام1991.
.لغة جافا تناسب تطبيقات الإنترنت بصفه خاصه هذا بالإضافة إلى دعم الانواع المختلفة من التطبيقات مثل تطبيقات تعمل على جهاز واحد (DesktopApplication) أو تطبيقات تعمل على شبكه Client/serverApplication)).
تتصف لغة جافا بالصفات التالية:
تعتبر هذه الأداة الأولى التي وضعها مطوروا جافا بشركةصن ميكروسيستمز، ورغم وجود أدوات برمجة أخرى من عدة شركات منافسة؛ إلا أنه من الأفضل أن نأخذ الأمر ممن طوره وهذه الأداة قد صدرت في عدة إصدارات ويمكن تحميل هذه الأدوات من موقع صن ميكروسيستمز.
في أوائل التسعينيات من القرن العشرين 1990م اختُرعت لغة جافا على يد شركةصن ميكروسيستمزولهذا الاختراع قصة عجيبة، حيث أن الشركة كانت قبل ذلك قد كلفت المهندسجيمس غوسلينغبوضع برامج لتشغيل الأجهزة التطبيقية الذكية (مثل التيلفزيون التفاعلي) باستخدام لغةسي++، وحينها وجد جيمس جوزلينج صعوبة في التعامل مع هذه اللغة، فقام هو وفريق العمل المساعد له بتطوير هذه اللغة فولدت لغة جديدة تتوافق مع احتياجاته فكانت لغة جافا، وقد خططت شركة صن في تلك الأيام لاستغلال هذه اللغة الوليدة في التيلفزيون التفاعلي لكي تربح المليارات، وحدث نوع من البطء في مشروع التلفزيون التفاعلي ــ ربما عن قصد من الشركات الأخرى المنافسة ــ ونتيجة لذلك فكرت شركة صن في توقيف مشروع تطوير هذه اللغة الوليدة وتسريح العاملين في هذا المشروع أو نقلهم إلى قسم آخر، ولكن حدث ما لم يكن في الحسبان حيث أنه في هذه الفترة كانت شبكة الإنترنت قد بدأت في الانتشار بسرعة مذهلة مع نزول نظامويندوزللأسواق، وحيث أن لغة جافا الوليدة التي اخترعت أصلًا لبرمجة الأجهزة التطبيقية فيها من السمات ما يجعلها أكثر توافقًا مع الشبكة العنكبوتية الدولية ـ الإنترنت ـ، فقد كان لها السبق وأضافت الكثير إلى الإنترنت (الذي كان قبلها مقصورًا على تبادل النصوص)، ولكن المطورين بشركة صن ابتكروا طريقة تجعل برامج جافا تعمل بسهولة في صفحات الإنترنت، وغيروا الاسم الذي كان قد أطلقه عليه مبتكرها من أواك (شجرة السنديان) إلى جافا، ومن هنا أصبحت جافا مرتبطة في شهرتها بالإنترنت حيث أن برنامج جافا صغير يوضع في صفحة من صفحات موقع على الشبكة الدولية يراه الملايين في جميع أنحاء العالم في نفس الوقت، وقد كان هذا لا يتوفر الا مع جافا مما أعطاها شهرة واسعة، ولحسن حظ شركة صن أن لغة جافا أكدت نفسها في المجال الذي طورت له أصلًا، فقد بدأ الآن التيلفزيون التفاعلي في الانتشار وما يسمى سينما المنزل والمشاهدة حسب الطلب، وليس هذا فقط؛ بل انتشر ما هو أكثر فائدة لشركة صن وهو الهاتف المحمول، وللجافا أكبر دور في برمجة البرامج التي يعمل بها في أجياله السابقة واللاحقة، ولا نستغرب أن يحدث نوع من الغيرة بين شركة ميكروسوفت وشركة صن ميكروسيستمز مما دفع ميكروسوفت إلى أن تحذف ماكينة جافا الافتراضية من الاصدارالأول لويندوز اكس بي، وهذه الماكينة الافتراضية مسؤولة عن عرض برامج الجافا على الإنترنت، ولكن ميكروسوفت تراجعت أمام طلب ملايين المستخدمين حول العالم فوضعتها مرة ثانية في الإصدارات اللاحقة، وقد كانت قضية مشهورة تناولتها الصحف والمجلات خلال العام الماضي.
وقد ساهم في شهرة الجافا أيضا برامجها العلمية التفاعلية التي تصلح لمعظم المناهج التعليمية في جميع مراحل التعليم، وبالتالي فإن لها دورًا كبيرًا في التعليم الإلكتروني والتعليم عن بعد والفصول الافتراضية.
جافاهي لغة برمجة من شركةصن ميكروسيستمز. الهدف الأساسي لنشأة جافا هو إيجاد لغة مشابهة للغةسي+ +من حيثالتركيب النحوي، وكذلكبرمجة كائنية التوجه، ومصممة للعمل علياّلة افتراضيةبحيث لا تحتاج إلي الترجمة من جديد عند استخدام برامجها علىمنصة تشغيلأونظام تشغيلجديد، حيث قامت شركة صن بإنشاء الاّت افتراضية لتشغيل جافا على معظم منصات ونظم التشغيل الموجودة حاليا، فأصبح من الممكن ترجمة البرنامج مرة واحدة ثم تشغيله على نظم مختلفة أو ما أسمته صن باكتب مرة واحدة، شغل في أي مكان(بالإنجليزية:Write Once, run anywhere)‏.
بين نوفمبر 2006 ومايو 2007 فُتِحَ المصدر لهذه اللغة وأصبحتمصدر مفتوحتحت ترخيصجنو.
سميت لغة الجافا منقهوة الجافا(الجاوة) التي تزرع في جزيرةجاوا، قد تطورت من مشروع كان يسمى أوك (بلوط) (من شجرالبلوطالذي كان موجودًا خارج نافذة غوسلينغ).
ملاحظة: يجب عدم الخلط بين «جافا» و «جافا سكريبت». فرغم تشابة اللغتين فيالسياقوالتراكيب، إلا أنهما لغتان مختلفتان ولهما أهداف مختلفة.
بدأت جافا كمشروع يدعي أوك (البلوط) Oak (جائت التسمية من شجرة بلوط كانت تقف خارج مقر شركة صن ميكروسيستمز) عن طريق الأب الروحي للجافاجيمس غوسلينغفي يونيو عام 1991 م لكي تستخدم في مشروع Set Top Box.
وكان هدف المشروع صنع لغة برمجة تعمل على ايّ جهاز صغير، خلال فترة صغيرة تغيرت أهداف المشروع وتغير المشروع نفسه إلى جافا وقد اصدر الإصدار الأول منها عام 1995 م. كان الإصدار الأول من جافا يهتم بتوفير إمكانية صنع برمجيات الويب (التي تعمل في متصفح الإنترنت) وخلال وقت وجيز أصبحت معظم متصفحات الإنترنت تدعم الجافا بسبب الإمكانيات العالية والثبات والأمان التي وفّرت لهم في تلك الفترة.
في عام 1998 م طُورت جافا بشكل جذري وأصبحت تسمى جافا2، ومن أهم التطويرات التي وضعت في هذا الإصدار هي إمكانات جافا في الواجهة الرسومية للمستخدم. من ثم كان هنالك العديد من التطويرات لهذه اللغة التي لا يزال تطويرها مستمرًا، وخلال السنين تطورت جافا وأصبحت تستعمل لصنع برامج مكتبية، برمجيّات الإنترنت، صفحات إنترنت، تطبيقات أجهزة الجوال وغيرها الكثير.
الإصدار القياسي من الجافابالإنجليزية(Java Standard Edition) هو الجزء الخاص ببرمجة برامج سطح المكتب (StandAlone applications).
إصدار الإنتربرايس بالإنجليزية (Java Enterprise Edition)هو يختلف عن الإصدار القياسي في أنه خاصببرمجة الخوادموالتطبيقات الموزعةوبرمجة الويب.
إصدار المايكرو بالإنجليزية (Java Micro Edition) وهو إصدار خاص بالبرمجة علىالهواتف المحمولةوالأجهزة المحدودة في المصادر عموما وتعتبر الخيار الأول لمبرمجي ألعاب الهواتف المحمولة.
تقنيّة أخرى اصدرتهاصن ميكروسيستمزلتطوير تطبيقات من نوع "RIA"أي "Rich Internet Applications".
المبرمجون والمطورون بلغة جافا يمكنهم الاختيار من بين عدة بيئات تطوير متكاملة لتسهيل عملهم.
بنية جافا تستمد الكثير من بنية لغة البرمجة سي: بنية الإسناد، التعابير، التحكم، الكتل الجملية (blocks). جافا بنيت خصيصًا لتكون لغة كائنية التوجه، حيث أن كامل الكود يكون مضمنا داخل كائنات (Objects), فيما عدا المتغيرات الأساسية (الأرقام، والقيم المنطقية والأحرف), حيث أنها لم توضع ككائنات لأسباب تتعلق بالآداء.
لتجنب العديد من المشاكل، جافا لم تعتمد العديد من الخصائص، مثل التوارث المتعدد (multiple inheritance) والتحميل الزائد للعوامل (operator overloading).
جافا تستخدم نفس نوعَيْ التعليقات الموجودين فيC++, التعليقات التي تنتهي بنهاية السطر، وتبدأ بالعلامة "//"، والتعليقات المتعددة الأسطر، والتي تبدأ بالعلامة "*/" وتنتهي بالعلامة "/*".
تعتمد برمجة جافا طبعاً على تعليقاتC++كما عرف سابقًا لأنها لغة برمجة ناتجة عن تطوير لغةC++.
برنامج أهلا بالعالمالتقليدي مكتوبا بلغة الجافا:
ملاحظة: يمكن الاستغناء عن "public"(يسمّىالمغيّر) في السطر الأوّل من المصدر (خلاف التعليق بالطّبع)؛ في هذه الحال لا تكون الفئة متاحة إلا داخل حزمتها (package). فـpublicيجعل منها متاحة بلا قيود.
تنبيه: لاتستخدم "private"كـمغيّرعلىفئات المستوى الأعلى(top-level class) لأنّه لا من شيء يمكنه الوصول إليها فيما بعد.. وهذابِلَا فَائِدَة.
مثال عن آلة حاسبة
يُضَمَن البرنامجHello.classفي صفحة HTML عن طريق العنصر<applet>كما يلي:
الانتقادات الموجهة إلى لغة جافا تتضمن طريقة التعامل مع الأنواع العامة (Generics)،السرعة،التعامل مع الأعداد الغير موجهة،التعامل معحسابات الفاصلة المتحركة،وتاريخ الثغرات الأمنية في بيئة تشغيل جافا الرئيسية HotSpot.