تسبب استحواذ Oracle على Sun في قلق الناس بشأن مستقبل Java وما إذا كان بإمكان Oracle الاستمرار في الحفاظ على انفتاح Java، وفي مواجهة ظهور عدد من اللغات خفيفة الوزن مثل Ruby أو Python أو PHP. هل تستطيع Java الاستمرار في الحفاظ على شعبيتها في مجال التطوير؟
قبل 14 عامًا، عندما قام عبقري تسويق من شركة Sun بتغيير اسم لغة تجريبية متعددة المنصات من لغة Oak، التي ترمز إلى الصلابة، إلى لغة Java المليئة بالعطور، ربما لم يكن يعتقد أن هذه اللغة لديها القدرة على أن تصبح لغة شعبية في وقت لاحق. في الواقع، إذا أرادت شركة Sun الآن تغيير اسم هذه اللغة لتعكس موقعها بدقة في صناعة الكمبيوتر، فيبدو أن لغة Oak أكثر حيوية. اليوم، على الرغم من أن لغة Java لا تزدهر حقًا في كل مكان، إلا أنها ظهرت في العديد من المناسبات والأجهزة، وتتمتع بسمعة التشغيل المستقر والتصميم الجيد؛ قد لا يهيمن كود Java على جميع أجهزة الكمبيوتر أو جميع الأنظمة الأساسية، ولكنه قريب من ذلك تصبح لغة عالمية في متناول اليد.
أوضح جيمس جوسلينج، والد جافا، هذه النقطة عندما اعتلى المنصة للتحدث في مؤتمر OpenWorld الذي استضافته شركة Oracle. قام بسحب عرض شرائح JavaFX يحتوي على مجموعة من الإحصائيات: أكثر من 850 مليون جهاز كمبيوتر مكتبي يدعم Java وحوالي 10 مليار جهاز يدعم Java. في الواقع، تعد أجهزة Java الافتراضية شائعة في الأجهزة الإلكترونية: أجهزة قراءة الكتب الإلكترونية Kindle، ومشغلات أقراص Blu-ray، والهواتف الذكية (بما في ذلك الهواتف الذكية الأقل)، وما إلى ذلك. تعمل تطبيقات iPhone على الآلاف من أجهزة iPhone، ولكن Java مضمنة في 2.6 مليار هاتف، بدءًا من الهواتف غير الذكية التي يمكنك شراؤها مقابل 20 دولارًا وحتى أحدث جيل من هواتف BlackBerry وAndroid، ولم يتم تضمين أي شيء.
إن دعوة جوسلينج للتحدث في مؤتمر OpenWorld هي مجرد إحدى الطرق التي يأمل بها رئيس شركة أوراكل، لاري إليسون، في طمأنة المهندسين بأن اللغة لها مستقبل مشرق. تريد شركة Oracle الاستحواذ على شركة Sun Microsystems، لكن لا يزال يتعين عليها انتظار موافقة الهيئات التنظيمية الأوروبية على القرار. أعطت الحكومة الأمريكية الضوء الأخضر، لكن مسؤولي الحكومة الأوروبية لم يوافقوا بعد على الصفقة بسبب المخاوف بشأن تطوير MySQL. قال كل من جوسلينج ورئيس مجلس إدارة صن ماكنيلي أنه بمجرد اكتمال عملية الدمج والاستحواذ، ستحظى Java باهتمام وموارد أكبر من Oracle أكثر من ذي قبل.
على المدى القصير، قد لا تكون الإشارة التي نقلها إليسون مهمة للغاية، لأنه الآن بعد أن أصبحت جافا مناخًا، ليس من السهل تغيير اتجاه التنمية. بالطبع، يعتقد بعض الناس أن نموذج أعمال Oracle مختلف تمامًا لدرجة أنه سيؤدي حتمًا إلى إجراء تغييرات كبيرة على كل جزء من نظام Java البيئي. بشكل عام، لكل الأسباب التي قد تؤدي إلى تغيير Java، هناك أسباب وجيهة بنفس القدر وراء رغبة Oracle في الحفاظ على الوضع الراهن.
التطبيقات على مستوى المؤسسات هي ساحة المعركة الرئيسية
وجدت Java مكانها لأول مرة على جانب الخادم، ولا تزال هذه المنطقة هي المكان الرئيسي الذي من المتوقع أن تظهر فيه أجهزة Java الافتراضية في المستقبل. بالنسبة لجميع منتجات Oracle، تعد الخوادم الكبيرة أيضًا الموطن الرئيسي، لذا فمن المنطقي أن يظهر هذا الزوج. على الرغم من أن مبرمجي PHP يفضلون MySQL، بالنسبة لتطبيقات المؤسسات كثيفة البيانات، فإن العديد من المشاريع الأكثر أهمية لا تزال تستخدم Java المغلفة في بنية قائمة على Oracle، ولا ينبغي أن يتغير هذا الوضع في أي وقت قريب.
وقال صن إن خادم تطبيقات GlassFish يتم تنزيله أكثر من مليون مرة شهريًا، ولا تزال المنصات القديمة مثل Tomcat شائعة. نظرًا لأن التكنولوجيا تحظى بتقدير كبير، وسريعة، ومتعددة المنصات حقًا، فإن المؤسسات الكبيرة (مثل البنوك وشركات التأمين) مطلوبة بشكل كبير لمطوري Java.
ومع ذلك، لم تعد Java تعتبر أحدث وأروع بناء جملة. اشتكى بعض المبرمجين من بنية اللغات المكتوبة بشكل ثابت وتحولوا إلى لغات أحدث أو أبسط، مثل Ruby أو Python أو PHP. تم تطوير العديد من تطبيقات الويب الأبسط اليوم بهذه اللغات لأن الكود الذي يكتبونه سهل التعديل ويمكن تصميم نماذج أولية له بسرعة. ومع ذلك، غالبًا ما تعتمد هذه اللغات الجديدة سهلة الاستخدام على Java: غالبًا ما يستخدم مطورو Ruby JRuby (لغة Ruby المستندة إلى Java) لأن جهاز Java الظاهري يمكنه التعامل مع المهام الثقيلة بشكل أفضل وتحرير سلاسل رسائل متعددة. Jython (لغة بايثون تعتمد على Java) مشابهة.
تقوم Java الآن بدمج بعض من أحدث تقنيات البرمجة للحد من تطفل هذه اللغات الجديدة. من الواضح أن Grails يحاكي العديد من الأنماط التعريفية البسيطة لـ Ruby on Rails؛ يجمع إطار عمل Grails بين المكونات الإضافية للبرنامج النصي مثل Groovy مع برنامج وسيط لقاعدة البيانات يسمى Hibernate. يضيف Groovy نفسه العديد من الخيارات الديناميكية لتسهيل تفسير التعليمات البرمجية، ويمكن ربطه مباشرة بأي جزء من واجهة برمجة تطبيقات Java (API). ليست هناك حاجة حتى للتفكير في Python أو Ruby، لأن Groovy، من خلال بناء جملة أنيق وحديث، يمنح مبرمجي Java إمكانية الوصول إلى مجموعة لا نهاية لها على ما يبدو من المكتبات الواسعة وآلة افتراضية أساسية قوية.
اذهب للجوال
إن عدد هواتف Java (المقدر بحوالي 2.6 مليار) مذهل، حيث أن العديد من أبسط الهواتف الموجودة في السوق تعمل بنظام Java Platform Micro Edition (Java ME). يتيح ذلك لشركات مثل Wattpad.com إنشاء منصات لقراءة المستندات تعمل بسلاسة في جميع أنحاء العالم الثالث.
ومع ذلك، فإن عدد الهواتف الذكية التي تعمل بنظام Java صغير نسبيًا. لقد ألهم النجاح الكبير الذي حققه iPhone العديد من الأشخاص لإعادة تعلم لغة Objective C. وتسمح هذه اللغة للمبرمجين بتحسين سيطرتهم على بعض مشكلات النظام مثل استخدام الذاكرة. تخفي Java معظم المشكلات الأساسية عن المبرمجين، وهي ميزة، ولكن الافتراض هو أنه ليست هناك حاجة لإدارة الموارد مثل الذاكرة، لأنه إذا كان هناك خطأ صغير في جمع البيانات المهملة، فلن يتم تشغيل بعض الألعاب. لسوء الحظ، نظرًا لأن عمر البطارية يعد عاملاً مهمًا، تتطلب الهواتف الذكية إدارة أكثر صرامة للموارد مقارنة بأي منصة أخرى تقريبًا.
ومع ذلك، لا يزال هناك طلب على مبرمجي Java، حيث تواصل BlackBerry استخدام Java ME على منصتها الجديدة: فهي تضيف دعمًا لشاشات اللمس وأجهزة استشعار التوجيه إلى ملفات تعريف الهاتف. هناك عوامل لا يمكن التنبؤ بها في Android. منذ أن فتحت Google استخدام Android، قفز العديد من مصنعي الهواتف المحمولة إلى عربة Android.
تم بناء Android الخاص بشركة Google على Apache Harmony مفتوح المصدر وفئاته، بدلاً من الاعتماد على Java Development Kit (JDK) وJava ME التي طورتها شركة Sun. بالنسبة لشخص يكتب تعليمات برمجية في Eclipse، ستبدو متطابقة تقريبًا. في العديد من الحالات الأخرى، لن يكون الأمر مهمًا لأن تطوير Android يستخدم الكثير من نماذج XML، ولكن إذا ابتعد إطارا التطوير عن بعضهما البعض، فقد يصبح هذا الانقسام مشكلة كبيرة.
استعادة أرضية سطح المكتب
لا يزال معظم الناس يعتقدون أن Java لم تنجح أبدًا على سطح المكتب، وأن هذا أصبح من الماضي. واليوم، تخترق Java ببطء ولكن بثبات كل ركن من أركان أنظمة التشغيل الحديثة. في حين أن التطبيقات القياسية المكتوبة بلغة Swing لا تزال تعاني من محاولة استهداف الأجزاء الأساسية لكل منصة، فمن خلال منصات وأطر التطوير الأحدث مثل JavaFX وWeb Start، من الممكن نشر البرامج بشكل فعال عبر الويب. يتعامل النظام الأساسي الأصلي مع كافة عمليات التخزين المؤقت لأرشيفات Java (JARs). من خلال النقر على رابط، متبوعًا أحيانًا ببضع نقرات على مربع حوار منح الإذن، يمكن تثبيت البرنامج وتحديثه، ويمكن تشغيله في أي وقت.
لا تزال JavaFX مجهولة حقًا. أصبحت القدرات الرسومية الآن قادرة على المنافسة مع Adobe Flash؛ ويدعم محرك الحوسبة معظم واجهات برمجة تطبيقات Java، لكن اللغة عبارة عن مزيج غريب من Java الأصلية وJavaScript ولغات ترميزية أخرى. الكود أبسط من Java العادي، لذلك يتعين على مبرمجي Java تعلم أشياء جديدة. ومع ذلك، بالنسبة لأداة سطح المكتب التفاعلية للغاية، قد تستحق فئة الرسوم المتحركة الجديدة الوقت للتعلم. يستمر Web Start في تحسين القدرة على نشر البرامج مباشرة على سطح المكتب من خلال المتصفح ببطء.
الاستيلاء على الحقل المضمن
تزدهر Java أيضًا في الأماكن التي لا يتوقعها الناس على الإطلاق. في حين أن مبرمجي لغة C قد لا يعترفون أبدًا بقدرات التخزين الذكية والتنفيذ السريع لـ Java Virtual Machine، فإن نجاح Java في الهواتف غير الذكية وأجهزة الاستقبال والرقائق المدمجة وKindles وغيرها من الأجهزة منخفضة الطاقة يُظهر: القدرة الكاملة على التباهي في التطبيقات المدمجة. تساعد شعبية Java أيضًا المبرمجين على الانتقال من الأنظمة الأساسية الكبيرة إلى الأنظمة الأساسية الصغيرة. على الرغم من أنه ليس من السهل التحول من تطوير التطبيقات على مستوى المؤسسة للحاسبات المركزية إلى تطوير تعليمات برمجية صغيرة مضمنة، فإن معيار Java يجعل هذا التحول أسهل بكثير من العديد من الأدوات الأخرى.
أصبحت حزم Java أيضًا أصغر فأصغر. استخدم جوسلينج الغبار لوصف جهاز كمبيوتر بحجم العملة المعدنية ومتوافق مع لغة جافا. إن JavaCard، وهو جهاز افتراضي وواجهة برمجة التطبيقات (API) لمثل هذه الحزم الصغيرة، على وشك الدخول في الإصدار 3.0، وهو إصدار مهم سيضيف إمكانات الاتصال بالشبكة. وعلى الرغم من أن هذه النقاط الصغيرة ليست صغيرة بما يكفي لتناسب العين البشرية، إلا أن القدرة على التحدث مباشرة إلى الإنترنت تجعلها مغرية للغاية.
هل سيفترق الشركاء؟
أكبر مصدر قلق لجميع المطورين هو: ما هو نوع تضارب المصالح الذي سيتغير إذا تم الانتهاء من استحواذ Oracle على Sun؟ لقد نمت شركة Oracle من خلال فرض رسوم ترخيص برامج كبيرة، ويمكن تشغيل برامجها على أي جهاز يرغب العملاء في شرائه. من ناحية أخرى، تقدم شركة Sun عادة البرامج مجانًا ثم تجني بعض المال عن طريق بيع الخوادم. قد لا تتغير استراتيجيات التوزيع هذه على الفور بسبب وجود الكثير من الجمود، ولكن لا أحد يعرف ما هي القرارات التي ستتخذها Oracle في المستقبل.
يعتقد البعض أن فشل شركة أوراكل في فرض رسوم ترخيص كبيرة في الماضي لن يؤدي إلا إلى تشجيع إليسون على تبني تكتيكات مماثلة مع شركة صن. ربما يرغب فريق مبيعات Oracle في الحصول على هذه الفرصة الآن: زيادة رسوم الترخيص تدريجيًا حيث كانت Java مجانية. لتجنب إعادة كتابة تطبيقات Java Platform Enterprise Edition (Java EE)، ربما تفضل العديد من الشركات دفع 100 دولار أو 200 دولار أو حتى مليون دولار لكل وحدة معالجة مركزية.
يشير النقاد إلى أن شركة Oracle يمكنها بسهولة تطوير إصدارات جديدة من جهاز Java الظاهري بمستويات أداء مختلفة لأسواق مختلفة. قد تظل الأجهزة الافتراضية لسطح المكتب مجانية، وقد تدفع شركة Oracle لموردي أجهزة الكمبيوتر لتسويق Java وJavaFX، وقد تأتي تحسينات الأداء في التعامل مع خيوط المعالجة المتعددة بتكلفة عالية جدًا. هناك العديد من الطرق لكسب المال من المستخدمين، وغالبًا ما تكون رسوم الترخيص أرخص بكثير: إن جعل المبرمجين المتمردين يتعلمون لغة جديدة أولاً ثم يعيدون كتابة قاعدة التعليمات البرمجية أمر مكلف للغاية.
لكن بعض الناس يعتقدون أن شركة أوراكل قد لا تتبنى هذه الخطوة. قال مصدر مقرب من Sleepycat، شركة قواعد البيانات مفتوحة المصدر التي استحوذت عليها Oracle في عام 2006، إن Oracle ضاعفت تقريبًا حجم فريقها الفني، في حين ظلت جميع نماذج الترخيص المزدوج سليمة. لا تزال البرامج تأتي إما في شكل ترخيص مفتوح المصدر أو تجاري. إذا تعاملت Oracle مع Java مثل Sleepycat، فستظل تراخيص المجتمع والخيارات الأخرى مجانية ومتاحة على نطاق واسع كما كانت دائمًا، وسيتوفر المزيد من المهندسين لتحسين التعليمات البرمجية.
تظل هناك أسئلة أعمق حول العلاقات طويلة الأمد مع شركاء Java الرئيسيين الآخرين. تواصل Google دعم Apache Harmony، وهو مشروع يحتوي على أكثر من 1.25 مليون سطر من التعليمات البرمجية والذي يبدو أنه مصمم على تقويض مكانة صن كمركز للعالم. خسرت شركة IBM حرب العطاءات لشراء شركة Sun، وهي الآن تجد منافستها شركة Oracle أقوى. صممت شركة IBM أدوات تطوير Eclipse وقد تبدأ أيضًا في أخذ منصة Java في اتجاه آخر.
كان الشركاء الآخرون أكثر عدوانية. طلب فيشال سيكا، كبير مسؤولي التكنولوجيا في SAP، من Sun مرارًا وتكرارًا إطلاق عملية مجتمع Java (JCP)، مع التركيز على الخطة التي اقترحتها Oracle في عام 2007: تسليم السيطرة إلى منظمة معايير مفتوحة ومستقلة ومحايدة للبائعين، وجميع منظمات المعايير. يشارك الأعضاء على أساس تكافؤ الفرص. في حين أن شركة Oracle ظلت صامتة إلى حد كبير بشأن التفاصيل، فمن الآمن افتراض أن الشركة ستستعيد احترامها لبعض الأفكار التي ورثتها من شركة Sun.
ومع ذلك، على الرغم من أن الشركاء الآخرين قد ينخرطون في التخويف، إلا أنهم قد يفكرون في مسألة الدرجة، لأن الجميع مقيدون فعليًا عن بعضهم البعض، ومن المرجح أن يتم حظر أي سلوك مفرط، لأن الجميع يدركون أنه بمجرد كتابته، في كل مكان مزايا مفاهيم التشغيل. إذا لم يكن من الممكن ترحيل التعليمات البرمجية المكتوبة لهاتف Android بسهولة إلى مشغل Blu-ray من Sony أو خادم Glassfish، فهناك فرصة لظهور لغة أخرى. في الواقع، تقوم العديد من الشركات بالفعل بكتابة مجموعات أدوات تسمح للمستخدمين بتشغيل برنامج Ruby on Rails أو Python على iPhone بسهولة.
بالإضافة إلى ذلك، قد تصبح العديد من هذه اللغات الجديدة منافسة جدية، ولن يؤدي الكثير من الاقتتال الداخلي إلا إلى مساعدتها على تحقيق المزيد من التقدم. هناك العشرات من الحزم مفتوحة المصدر الجيدة جدًا والأقل شهرة والتي يمكن عادةً نقلها إلى كل منصة مع القليل من التحويل بواسطة المتحمسين المتفانين. على سبيل المثال، تعد لغة بايثون بالفعل اللغة الرئيسية في بعض المجالات العلمية، وقد اختارت جوجل لغة بايثون بدلاً من جافا لتكون اللغة الأولى التي يدعمها محرك التطبيقات الخاص بها. ورغم أن آي بي إم، وأوراكل، وجوجل قد يضغطون على بعضهم البعض في السباق على الهيمنة، فيتعين عليهم أن يدركوا أن الجميع يستفيدون من التقييس، وليس الاحتكار. إذا تجرأ أي شخص على استبعاد الآخرين أكثر من اللازم ومحاولة السيطرة على جافا، فقد يندفع البائعون الآخرون إلى منافسيهم.
هل تفتح Java أيضًا متجر تطبيقات؟
إن حقيقة أن قاعدة أكواد Java تظل متماسكة نسبيًا وموحدة نسبيًا قد أثارت تكهنات حول كيف يمكن لـ Sun (و Oracle، إذا تم الاندماج) استغلال انتشار Java في كل مكان لتحقيق ثروة دون زيادة رسوم الترخيص ومزاحمة الضغط على الجميع؟ ماذا لو قام شخص ما بتطوير متجر تطبيقات لنظام Java البيئي بأكمله، وبيع عناصر واجهة المستخدم المكتوبة بلغة Java تمامًا مثل تطبيقات iPhone، ويمكن أن تكون على أجهزة سطح المكتب أو الهواتف أو مشغلات Blu-ray، أو ماذا لو كان من الممكن تشغيلها على أي نظام أساسي آخر يستخدم Java؟ ؟
في الآونة الأخيرة، كان هناك عدد كبير من التطبيقات لهواتف Android، وتخطط Sun أيضًا لإنشاء متجر Java بحيث يمكن للأشخاص ببساطة سحب التطبيق إلى سطح المكتب، أو كتابة المزيد من التعليمات البرمجية لإضافة كل تطبيق إلى سطح المكتب معًا ، يمكنهم العمل في كل ركن من أركان عالم Java تقريبًا. ومع ذلك، فإن التعامل مع شاشات وواجهات مستخدم مختلفة إلى حد كبير يمكن أن يمثل تحديًا.
تخيل مدى جاذبية هذا السيناريو: تطبيق كتبه أحد المطورين يعمل على هاتف يعمل بنظام Android، وهو يعمل على مهمة على مكتبه، وعندما يعود إلى المنزل، يعمل بسلاسة على مشغل Blu-ray في غرفة المعيشة.
يعد جلب تطبيقات Java إلى الأشخاص الجالسين على الأريكة أمرًا غير متوقع بعض الشيء، لأن لغة Java كانت في الأصل مخصصة للتشغيل على أجهزة فك التشفير في أيامها الأولى عندما كانت تسمى Oak. ستعتمد هذه الرؤية على أعظم المزايا التي تتمتع بها منصة Java: الشعبية والاستقرار عبر الأنظمة الأساسية. وربما تساعد هذه المزايا Java على جلب دخل متجدد لمخترعها.