جافا (لغة برمجة)
جافا | |
---|---|
ملف:شعار جافا.jpg | |
التصنيف: | كائنية التوجه |
ظهرت في: | 1995 |
صممها: | جيمس جوسلينج |
المطور: | صن ميكروسيستمز استحوذت عليها لاحقا أوراكل |
آخر إصدار: | Java Standard Edition 6 |
رقمه: | 26_1.6.0 (2011-6-7 ) |
نظام التشغيل: | عابرة منصات |
الرخصة: | رخصة جنو العمومية / Java Community Process |
موقع ويب: | java.sun.com |
امتدادات الملفات: | كود مصدري: java، ملف تنفيذي: class |
ابتكرها جيمس جوزلينج في عام 1992 أثناء عمله في مختبرات شركة صن ميكروسيستمز وذلك لاستخدامها بمثابة العقل المفكر المستخدم لتشغيل الأجهزة التطبيقية الذكية مثل التيلفزيون التفاعلي وقد كانت لغة الجافا تطويرا للغة السي بلاس بلاس وعند ولادتها أطلق عليها مبتكرها أواك بمعنى شجرة السنديان وهي الشجرة التي كان يراها من نافذة مكتبه وهو يعمل في مختبرات صن ميكروسيستمز ثم تغير الاسم إلى جافا وهذا الاسم على غير العادة في تسمية لغات البرمجة ليس الحروف الأولى من كلمات جملة معينة أو تعبيرا بمعنى معين ولكنه مجرد اسم وضعه مطوروا هذه اللغة لينافس الأسماء الأخرى وهى احدى لغات البرمجة أي مجموعة من الأوامر والتعليمات التي تعطى للحاسب في صورة برنامج مكتوب بلغة برمجة معينة بواسطة معالج نصوص ويتكون مصدر البرنامج من عدة سطور وكل سطر يعتبر جملة ويتعامل الحاسب مع كل جملة بترتيب معين لإنجاز الأمر الذي صمم البرنامج لتحقيقه
أمثلة للغات البرمجة
توجد لغات برمجة عديدة إلا أنه يوجد فيها نوع من التخصص حيث يعتمد اختيار اللغة على المهام التي نريد من الحاسب إنجازها حيث أن لكل لغة ما يناسبها وهناك مهام يصعب تنفيذها بلغة معينة ولكنها تكون ميسورة بلغة أخرى ومن اللغات التي ظهرت في فترة الستينات لغة البيسك وهي لغات تدرس للمبتدئين وكلمة بيسك لفظة أوائلية تشكل الحروف الأولى من Biginners All Symbolic Instruction Code
وظهرت بعدها لغة فيجوال بيسك التي وضعتها ميكروسوفت وهي غنية عن التعريف ولها مميزات عديدة حيث تجمع بين سهولة لغة البيسك وتصميم برامج ذات واجهة رسومية وأيضا فيجوال بيسك سكريبت التي تقدم بريمجات تعمل ضمن صفحات الإنترنت وأيضا لغة السي بلاس بلاس ذائعة الصيت وهي لغة برمجة تم ابتكارها كتطوير للغة السي التي هي الأخرى تحسين للغة البي وهناك العشرات من لغات البرمجة الأخرى.
مميزات
تتميز لغة الجافا بمميزات خاصة مما يجعلها أكثر لغات البرمجة إثارة حيث تمكننا من الآتي إضافة الحركة والصوت إلى صفحات الويب كتابة الألعاب والبرامج المساعدة إنشاء برامج ذات واجهة مستخدم رسومية تصميم برمجيات تستفيد من كل مميزات الأنترنت توفر لغة الجافا بيئة تفاعلية عبر الشبكة العنكبوتية وبالتالي تستعمل لكتابة برامج تعليمية للإنترنت عبر برمجيات المحاكاة الحاسوبية للتجارب العلمية وبرمجيات الفصول الافتراضية للتعليم الإلكتروني والتعليم عن بعد. لا تنحصر فاعلية الجافا في الشبكة العنكبوتية فقط بل تمكننا من إنشاء برامج للاستعمال الشخصي والمهني، هاته البرامج تنجز عبر جملة من البرامج التي تسهل كتابة الأوامر ك : ناتبنس وايكليبس
التعلم
على الرغم من صعوبة عملية البرمجة التي تتطلب عادة أربع سنوات دراسية للحصول على مؤهل جامعي في مجال تقنية المعلومات وجهاز حاسب شخصي وقدرات ذهنية مرتفعة وصبر طويل إلا أن تعلم البرمجة بلغة الجافا يعد أسهل من تعلم البرمجة بلغات أخرى والسبب هو انتشار الإنترنت حيث تتوفر أدوات البرمجة بهذه اللغة على موقع شركة صن ميكروسيستمز كما يمكن تحميل برامج جافا من مواقع إنترنت مختلفة
وهي لغة سهلة التعلم. الإ أنها تحتاج كغيرها من اللغات إلى تطبيق وممارسة.
ما متطلبات البرمجة ؟
Interpreter مفسر تتطلب بعض لغات البرمجة مفسرا يقوم بتفسير كل سطر من البرنامج ويبلغ الحاسب بالمهام التي يتعين عليه القيام بها ومن هذه اللغات لغة البيسك وتتميز اللغات التي تحتاج مفسرا بسهولة اختبارها ولكن يعيبها أنها تكون بطيئة عند تشغيلها Compiler مترجم يتطلب البعض الآخر من لغات البرمجة مترجما يقوم بترجمة البرنامج وتحويله إلى شكل يفهمه الحاسب وتتميز البرامج المترجمة بسرعة تشغيلها ولكن يعيبها الحاجة إلى وقت أطول لاختبارها حيث يكتب البرنامج ثم يترجم ثم يجرب وفي حالة وجود أخطاء يجب تصحيحها أولا ثم يعاد ترجمته ومن ثم تجريبه للتحقق من زوال الخطأ ولغة الجافا لغة فريدة تتطلب مترجما ومفسرا
ما الذي أحتاجه لكي أكتب برنامجا بلغة الجافا ؟
Java Developers Kit (JDK) عدة تطوير الجافا تعتبر هذه الأداة الأولى التي وضعها مطوروا الجافا بشركة صن ميكروسيستمز ورغم وجود أدوات برمجة أخرى من عدة شركات منافسة إلا أنه من الأفضل أن نأخذ الأمر ممن طوره وهذه الأداة قد صدرت في عدة إصدارات ويمكن تحميل هذه الأدوات من موقع صن ميكروسيستمز
ثانيا محرر نصوص لكتابة البرامج
ولكن لماذا نالت الجافا هذه الشهرة والاهتمام العالمي ؟
لكي نجيب عن هذا التساؤل نتعرف أولا على الطريقة التي طورت بها لغة الجافا ففي أوائل التسعينيات من القرن العشرين 1990 اخترعت لغة الجافا شركة صن ميكروسيستمز ولهذا الاختراع قصة عجيبة حيث أن الشركة كانت قبل ذلك قد كلفت المهندس جيمس جوزلينج بوضع برامج لتشغيل الأجهزة التطبيقية الذكية مثل التيلفزيون التفاعلي باستخدام لغة سي بلاس بلاس وحينها وجد جيمس جوزلينج صعوبة في في التعامل مع هذه اللغة فقام هو وفريق العمل المساعد له بتطوير هذه اللغة فولدت لغة جديدة تتوافق مع احتياجاته فكانت لغة الجافا وقد خططت شركة صن في تلك الأيام لاستغلال هذه اللغة الوليدة في التيلفزيون التفاعلي لكي تربح المليارات وحدث نوع من البطء في مشروع التلفزيون التفاعلي ــ ربما عن قصد من الشركات الأخرى المنافسة ــ ونتيجة لذلك فكرت شركة صن في توقيف مشروع تطوير هذه اللغة الوليدة وتسريح العاملين في هذا المشروع أو نقلهم إلى قسم آخر ولكن حدث ما لم يكن في الحسبان حيث أنه في هذه الفترة كانت الإنترنت قد بدأت في الانتشار بسرعة مذهلة مع نزول نظام الويندوز للأسواق وحيث أن لغة الجافا الوليدة التي اخترعت أصلا لبرمجة الأجهزة التطبيقية فيها من السمات ما يجعلها أكثر توافقا مع الشبكة العنكبوتية الدولية ـ الإنترنت ـ فقد كان لها السبق وأضافت الكثير إلى الإنترنت الذي كان قبلها مقصورا على تبادل النصوص ولكن المطورين بشركة صن ابتكروا طريقة تجعل برامج الجافا تعمل بسهولة في صفحات الإنترنت وغيروا الاسم الذي كان قد أطلقه عليه مبتكرها من أواك ـ شجرة السنديان ـ إلى الجافا ومن هنا أصبحت الجافا مرتبطة في شهرتها بالإنترنت حيث أن برنامج جافا صغير يوضع في صفحة من صفحات موقع على الشبكة الدولية يراه الملايين في جميع أنحاء العالم في نفس الوقت وقد كان هذا لا يتوفر الا مع الجافا مما أعطاها شهرة واسعة؛ ولحسن حظ شركة صن أن لغة الجافا أكدت نفسها في المجال الذي طورت له أصلا فقد بدأ الآن التيلفزيون التفاعلي في الانتشار وما يسمى سينما المنزل والمشاهدة حسب الطلب وليس هذا فقط بل إنتشر ما هو أكثر فائدة لشركة صن وهو الهاتف المحمول وللجافا أكبر دور في برمجة البرامج التي يعمل بها في أجياله السابقة واللاحقة ولا نستغرب أن يحدث نوع من الغيرة بين شركة ميكروسوفت وشركة صن ميكروسيستمز مما دفع ميكروسوفت إلى أن تحذف ماكينة الجافاالافتراضية من الاصدارة الأولى للويندوز اكس بي وهذه الماكينة الافتراضية مسئولة عن عرض برامج الجافا على الإنترنت ولكن ميكروسوفت تراجعت أمام طلب ملايين المستخدمين حول العالم فوضعتها مرة ثانية في الإصدارات اللاحقة وقد كانت قضية مشهورة تناولتها الصحف والمجلات خلال العام الماضي وقد ساهم في شهرة الجافا أيضا برامجها العلمية التفاعلية التي تصلح لمعظم المناهج التعليمية في جميع مراحل التعليم وبالتالي فان لها دورا كبيرا في التعليم الإلكتروني والتعليم عن بعد والفصول الافتراضية جافا هي لغة برمجة من شركة صن ميكروسيستمز. الهدف الأساسي لنشأة جافا هو إيجاد لغة مشابهة للغة سي+ + من حيث التركيب النحوي، وكذلك برمجة كائنية التوجه، ومصممة للعمل علي اّلة افتراضية بحيث لا تحتاج إلي الترجمة من جديد عند استخدام برامجها على منصة تشغيل أو نظام تشغيل جديد، حيث قامت شركة صن بإنشاء الاّت افتراضية لتشغيل جافا على معظم منصات ونظم التشغيل الموجودة حاليا، فأصبح من الممكن ترجمة البرنامج مرة واحدة ثم تشغيله على نظم مختلفة أو ما أسمته صن ب إكتب مرة واحدة، شغل في أى مكان (الإنجليزية: Write Once, run anywhere).
بين نوفمبر 2006 ومايو 2007 تم فتح المصدر لهذه اللغة وأصبحت Open Source Code تحت ترخيص جنو.
سميت لغة الجافا من قهوة الجافا (الجاوة) التي تزرع في جزيرة جاوا، قد تطورت من مشروع كان يسمى أوك (بلوط) (من شجر البلوط الذي كان موجودً خارج نافذة جوسلينج).
ملاحظة: يجب عدم الخلط بين الجافا والجافا سكريبت فرغم تشابة اللغتين في السياق والتراكيب إلا أنهما لغتان مختلفتان ولهما أهداف مختلفة.
لمحة تاريخية
بدأت جافا كمشروع يدعي أوك (البلوط) Oak (جائت التسمية من شجرة بلوط كانت تقف خارج مقر شركة صن ميكروسيستمز) عن طريق الأب الروحي للجافا جيمس جوسلينج James Gosling في يونيو عام 1991 لكي تستخدم في مشروع Set Top Box. كان هدف المشروع صنع لغة برمجة تعمل على اي جهاز صغير، خلال فترة صغيرة تغيرت أهداف المشروع وتغير المشروع نفسه إلى جافا وقد اصدر الإصدار الأول منها عام 1995. كان الإصدار الأول من جافا يهتم بتوفير إمكانية صنع بريمجات الويب (التي تعمل في متصفح الإنترنت) وخلال وقت وجيز أصبحت معظم متصفحات الإنترنت تدعم الجافا بسبب إمكانيات العالية والثبات والأمان التي وفرتهم الجافا في تلك الفترة. في عام 1998 تم تطوير الجافا بشكل جذري وأصبحت تسمى جافا2 ومن أهم التطويرات التي وضعت في هذه الإصدارة هي إمكانيات الجافا في الواجهة الرسومية للمستخدم.من ثم كان هنالك العديد من التطويرات الجافا التي لا يزال تطويرها مستمرا وخلال السنين تطورت الجافا وأصبحت تستعمل لصنع برامج مكتبية، بريمجات الإنترنت، صفحات إنترنت، بريمجات أجهزة الجوال وغيرها الكثير.
مبادئها
الأهداف الأساسية
- كائنية التوجه.
- الاستقلال عن نظام التشغيل.
- توفر إمكانيات ومكتبات للتشبيك.
- توفر إمكانية تشغيل البرامج المكتوبة بها من حواسيب بعيدة وبشكل آمن.
- توفير إمكانية إضافة برامج إلى صفحات الويب (أبلت).
منصة جافا
- طالع أيضاً: جافا (منصة برمجية)
- طالع أيضاً: بيئة جافا التشغيلية
الإصدارات المتوفرة من الجافا
Java SE
الإصدار القياسي من الجافا بالإنجليزية (Java Standard Edition) هو الجزء الخاص ببرمجة برامج سطح المكتب (StandAlone applications)
Java EE
اصدار الإنتربرايس بالإنجليزية (Java Enterprise Edition)هو يختلف عن الإصدار القياسي في أنه خاص ببرمجة الخوادم والتطبيقات الموزعة وبرمجة الويب
Java ME
اصدار المايكرو بالإنجليزية (Java Micro Edition) وهو اصدار خاص بالرمجة على الهواتف المحمولة والأجهزة المحدودة في المصادر عموما وتعتبر الخيار الأول لمبرمجي ألعاب الهواتف المحمولة
بيئات تطوير متكاملة (IDE)
المبرمجون والمطورون بلغة جافا يمكنهم الاختيار من بين عدة بيئات تطوير متكاملة لتسهيل عملهم.
بيئات حرة
- نت بينز، من شركة صن مايكروسيستمز (تحميل البرنامج).
- إكليبس، من مجتمع البرمجيات الحرة (نحميل البرنامج).
- DrJava، من جامعة رايس.
بيئات مملوكة
- جيه بيلدر، من شركة كود جير.
- ويب سفير، من شركة آي بي إم.
- إنتيليج إيديا، من شركة جت برينز.
- جيه ديفيلوبر، من شركة أوراكل.
- جيه كرييتر، من شركة زينوكس.
منمتهتتتى
التركيبة اللغوية للجافا (Syntax)
بنية جافا تستمد الكثير من بنية لغة البرمجة سي : بنية الإسناد، التعابير، التحكم، الكتل الجملية (blocks).جافا بنيت خصيصا لتكون لغة كائنية التوجه, حيث أن كامل الكود يكون مضمنا داخل كائنات(Objects), فيما عدا المتغيرات الأساسية(الأرقام, والقيم المنطقية والأحرف), حيث أنها لم توضع ككائنات لأسباب تتعلق بالآداء.
لتجنب العديد من المشاكل, جافا لم تعتمد العديد من الخصائص, مثل التوارث المتعدد(multiple inheritance) والتحميل الزائد للعوامل(operator overloading).
جافا تستخدم نفس نوعي التعليقات الموجودين في C++, التعليقات التي تنتهي بنهاية السطر, وتبدأ بالعلامة "//"، والتعليقات المتعددة الأسطر, والتي تبدأ بالعلامة "*/" وتنتهي بالعلامة "/*"
طبعا برمجة الجافا تعتمد على تعليقات c++ كما عرفنا سابقا لأنها لغة برمجة ناتجة عن تطوير لغة c++.
أمثلة
برنامج أهلا بالعالم التقليدي مكتوبا بلغة الجافا: <source lang="java"> /*
* Outputs "Hello, World!" and then exits */
public class HelloWorld {
public static void main(String[] args) { System.out.println("Hello, World!"); }
} </source>
صفوف خاصة
Applet
<source lang="java"> // Hello.java import javax.swing.JApplet; import java.awt.Graphics;
public class Hello extends JApplet {
public void paintComponent(Graphics g) { g.drawString("Hello, world!", 65, 95); }
}
</source>
يتم تضمين البرنامج Hello.class
في صفحة HTML عن طريق العنصر <applet>
كما يلي:
<source lang="html4strict">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
تطبيق Swing
<source lang="java"> // Hello.java (Java SE 5) import java.awt.BorderLayout; import javax.swing.*;
public class Hello extends JFrame {
public Hello() { super("hello"); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setLayout(new BorderLayout()); add(new JLabel("Hello, world!")); pack(); }
public static void main(String[] args) { new Hello().setVisible(true); }
} </source>
كتب لتعليم الجافا
- Java programing from problem analysis to program design
By: D.S.Malik
- PH,.Core.Java.Volume-I.Fundamentals
وصلات خارجية
- موقع جافا
- موقع جافا للمطورين
- Introduction to Programming in Java
- تدريب أونلاين (بالإنجليزية)
- Java API specifications
- تعلم الجافا (بالإنجليزية)
- تعلم الجافا فيديو (باللغة العربية)
- Full Java Tutorial
- تحميل الجافا
|
|
مشاريع شقيقة | اقرأ نصا ذا علاقة بجافا (لغة برمجة)، في ويكي الكتب. |
ace:Java af:Java (programmeertaal) am:ጃቫ (java) az:Java bat-smg:Java be:Java be-x-old:Java bg:Java bn:জাভা (প্রোগ্রামিং ভাষা) bs:Java programski jezik bug:Java ca:Java (llenguatge de programació) cdo:Java co:Java cs:Java (programovací jazyk) cv:Java (компьютер чĕлхи) cy:Java (iaith rhaglennu) da:Java (programmeringssprog) de:Java (Programmiersprache) el:Java Java (programming language)]] eo:Java (programlingvo) es:Java (lenguaje de programación) et:Java eu:Java (programazio lengoaia) fa:جاوا (زبان برنامهنویسی) fi:Java fr:Java (langage) ga:Java gl:Linguaxe Java he:Java hi:जावा प्रोग्रामिंग भाषा hr:Java (programski jezik) ht:Java hu:Java (programozási nyelv) hy:Ջավա ia:Java (linguage de programmation) id:Java is:Java (forritunarmál) it:Java (linguaggio) ja:Java ka:ჯავა (პროგრამირების ენა) kaa:Java (programmalastırıw tili) ko:자바 (프로그래밍 언어) la:Java (lingua programmandi) lij:Java (lenguazzo) lt:Java (kalba) lv:Java (valoda) mk:Јава (програмски јазик) ml:ജാവ (പ്രോഗ്രാമിങ് ഭാഷ) mn:Java (Программчлалын хэл) mr:जावा (प्रोग्रॅमिंग भाषा) ms:Java my:Java (programming language) nl:Java (programmeertaal) nn:Programmeringsspråket Java no:Java (programmeringsspråk) pa:ਜਾਵਾ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ pl:Java pt:Java (linguagem de programação) ro:Java (limbaj de programare) ru:Java sah:Java sh:Java (programski jezik) si:ජාවා (පරිගණක ක්රමලේඛන බස) simple:Java (programming language) sk:Java sl:Programski jezik java sq:Java (gjuhë programimi) sr:Јава (програмски језик) sv:Java (programspråk) ta:ஜாவா நிரலாக்க மொழி te:జావా tg:Java th:ภาษาจาวา tl:Java (wikang pamprograma) tr:Java (programlama dili) uk:Java uz:Java vec:Java vi:Java (ngôn ngữ lập trình) wuu:程序编制言话Java zh:Java zh-yue:Java程式語言