لغات البرمجة (Java)
المعلوماتية >>>> برمجيات
لغة البرمجة (Java) لغة عالية المستوى، ومتعدِّدة الأغراض، وغرضيَّة التوجُّه (object-oriented). كان هدف ابتكارها جعلَ الشيفرة البرمجية قابلةً للتنفيذ على منصَّات وأنظمة تشغيل مختلفة، وهذا ما حدث بالفعل؛ فها نحن نجدها اليوم في الحواسيب المحمولة، ومراكز البيانات، والحواسيب الفائقة، والهواتف المحمولة أيضًا. المصادر:
ميِّزاتها:
-مستقلَّة عن المنصة (Platform Independent):
تتميَّز برامج (Java) بأنَّها محمولة (portable)؛ أي يمكن نقلها وتنفيذها على أجهزة مختلفة عن الجهاز الذي بُرمجت باستخدامه دون أيِّ تغيير في النتائج؛ ذلك أنَّها لا تتَّصل بنظام التشغيل مباشرة، وإنَّما بواسطة نظام وسيط خاص بها؛ هو (Java Virtual Machine - JVM).
-لغة برمجة غرضيَّة التوجُّه (Object-oriented programming language):
كلُّ عناصر لغة البرمجة (Java) أغراضٌ (objects)؛ باستثناء أنماط البيانات الأولية.
-لغة برمجة مُترجِمة ومفسِّرة في الوقت نفسه (Interpreted & Compiled language):
لتنفيذ برنامج مكتوب بلغة (Java) "ذو اللاحقة .java"؛ يُترجَم أولًا إلى ملف آخر ذي لاحقة (.class) باستخدام مُترجم (javac)، ويتضمَّن الملف ذو اللاحقة (.class) شيفرةَ بايت (bytecode)؛ "الصيغة التي يفهمها النظام الوسيط (JVM)"، والذي يمكن تنفيذه على أيِّ نظام تشغيل نُصبت عليه لغة البرمجة (Java) بعد أن يُفسَّر، لأنَّه غير قابل للتنفيذ بشكله الحالي.
ولكلِّ نظام تشغيل مفسِّرُ جافا (Java) خاصٌّ به، مهمَّته التعامل مع خصوصية النظام، فعندما يطلب ملف (.class) عمليات النظام الأساسية بقصد تنفيذ البرنامج؛ يعمد مفسِّر لغة جافا (Java) إلى ربطه مع التعليمات الخاصة بنظام التشغيل الذي يُنفَّذ البرنامج عليه؛ وبذلك لا تختلف نتائج تنفيذ البرنامج باختلاف نظام التشغيل.
-إدارة ديناميكية للذاكرة (Dynamic memory management):
تدير (Java) كلًّا من تخصيص الذاكرة وإلغاء تخصيصها عند إنشاء أغراض (objects) جديدة وحذفها، فلا يملك البرنامج في حدِّ ذاته وصولًا مباشرًا إلى الذاكرة؛ وإنَّما يعمد جامع المخلَّفات (garbage collecter) إلى حذف الأغراض -التي انتهت فترةُ عملها- تلقائيًا.
استخدامات لغة البرمجة (Java):
أكثر أنواع البرامج المكتوبة بلغة (Java) شيوعًا هي التطبيقات، والتطبيقات الصغيرة (Applets).
التطبيق الصغير (Applet) هو أيُّ تطبيق يؤدِّي مهمَّةً واحدةً محدَّدةً ضمن نطاق محرِّك أداة مخصَّص أو برنامج أكبر، وغالبًا ما يكون بمثابة مكوِّن إضافي (plug-in).
إضافةً إلى أنَّه يمكن كتابة العديد من البرامج باستخدام واجهات برمجة التطبيقات (Application Programming Interfaces - API) الوفيرة التي تقدِّمها هذه اللغة.
وتدعم (Java) كتابةَ نوع آخر من البرامج أيضًا؛ هو (Servlet)؛ عبارة عن تطبيق صغير مثل (applet)، لكنَّه مخصَّص للعمل من جهة المُخدِّم، وتُعَدُّ تطبيقات (Servlet) المكتوبة بلغة (Java) خيارًا شائعًا لإنشاء تطبيقات ويب تفاعلية بدلًا من استخدام نصوص واجهات البوابة المشتركة (Common Gatway Interface - CGI) التي تعمل على نقل البيانات بين المُخدِّم والمتصفِّح.
تطبيقات واجهة المستخدم الرسومية لسطح المكتب (Desktop GUI Application):
يمكن تطوير تطبيقات سطح المكتب بسهولة باستخدام (Java)؛ عن طريق استخدام المكتبات الآتية:
(AWT)، و(Swings)، و(JavaFX).
التطبيقات العلمية (Scientific Applications):
نظرًا لأنَّ لغة البرمجة (Java) آمنةٌ وفعالة؛ فقد استُخدمت لبرمجة عديدٍ من التطبيقات العلمية -منها المتعلِّقة بالأبحاث الطبية- وذلك كون لغة البرمجة (Java) مستقلَّةً عن المنصَّة؛ ومن ثمَّ فهي تعطي النتائج الرياضية نفسها أينما استُخدمت.
تطبيقات الويب (Web Application):
تُعَدُّ لغة البرمجة (Java) الخيار الأمثل عندما يتعلَّق تطبيق الويب بمتطلَّبات المستخدمين وفق ما توفِّره من أُطر عمل (frameworks) مثل: (JSP)، و(Spring)، و(hibernate)، و(Struts).
تطبيقات الهاتف المحمول (Mobile Application):
تقوم برمجة تطبيقات الهواتف المحمولة -التي تَستخدِم نظام التشغيل (Android)- على لغة البرمجة (Java) ولغات أخرى أيضًا؛ مثل (Kotlin).
مُخدِّمات الويب ومُخدِّمات التطبيقات (Web Servers & Application Server):
تُقدِّم (Java) المكتبات الآتية لمُخدِّمات الويب: (Apache Tomcat)، و(Jo).
والمكتبات الآتية لمُخدِّمات التطبيقات: (WebLogic)، و(WebSphere)، و(Jboss EAP).