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

تابع نبذة عن لغة الجافا

2 مشترك

اذهب الى الأسفل

تابع  نبذة عن لغة الجافا Empty تابع نبذة عن لغة الجافا

مُساهمة من طرف مشهور الذنيبات 2007-06-08, 7:56 pm

.

بسم الله الرحمن الرحيم
لغة الجافا قامت بتصميمها شركة صن مايكروسيستيمز Sun Microsystems
ظهرت الجافا خلال السنوات العشر الماضية وانتشرت بشكل مذهل ، لكن ما هي الجافا ؟
إذا بحثنا في القاموس عن معنى كلمة Java سنحصل على إحدى المعاني التالية : قهوة أو جاوة جزيرة اندونيسية ، أو نوع من الطيور . لكن مستخدمي الشبكة الدولية إنترنت يعرفونها على انها لغة برمجة تستخدم تطبيقاتها على نطاق واسهع في الشبكة -الدولية.

ظهور لغة الجافا
جافا عبارة عن لغة برمجة عالية المستوى تم تطويرها خصيصا لصفحات مواقع الانترنت وتتلائم مع التطبيقات الخاصة بالشبكات . وكان قد تم ابتداعها بواسطة شركة صن مايكروسيستيمز عام 1991م ضمن مشروع باسم اواك Oak لعمل أنظمة للأدوات العامة مثل الفيديو والتلفزيون والثلاجة والغسالة والتلفون ولذا كان من ضمن أهدافها أن تكون سهلة , سريعة وتعمل على اكثر من بيئة ولذا بنيت اساسا على لة C++ للبرمجة طقاعدة لها ولكنها تتميز عنها بأنها اقل صعوبة .
ظهرت جافا أول مرة في عام 95 على متصفح تجريبي – هوت جافا – لعرض قدرات اللغة وكانت تتكون من 200 واجهة مختلفة لتطوير التطبيقات وأضيفت إلى عدد من الملاحق إلا أن إنطلاقتها كانت عندما قامت شركة" نتسكيب" بتبنيها في المتصفح "نتسكيب نافيجيتور 2.0 " عام 1996م ، وأصبحت تطبيقاتها شائعة على شبكة الويب . إلا أننا نرى أن جميع المتصفحات المتوفرة حاليا تدعم نكهات تلك اللغة باستخدام ما يسمى "آلة جافا افتراضية Java Virtual Machine " ، وهي مفسر Interpreter يفهم شيفرة برمجات جافا ويحولها آنيا إلى شيفرة تنفيذية في نظام التشغيل الذي يعمل ضمنه المتصفح .
واليوم وصل عدد واجهات تطوير التطبيقات في جافا إلى 1600 ومازالت إلى الآن في طور التطوير : وأكثر ما لفت انتباه المبرمجين أن هذه اللغة تأخذ تلقائيا البيئة التي تعمل ضمنها وتدعى هذه التقنية تقنية " سوينغ " أي انك عندما تقوم بتطوير جافا فإن هذه التطبيقات عندما تعمل ضمن ويندوز فإن عناصرها المختلفة تأخذ شكل ويندوز وعندما تعمل ضمن بيئة الماكنتوش فإنها تأخذ تلقائيا شكل واجهات الماكنتوش وهذه ناحية هامة جدا للمستخدم وللمبرمج .

وعد جافا
فكرة جافا كلغة تطوير و ما تعد به بسيط جدا : أكتب برنامجك مرة واحدة و قم بتشغيله على أي جهاز و ضمن أي نظام دون أن تقوم بتعديل سطر واحد فيه . فقبل ظهور جافا كان يجب كتابة كل برنامج لبيئة واحدة فقط ، و حتى يعمل هذا البرنامج ضمن بيئات أخرى كان يجب إعادة تولفه كي يعمل ضمن بيئات أخرى . و قد تمخض عن ذلك عدة نتائج كان أهمها : ظهور و سقوط عدد من نظم و بيئات التشغيل اعتمادا على عدد من التطبيقات المطورة لها : و تعدد نظم التشغيل ضمن المؤسسة الواحدة هو كابوس إداري بالنسبة لمد راء المعلوماتية .
قد نجم عن هذا التعدد في نظم التشغيل و البيئات المختلفة ضمن المؤسسة الواحدة مشكلة أكبر . فالمؤسسات اليوم تعتمد في إدارة أعمالها و حل الكثير من مشاكلها الإدارية باعتماد على تقنية المعلومات . و لنقل مثلا أنك في مؤسسة تستخدم نظم تشغيل مختلفة مثل يونكس ( و هو ما يستعمله المهندسون مثلا ) وويندوز ( و هو ما يستخدمه الإداريون ) ، و لنقل أن لديك ماكنتوش أيضا ( للمصممين و خلافه ) .
في مثل هذه البيئة لنقل أن الإدارة قررت استخدام نظام تقارير داخلي السؤال الأول الآن هو لأي نظام سنقوم بتطوير التطبيق ؟ في هذه الهالة ، إذا أردت تطوير التطبيق لبيئة ويندوز فقط فعليك وتغيير البنية التحتية للمؤسسة كاملة و إعادة تدريب الجميع على استخدام ويندوزبدلا من يونكس و ماكنتوش .
و قد يقول مبرمج شاطر " آه ، لنطور هذا التطبيق بلغة سي ، ثم نقوم بتوليفه بحيث يعمل على جميع البيئات التي نستخدمها . " فكرة جيدة و هناك الكثير ممن يفعلون ذلك . و لكن ها تدرك أن ذلك يعني تطوير برنامجك ثلاث مرات ؟ هل تتخيل حجم المورد و الجهد الذي يحتاجه عمل ذلك ؟ و من خلال لغة جافا قامت صن بحل هذه المشكلة كما قلنا من خلال السماح للمطورين بتطوير التطبيق مرة و تشغيله ضمن أي بيئة تشغيل طالما كانت هذه البيئة تحتوي على ما يدعى بآلة جافا الافتراضية ولكن هذا ليس كل شيء ، فوجود لغة تطوير تتمتع بهذه المرونة يعني أمرين :-
1-إعادة الاستخدام . و ما يعنيه ذلك هو أنه يمكنك استخدام البرمجيات و العناصر التي تتكون منها ضمن عدة بيئات مما يعني توفير الكثير من الوقت اللازم لكتابة برمجيات جديدة ، و بتالي حل مشاكل المؤسسات بسرعة أكبر .
2- إعادة استخدام المبرمجين . من النادر أن مبرمجا يتقن أكثر من لغة برمجة واحدة ، وهذا يعني الحاجة إلى وجود عدة مبرمجين في المؤسسة يتقن كل منهم مجموعة مختلفة من لغات البرمجة .و إذا أرد أن تتصور المشكلة فتخيل أنك تعمل في شركة يتكلم فيها كل واحد لغة مختلفة ولا يتقن إلا القليل من لغة الآخر . أشك أن الكثير يحدث في مثل هذه الشركة .
و عندما تؤسس لغة مثل جافا فإن توحيد اللغة سيؤدي إلى زيادة كبرى في فعالية المبرمجين و بتالي سرعة في حل المشكلات التي تواجهها . و إذا أضفنا إلى ذلك فوائد مثل إمكانية إعادة استخدام عناصر جافا في برمجيات جديدة فيمكننا أن نتصور الفوائد .

تطور جافا ، لمحة تاريخية
عندما ظهرت جافا في البداية أقتصر استخدامها على كتابة البرمجيات اللازمة لأتمتة الإنترنت . و لم تدعم الإصدار الأول منها أمور مثل القدرة على تعامل مع قواعد البيانات كجزء متكامل من عدة تطوير التطبيقات الخاصة بذلك الإصدار . و احتوت عدة جافا 1,0 على ثماني حزم ( الحزمة من جافا هي مجموعة من العمليات المرتبطة ببعضها ؛ مثلا حزمة التشبيك الموجودة في حزمة (java.net) تحتوي على جميع العمليات اللازمة للربط الشبكات و التعامل مع برتوكولات الإنترنت و الشبكة TCP/IP ) و باختصار فقد احتوى جافا 1,0 على الأدوات اللازمة لكتابة البرمجيات ، و إنشاء واجهات الاستخدام ؛ و التلاعب بالصور ؛ و فعاليات حفظ و استرداد البيانات من و إلى القرص الصلب .
و رغم هذه الإصدار فقد لعب دورا مهما في أتمتة الإنترنت و إدخال خواص التفاعلية على مواقع الإنترنت . و في ذلك الحين تمكن المبرمجون و مصممو الويب باستخدام برمجيات جافا ، و لغة تعليم النص المترابط (HTML) و لغة جافا سكربت من إنشاء مجموعة كبيرة من التطبيقات للإنترنت و شبكات الإنترنت ، و في ذلك الوقت أدرك الجميع أنه يمكن لجافا أن تحل محل لغات مثل (C++) و (Visual Basic) كلغة تطوير البرمجيات الموزعة .
وفي أواخر عام 1996 ظهر 1.1 من عدة تطوير التطبيقات لجافا . و رغم أن صن اختارت أن تجعل هذا الإصدار جزئيا فقد كانت هامة بشكل حيوي لتطوير اللغة حيث أرتفع فيها عدد الحزم من 8 إلى 23 حزمة . و لم تكن كل الحزم التي تمت إضافتها جديدة ، حيث بعضها قد توفر لاحقا كملاحق إضافية لها طورها شركاء صن ، و جعلتها صن جزءا من نواة النظام 1.1 و من هذه الحزم الجديدة :-
1- هيكلية حبيبات جافا (JavaBeans) و التي هي عبارة عن عناصر برمجة مستقلة عن بيئة التشغيل و قد شكلت هذه الحزمة دعما قويا لجافا و التي أصبحت بفضلها لغة حقيقة للتطوير بالعناصر ، بحيث يمكن مزج و إعادة استخدام العناصر، و توزيع التطبيقات الناتجة و خلافه .
2- الأصناف الداخلية و هي إضافة تقنية تمكن المبرمجين من تعريف عناصر جافا ( و التي يدعوها المبرمجين بالأصناف Classes ) ضمن أصناف أخرى . و هذا مهم لأن العناصر في برمجيات جافا يجب أن تكون هيكلية لتكون مرنة في معالجة المشكلة المراد حلها .
3- الخواص الدولية في جافا . حيث أصبح بإمكان عناصر جافا في هذا الإصدار تمييز موقع الجهاز الذي تعمل ضمنه ( أي موقعه في العالم ) و التصرف حسب ذلك حيث صار بإمكان برمجيات جافا تحديد موقعها ، و الوقت و التاريخ ، و اعتماد المقاييس المستخدمة في ذلك الموقع ، و هذه لإضافة هامة إذا أخذنا بعين الاعتبار أن لغة جافا صممت لوضع تطبيقات تتنقل عبر الإنترنت .
4- في عدة التطوير 1.1 تم تعزيز عناصر الإدخال و الخرج I/O بحيث تدعم إخراج و إدخال الحروف . و هذه ميزة هامة حيث أن العديد من البرمجيات المصممة بغير اللغة الإنجليزية تستخدم أساليب مختلفة لتشفير الحروف ، مثل الصينية و اليابانية و العربية ، حيث تستخدم هذه اللغات محارف آسكي ASCII غير تلك المستخدمة في اللغة الإنجليزية و قد فتح هذا التطتوير لدعم اللغة العربية في جافا بدءا من العام 1997 في الإصدار 1.1.6 .
5- في جافا 1.1 تم إضافة دعم التواصل مع قاعدة البيانات بإضافة JDBC و تتكون JDBC من مجموعة من العناصر اللازمة للتحكم بقواعد البيانات ، و تستخدم لغة البحث البنيوي (SQL) و هي اللغة التي ابتكرتها شركة (IBM) كلغة قياسية للتحكم بالبيانات في قواعد البيانات العلائقية .
6- و آخر تحديث في جافا 1.1 و هو أهمها كان تضمين تقنية تشغيل العمليات عن بعد (Remote Method Invocation RMI) و هي تقنية يمكن بواسطتها للبرمجيات ، و خصوصا تلك المكتوبة بـ لغة جافا ، التواصل سوية ، حتى و لو كانت تعمل ضمن بيئات مختلفة و في مواقع مختلفة . و قد أوردت هذه الإضافة إلى دعم جافا بشكل كبير كلغة لتطوير التطبيقات الموزعة ، حيث يمكن لتطبيق جافا يعمل ضمن جهاز مركزي في الرياض مثلا ، أن يتعامل مع تطبيق جافا أخر يعمل على نظام مركزي في لندن أو نيويورك مثلا ، دون أن يحتاج هذين التطبيقين لمعرفة تفاصيل النظام الذي يعمل ضمنه التطبيق الآخر .

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

جافا 2 ، طور النضوج
عندما ظهرت جافا 2 لأول مرة في العام 95 كانت تتكون من 200 واجهة مختلفة لتطوير التطبيقات الإضافية إلى الملاحق ، و اليوم وصل عدد واجهات تطوير التطبيقات في جافا إلى 1600 . و في عدة التطوير 2 ، حدد مطورو جافا لأول مرة العناصر الأساسية التي تشكل نواة جافا . سواء أكانت مستخدمة ضمن البطاقات الذكية أو أجهزة الإيوانية العملاقة , و بكلمة أخرى فقد حدد المطورون 15 مكتبة أصناف تشكل النواة الأساسية للغة جافا . و هذه المكتبات هي على التوالي (applet, awt, beans, io, lang, math, net, rmi, security, sql, accessibility, swing, COBRA) و تمثل هذه الأصناف "روح" تقنية جافا و كل ما يحتاجه المطور لبناء تطبيقات متكاملة .

بيئة ممتازة للمؤسسات
ربما كان أهم ما ميز عدة التطوير 2 لجافا عند طرحها هو توجهها لتزويد المطور بكل ما يلزم لوضع تطبيقات موزعة جاهزة للعمل في المؤسسات . و ربما كانت أهم تقنية تم تضمينها في عدة التطوير 2 لجافا هي ما يدعى بأصناف التأسيسية(Java Foundation Classes JFC) و هي مجموعة من الواجهات البرمجية (APIs) و العناصر الجاهزة تتضمن معظم متطلبات تطوير التطبيقات . و بكلمة أخرى فإن المطور بفضل هذه العناصر يمكنه حرفيا دمج مجموعة من عناصر جافا سوية لتشكيل التطبيقات .
و بفضل الأصناف التأسيسية الجديدة اكتسبت لغة جافا أخيرا القدرة على الطباعة ( صدق أو لا تصدق ، الإصدارات الأولى من عدة التطوير لم تسمح للبرمجيات بالطباعة ) ، مما سمح للمطورين أخير باستخدام جافا لتطوير تطبيقات إنشاء التقارير، و إدارة الأعمال . كما يمكن الآن لتطبيقات جافا التي تستخدم عدة التطوير 2 أن تعرض وتطبع خطوط الترو تايب ، بوست سكربت ، و خطوط الصور البتية ، بشكل واحد و ثابت في 20 بيئة تشغيل التي تدعم جافا و يوجد لها آلة جافا افتراضية .
و من الإضافات الهامة الأخرى في جافا 2 هي تقنية سوينغ و هي عبارة عن مجموعة من عناصر جافا يمكن إعادة استخدامها تسمح للمبرمجين أن يقوموا بإنشاء واجهات استخدام رسومية قابلة للنقل و مستقلة تماما عن بيئة التشغيل التي تعمل ضمنها . و ما يعنيه ذلك أنك عندما تقوم بتطوير جافا فإن هذه التطبيقات عندما تعمل ضمن بيئة ويندوز فإن عناصرها المختلفة تأخذ شكل واجهة ويندوز ، و عندما تعمل ضمن بيئة ماكنتوش فإنها تأخذ تلقائيا شكل واجهات الماكنتوش . و هذه ناحية هامة جدا للمستخدم ولمدراء المعلوماتية . فإذا تعرض المستخدم لواجهة استخدام جديدة تختلف عما تعود عليه فقد يحتاج إلى بعض الوقت لإعادة التدريب وما إلى ذلك . و بفضل تقنية سوينغ فإن المستخدم لن يتعرض لذلك ، حيث أن تطبيقات جافا 2 تأخذ تلقائيا شكل بيئة التشغيل التي تعمل ضمنها .
كما تحتوي الأصناف التأسيسية الجديدة على مجموعة من الواجهات البرمجية التي تدعم تقنيات التعرف على الصوت و تحويله إلى نص ، وواجهات برمجية تحول النص إلى صوت ، كما أن جافا 2 تدعم الآن السحب و الإسقاط بين العناصر ، و الواجهات الثنائية و الثلاثية الأبعاد .

أمان أكثر
عندما تطور تطبيقات بغلة جافا حيث تتوقع لها أن تعمل في كل بيئة و ضمن أي نظام تشغيل فلا يمكنك ترك أي شيء للظروف أو الصدفة ، و خصوصا في قضية مثل أن التطبيقات ، و أكثر خصوصا تطبيقات التجارة و الأعمال الإلكترونية . فكل البيئات ليست بأمان نفسه ، و الشبكات المستخدمة لا تعتمد نموذجا أمنيا متشابها . و من ناحية أخرى ، فإنك لا تريد للغة مثل جافا تتمتع بمرونتها العالية و قابليتها للتواصل مع أي من التطبيقات الأخرى أن تستغل في تشكيل تهديد للنظم التي تعمل عليها . و لذلك كان لابد لجافا منذ بدايتها أن تستخدم نموذجا أمنيا محكما ، مثل عدم قابلية برمجيات جافا من إصدار أوامر إلى القرص الصلب الذي تعمل ضمنه ، و إنهاء حياة برمجيات جافا بعد الانتهاء من عملها، و هو ما كان يعرف بنموذج الصندوق الرملي .
وفي جافا 2 تم إدخال نموذج أمني جديد إلى اللغة يعتمد على تعميم الخواص الأمنية في برمجيات جافا إلى مستوى المؤسسة . أضف إلى ذلك فقد قامت صن بجعل النموذج الأمني أكثر مرونة و قابلية للتعديل من النموذج السابق .
فضمن النموذج الجديد منح المطورون و مدراء المعلوماتية القابلية لاستخدام أسلوب السياسات (policies) ، و الأذونات (permissions) و التحكم بالنفاذ إلى التطبيقات المكتوبة بجافا حتى على مستوى كل عنصر من عناصر التطبيق أو البريمج سواء كان ذلك على مستوى المستخدم أو مجموعة العمل . و بالطبع ، فإن فائدة تمكين المستخدم من التحكم في التطبيقات على هذا المستوى من الدقة له فوائده الواضحة في عصر التجارة و الأعمال الإلكترونية حيث يتم تبادل البيانات و التطبيقات على نطاق واسع يخرج عن سيطرة دائرة واحدة في معظم الأحيان .
و قبل ظهور هذا المستوى الدقيق من التحكم في جافا كان على المطورين أن يقوموا بكتابة نموذج أمني جديد لكل تطبيق . و الآن ، يمكن لهؤلاء المبرمجين أن يضعوا تطبيقاتهم المكتوبة بلغة جافا على الإنترنت و إضافة خاصية تسجيل الدخول الآمن إليها من الويب بحيث يستخدم كل بريمج ، و كل تطبيق هذه الخاصية الأمنية بالشكل نفسه دون الحاجة إلى أي تعديل .

تحسين الأداء
نظرا لطبيعة جافا كلغة مفسرة فقد كان من الطبيعي أن تعاني منذ البداية و حتى الإصدار 1.1.7 من بطء في الأداء . و لذلك فقد كان من أهم خبر بالنسبة للمطورين في الإصدار الثاني من عدة التطوير هو إدخال نموذج جديد للتطوير و هو نموذج الأداء لجافا (Java Performance Model) و هذا النموذج عبارة عن مجموعة من التحديثات التي تم إدخالها على هيكلية تنفيذ التطبيق في جافا . و يقول المسؤلون في صن أن هذه التحسينات تمنح التطبيقات المستفيده و الخادمة التي يتم تطويرها بجافا دفعة قوة من ناحية الأداء .
و من بين التعديلات العديدة التي تم إدخالها على جافا من خلال نموذج التحسين الأداء هي إمكانية ضغط الذاكرة الخاصة بالأصناف المحملة (memory compression for loaded classes) و سرعة أكبر في توزيع الذاكرة (memory allocation) إضافة إلى تحسين نظام التوليف الآني ، كما تم تحسين هيكلية آلة جافا الافتراضية بحيث يمكن إدخال التعديلات عليها في المستقبل دون الحاجة إلى إعادة كاتبة التطبيقات .
كما تم إدخال تعديلات عديدة على الطريقة التي يتم فيها معالجة الأخطاء (debugging) بحيث يمكن ذلك عن بعد إضافة إلى وجود خيار تمكين تطبيقات جافا الآن بحيث يمكن لمدير الشبكة أن يراقب أداء هذه التطبيقات الآن عن بعد خلال الإنترنت . ويساعد ذلك بشكل كبير في تحديد نقاط الاختناق في التطبيقات و معالجة المشاكل التي تنشأ أول بأول .


ترقبوا نبذة عن  انواع  الجافا  
مشهور الذنيبات
مشهور الذنيبات
عضو متميز
عضو متميز

عدد الرسائل : 481
العمر : 39
نقاط : 6219
تاريخ التسجيل : 05/05/2007

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تابع  نبذة عن لغة الجافا Empty رد: تابع نبذة عن لغة الجافا

مُساهمة من طرف احمد الصرايرة 2007-06-09, 8:15 pm

مشكوررررر على الفائده والمعلومات القيمة
احمد الصرايرة
احمد الصرايرة
Admin

عدد الرسائل : 646
العمر : 44
نقاط : 6236
تاريخ التسجيل : 21/04/2007

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تابع  نبذة عن لغة الجافا Empty رد: تابع نبذة عن لغة الجافا

مُساهمة من طرف مشهور الذنيبات 2007-06-10, 3:16 pm

حياك ابو صرار
وانتظروا المزيد ان شاء الله
مشهور الذنيبات
مشهور الذنيبات
عضو متميز
عضو متميز

عدد الرسائل : 481
العمر : 39
نقاط : 6219
تاريخ التسجيل : 05/05/2007

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى