الجافا في سطور

الجافا في سطور

بداية الجافا
الجافا لغة برمجة تابعة لشركة صن مايكروسيستم
الجافا بدأت سنة 1991م في مختبرات شركة صن
وقد كان يعمل عليها James Gosling
وسميت مبدأياً بلغة أواك oak
نسبة إلى شجرة بلوط كانت تطل على نافذة جيمس
سميت بعد ذلك باسم Green أخيراً استقر اسمها على جافا
أصدرت صن أول إصدارة من لغة جافا سنة 1996م
وهذا هو تاريخ الميلاد الحقيقي للغة جافا

لماذا جافا؟
خروج جافا إلى العالم يعتبر حدث مدوي في عالم البرمجة
وذلك لأنها أضافت مفاهيم قلبت موازين لغات البرمجة
واحتوت على دعم لعدة مجالات جديدة في البرمجة
من أهم المفاهيم التي أضافتها الجافا إلى عالم البرمجة:
1- الآلة الافتراضية(virtual machine)
2- الخيوط Threads
كما احتوت الجافا على مجموعة من الحزم packages
التي خدمت المستخدم في عدة مجالات منها
الشبكات-معالجة الصور الرقمية-الحسابات الكبيرة … إلخ
و امتازت الجافا بدعمها الكامل للبرمجة الكائنية object orinted programming
والذي أهلها للقيام بمشاريع كبيرة لا حصر لها
استفادت الجافا من مفاهيم كانت موجودة سابقاً
مثل جامع النفايات garbage collector
كما استفادت من لغتي c و c++ في بناء هيكليتها

ماهي الآلة الافتراضية؟
مفهوم الآلة الافتراضية من المفاهيم التي أضافتها الجافا إلى البرمجة
ثم انتشرت بعد ذلك كمفهوم رئيسي في لغات البرمجة
واليوم يعتبر من الشروط الرئيسية لولادة لغات برمجة جديدة

المشكلة التي أدت إلى ولادة الآلة الافتراضية:
تتركز في أن لغات البرمجة السابقة
كانت تسمح للمبرمج بأداء الكثير من العمليات
التي قد تأدي إلى أضرار شديدة بجهاز الحاسوب بدون أي مراقبة أو محاسبة

مبدأ عمل الآلة الافتراضية:
يقوم مبدأ عمل الآلة الافتراضية
على إيجاد طبقة وسيطة بين التعاد hardware والبرمجيات software
تعمل هذه الطبقة على وضع قوانين للتعامل بين العتاد والبرمجيات
بحيث تنهي أو تحد من الإضرار بالعتاد

آلية عمل الآلة الافتراضية:
عندما تنتهي من كتابة شيفرة code الجافا
وتقوم بعملية compile فإنك لن تحصل على ملف ثنائي binary
يعمل مباشرة على جهاز الحاسوب
وإنما ستحصل على ملف يحتوي على شيفرة خاصة تسمى byte code
هذه الشيفرة تقوم الآلة الافتراضية بتحويلها أوامرها إلى أوامر يفهمها الحاسوب
لهذا فأنت لا تستطيع تشغيل شيفرة الجافا بدون وجود آلة افتراضية على جهازك

الأنظمة التي توجد لها آلة افتراضية:
Windows, Mac, Unix (Linux, FreeBSD, etc.)
saloris , AS/400, Palm OS, Psion etc.

نستطيع أن نقول أنه من الصعب جداً
بل يكاد أن يكون مستحيل أن تقوم ببناء فايروس بلغة الجافا

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

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

تعدد الخيوط:
تمكنك لغة الجافا من إنشاء عدد لا محصور من الخيوط
والتي تعمل جنباً إلى جنب
فبالإضافة إلى أن جافا أوجدت مفهوم الخيط
فإنها أنشأت مفهوم تعدد الخيوط
حيث يتكون البرنامج الواحد في جافا من مجموعة من الخيوط
التي تعمل على التوازي مع بعضها بدون أي مشاكل تذكر

مشاكل تعدد الخيوط:
صحيح أن الخيوط توفر الموارد
لكنها إن أسيء استخدامها قد تؤدي إلى تضييع الموارد
ومن أهم المشاكل التي يواجهها مستخدمي الخيوط
1- التوقف إلى الأبد deadlock
2- الانتظار الطويل(الجوع للعمل) Starvation
3- العمل إلى الأبد Livelock
ببساطة إما أن تتعلم الخيوط بشكل جيد
أو تستعين بمحترف في جافا
أو انسى موضوع الخيوط

ماهي إصدارات جافا؟
1- إصدارة سطح المكتب Java Platform, Standard Edition (J2SE)
2- إصدارة الجوال Java Platform, Micro Edition (J2ME)
3- إصدارة الويب Java Platform, Enterprise Edition (J2EE)

استثناءات الجافا من البرمجة الكائنية:
استثنت من مفاهيم البرمجة الكائنية
1- الوراثة المتعددة multiple inheritance
2- إعادة كتابة العمليات operator overloading
وذلك لمنع التضارب الذي تسببه هاتان الخاصيتان

هذه المقالة كنت كتبتها لويكي الفريق العربي للبرمجة
لكن لم تنشر لتعطل الويكي نفسه
فكانت من نصيب مدونتي
أتمنى أن تكون حازت على رضاكم

تحياتي

14 تعليق to “الجافا في سطور”

  1. يقول Okbah:

    مقالة رائعة وموجزة عن الجافا.. أشكرك بعنف

  2. يقول abuoof:

    مقالة جميلة
    جزاك الله خير
    مجموعة من زملائي عملو فيرس بالجافا بس في الحقيقة كان بأستخدام المثود exec وهندللها اوامر دوس وضحكو علي الباقي وافقسو في الآخر
    دمت في رعاية الله

  3. يقول admin:

    العفو عقبة

    أبو عوف لم أفهم منك بالضبط هل تم الفايروس أم لا؟؟
    على كل حال لست أستبعد أي شيء لكنه ليس بالأمر السهل مطلقاً

    تحياتي

  4. يقول abuoof:

    تم الفيرس ولكنه من لا يفقه في الجافا يظنه بالجافا ولكنه ببعض أوامر الدوس
    حضرتك عارف الميثود exec التي نكتب بها اوامر الدوس في برنامج الجافا عندما نريد التعامل مع نظام التشغيل أستخدموها وكتبو بها أوامر تخريبية هذا كل الامر
    آسف علي اللخبطة إلي عملتها
    بالتوفيق

  5. يقول admin:

    اهاااااااااا
    نستطيع القول أن هذا خارج نطاق الفايروسات الحقيقية
    أو يمكننا تعديل القول بأنك لا يمكنك برمجة فيروسات مباشرة

    تحياتي

  6. معلومات جيدة ورائعة ومفيدة تشكر عليها

  7. يقول admin:

    العفو

  8. يقول نغم:

    موقع جدا رائع ومقال جميل لكن اود معرفة كيف يمكنني ان اجري معالجة على الصور الملونة وايجاد المدرج التكراري لها باستخدام طبعا لغة جافا

  9. يقول admin:

    يمكنك الإطلاع على الروابط التالية من مدونتي قد تفيدك
    معالجة الصور الرقمية 1
    معالجة الصور الرقمية 2
    أي أسئلة أنا جاهز

    تحياتي

  10. يقول فريد:

    مقال جيد لكنك لم تتحدث عن أضرار الجافا

  11. يقول admin:

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

    تحياتي

  12. يقول LuLu:

    رائع جدا جدا..
    كلما قرأت أكثر عن الجافا ازداد حبي لها 🙂
    أذكر أنني قرأت ذات مرة أن كلمة جافا هي اسم لقهوة كان يحتسيها بعض المبرمجين 😀
    شكرا لك

  13. يقول LuLu:

    صحيح نسيت أن أسألك
    ماهو المحرر الذي تنصحني باستعماله بدلا من الكرييتور؟

  14. يقول admin:

    هناك كلام كثير حول التسمية
    لكني لا أعرف الصواب فيها
    لذا لن أفتي 🙂
    بالنسبة للمحرر استخدمي notebad++
    على كل أعتقد أنك تعنين بيئة العمل IDE
    طبعاً سأنصحك بحبيب قلبي eclipse
    هناك من سيقول NetBeans
    لكنه ليس بكفأ
    على كل أحياناً استخدمه في بعض الأعمال

    تحياتي

Leave a Reply for abuoof