الاثنين، 5 ديسمبر 2011

تطوير التطبيقات بلغة الجافا(Application development with java language)


الجافا هي لغة برمجية  تشبه لغة الــ ++C طورت من قبل شركة سن مايكرو سيستم والان هي اللغة المهيمنة على اغلب تطبيقات الانترنت. طورت هذه اللغة بصورة تمكنها من تصميم تطبيقات الويب بكفاءة عالية جدا. وتتسم بالعديد من الصفات التي ميزتها عن اللغات الاخرى مثل لغة السي. تقنيا الكود المكتوب بلغة الجافا (.java files) في البداية يترجم الى ملف من نوع بايت بامتداد(.class) وليس الى ملف تنفيذي كما هو الحال في اللغات الاخرى. يتميز هـذا الملف الوسيطbytecode))  بانه لا يعتمد في تكوينه على المعالج الخاص بالجهازcpu  ولا على نظام التشغيل الحالي OS , ولكنه عبارة عن مجموعة اكواد قياسية بلغة الجافا يمكن تنفيذها على اي نظام. هذا الملف (bytecode)  بدورة ينفذ بواسطة الـــ(java interpreter). مفسر الجافا وبيئة التنفيذ تسمى(java virtual machine) وهي موجودة على اغلب انظمة التشغيل مثل(Windows OS,UNIX and Macintosh). واكثر ما ميز هذه الغه هو انها تأخذ تلقائيا ً البيئة التي تعمل ضمنها وتدعى هذه التقنية تقنية سوينغ أي انك عندما تقوم بتطوير تطبيق بلغة الجافا فان هذه التطبيقات عندما تعمل ضمن ويندوز فان عناصرها المختلفة تأخذ شكل ويندوز وعندما تعمل ضمن بيئة الماكنتوش فأنها تأخذ تلقائيا ً شكل واجهات الماكنتوش وهذه ناحيه هامه جدا ً للمستخدم وللمبرمج. ومن المزايا الاخرى للغة الجافا:-

  • قابلية النقل: اكثر الاسباب التي ادت بالمبرمجين الى ترك اللغات الاخرى واللجوء الى لغة الجافا هي المنصة المستقلة عن بيئة العمل. ما يعني امكانية كتابة التطبيقات  على كمبيوتر معين ونظام تشغيل معين وتنفيذه  على كل الحواسيب الاخرى المختلفة في بيئة العمل والهاردوير بوجود ألـ (JVM) الخاصة بها. وهي لغة  مدعومة ضمنيا في كل انظمة التشغيل ومتصفحات الانترنت الشائعة مما يجعلها حاضره افتراضيا في كل اتصالات الانترنت على الشبكة العنكبوتية. حتى الاجهزة الإلكترونية الاخرى مثل اجهزة الموبايل واجهزة الاي باد تدعم الجافا ضمنيا وبدون اي اضافات واغلب التطبيقات لهـذه الاجهزة مكتوبة بلغة الجافا.
  • كفاءة البرمجة وسهولة الاستخدام: لا توجد لغة برمجة سهلة ولكن لغة الجافه بصورة عامة اسهل من بقية اللغات الاخرى وخاصة لغات البرمجة الكائنية وهـذه اللغة استبدلت التعقيدات الموجودة في الوراثة المتعددة بلغة ألـــ ++C بتراكيب بسيطة تسمى الواجهات (interfaces) وصممت بطريقة تجعل ظهور الاخطاء البرمجية اثناء كتابة التطبيقات اقل ما يمكن وتحتوي على مجموعة كبيرة من دوال ألــــ (API) التي سهلت العمل على المبرمجين في كتابة برامج خالية من الاخطاء وبالتالي اختصار للوقت والكلفة في تطوير التطبيقات.
  • الخصائص الديناميكية للبرامج: لغة الجافا هي لغة كائنية التوجه(object oriented) والكود المكتوب فيها ينظم في وحدات صغيرة تسمى اصناف او فئات(classes) .البرنامج المكتوب بلغة الجافا ذاتيا يقوم باستدعاء وتحميل هـذه الكلاسات الى الذاكرة عند تنفيد البرنامج . تتسم لغة الجافا بالديناميكية اي انها تنتج برامج قابلة للتغيير وقت التنفيذ بخلاف لغات البرمجة الاخرى التي تنتج برامج ثابتة المحتوى ولا تتأثر اثناء عملية التنفيذ. فلغة الجافا تجمع كمية كبيرة من المعلومات المتعلقة بالبرنامج وقت تنفيذه run-time information والتي تستخدم للتحقق من الكائنات التي تولد في هـذا الوقت والتعامل معها وعلى هـذا فان الملف الوسطي الـ(bytecodes)  يكون قابل للتعديل وقت التنفيـذ.
  • الامنية العالية: لغة الجافا هي واحدة من اولى اللغات البرمجية التي اخـذت الامنية بعين الاعتبار كجزء من تصميمها. لغة الجافة ومترجمتها والمفسر التابع لها وبيئة التنفيـذ جميعها صممت في درجة عالية من الامنية وعلى عدة مستويات لتقليل الخطر الناتج من فقدان البيانات وتكامل البرنامج اثناء التنفيذ او التلف في النظام. والاخذ بالحسبان المشاكل الامنية  المحتملة في تنفيذ الكودات الغير موثوقة بطريقة امينة  وعلى اكثر من مرحلة خلال التنفيذ. واي خرق امني فيها يجلب عليها  الانظار بسبب الثقة العالية و الوعود الامنية التي قطعتها الشركة المصممة لزبائنها. فالمترجم يقوم بعمليات تدقيق لتحديد عدم التوافق والتناسق في انواع البيانات. بيئة التنفيذ للغة الجافا بدورها تقوم بتكرار بعض الخطوات التي قام بها المترجم اضافة الى اختبارات اخرى تقوم بها للتأكد ان البرنامج المنفذ قابل للتنفيذ كبرنامج مكتوب بلغة الجافا.
وتتميز الجافا بالعديد من الخصائص الاخرى  مثل خاصية الـ  (multi  threading)وهـذه الخاصية غير موجودة في لغة السي  ومعالجة الاستثناءات واستخدام طريقة الـ (garbage collection) ذاتيةالاستدعاء. ولكن على الرغم من الكفاءة والامكانيات الكبيرة التي توفرها لغة الجافا الا انها لا تخلو من العيوب والمشاكل كأي لغة برمجية اخرى فلغة الجافا لغة تستخدم المفسر وبالتالي فان الطريقة التي تقوم فيها بتوليد الملفات الوسطية في الحقيقة هي طريقة غير كفؤة. فحالما يقوم المترجم بتوليد الـ (bytecodes) فانه يقوم باستدعاء (JVM)  الخاصة بالكمبيوتر المنفذ عليه البرنامج وهـذا يؤدي الى  بطئ في تنفيد البرامج المكتوبة بلغة الجافا على عكس المترجمات الاخرى مثل السي  فالكود الناتج عنها هو سلسلة من الايعازات القابلة للتنفيذ مباشرة على المعالج وبالتالي تنفد بشكل اسرع ولكن هـذه المشكلة يمكن التغلب عليها باستخدام معالجات عالية السرعة.

ليست هناك تعليقات:

إرسال تعليق