يستمر الجدل حول أهمية جافا. يقول البعض أنها أصبحت عتيقة وأن اللغات الأكثر تقدمًا تحل محلها. يختلف آخرون ، مشيرين إلى عدد المتخصصين الذين يختارون جافا من سنة إلى أخرى كمهارة أساسية. على أي حال ، لا يمكن للمرء أن يتجاهل حقيقة أن معظم البرامج الموجودة مكتوبة بلغة جافا ، ويستمر العملاء ، داخليًا وخارجيًا ، في استخدامها. في هذه الحالة ، لا ينبغي تجنب أي تطبيقات جديدة وأخبار عالمية حول Java.
شارك Peter Verhas ، كبير مطوري البرامج والمهندسين المعماريين في مكتب
EPAM السويسري ،
تحليله للتغييرات التي تطرحها Oracle وكيف ستؤثر علينا.
حدثت العديد من التغييرات في Java مؤخرًا ، ويبدو أن الطريقة التي ستتطور بها اللغة قد تغيرت بشكل أساسي. من الجيد أن تظهر الميزات الجديدة في اللغة. لكن هذه ليست التغييرات الوحيدة. أدخلت Oracle تغييرات كبيرة على نموذج الدعم ودورة التحديث لإصدار Java الذي تطلقه هذه الشركة. كل هذا أدى إلى قدر كبير من الارتباك الناجم عن التغيير والتضليل وسوء الفهم. في هذا المقال ، ألخص كل شيء يحتاج المستخدمون إلى معرفته حول الابتكارات قبل أن يبدأوا في الإيمان بالنهاية المروعة لنظام جافا البيئي.
ومع ذلك ، يجب توضيح بعض النقاط أولاً.
تمتلك أوراكل جافا ، لكن جافا ليست أوراكل. يتم إصدار شفرة مصدر Java بموجب ترخيص GPLv2.0 باستثناء مسار classpath. في الواقع ، هذا يعني أنه يمكن لأي شخص استخدام رمز المصدر للغة وإجراء تغييرات عليه مجانًا. هناك شيء واحد فقط ممنوع على الجميع ، بما في ذلك Oracle ، القيام به: إجراء تغييرات على التعليمات البرمجية ونشرها بترخيص مصدر مغلق. وهذا يعني أن الاستخدام التجاري لـ Java ، الإصدار المدفوع فقط ، مستحيل من الناحية القانونية ، حتى إذا كانت مصالح Oracle التسويقية أو التجارية تتطلب ذلك. لكن ما زلت متخصصًا تقنيًا. للتعامل مع هذه النقطة ، من الأفضل 100 ٪ تنزيل نص ترخيص GPLv2 والتشاور مع محام.
إن Oracle ليست الشركة الوحيدة التي تقوم بإصدار تجميعات Java وتشارك في الدعم ؛ فهناك العديد من البائعين الآخرين. بالطبع ، أوراكل ، بصفتها اللاعب الرئيسي الذي يستثمر أكثر في تطوير اللغة والأدوات ، هي الشركة التجارية المرموقة التي تدعمها.
في الواقع ، لا تمتلك Oracle حقوقًا حصرية ليس فقط لكود مصدر Java. عملية التطوير ، التغييرات في تعريف Java ، API - كل هذا في يد عملية مجتمع Java ، يمكن لأي شخص الدخول فيها. بالنسبة للأفراد ، هذا مجاني تمامًا. أعضاء هذه المجموعة هم شركات مثل Intel و IBM و Credit Suisse و Software AG و RedHat. هم يحددون مستقبل جافا وليس أوراكل. ولديهم رأيهم الخاص ، كما رأينا آخر مرة لم تسر الموافقة على النسخة النهائية من JPMS بسلاسة تامة.
بعد هذه المقدمة ، التي قررنا فيها أن Oracle تمتلك "Java" ، ولكنها ليست Java ، فلنلقِ نظرة على التغييرات في إجراء دعم التطوير وخريطة طريق Java التي قدمتها Oracle.
التغييرات بعد Java 9 و 10 و 11
أعلنت شركة Oracle أنه بدءًا من JDK11 ، لن تكون Oracle JDK مجانية بعد الآن. وفي البداية هذا البيان مخيف. ما اعتدنا على استخدامه مجانًا لن يكون كذلك. عملياً ، ما "يجب أن ندفعه" منطقي تقريباً. ولكن الكلمة الصغيرة "تقريبًا" تقف لسبب ما. إذا كانت هناك بعض الخدمات التي استخدمناها ، ولم تعد مجانية ، فلدينا خياران: الدفع لاستخدامها لاحقًا ، أو عدم استخدامها بعد الآن. هل يجب أن نستمر في استخدام Oracle JDK أم يمكننا التبديل إلى شيء آخر؟ هذا هو السؤال الحقيقي.
للإجابة عليه ، تحتاج إلى فهم ما هو Oracle JDK والبدائل المتاحة. هناك تغيير هام آخر يتعلق بدورات إصدار الإصدارات الجديدة ومفهوم الدعم طويل المدى (Eng. - Long Term Support or LTS). أولاً ، سنناقش التغييرات في دورة الإصدار ، ثم الارتباك مع Open JDK ، وأخيرًا ، بنية LTS.
دورة الإصدار
ظهرت جافا في عام 1996. ظهرت الإصدارات القليلة الأولى من جافا بشكل أكثر أو أقل بانتظام.

ومع ذلك ، بالنظر إلى الرسم البياني ، نرى أن إصدار Java 5.0 تأخر. لم تكن Java 6 أيضًا في عجلة من أمرها للإصدار السابق ، وكان أكبر انقطاع بين Java 6 و Java 7. حتى بعد ذلك ، لم يتم إصدار إصدارات جديدة في كثير من الأحيان. تلقت Java 8 العديد من الميزات الجديدة ، ولكن بتكلفة عامين من الانتظار. كانت الأشياء مشابهة لـ Java 9 ، والتي ، على الرغم من أنها خضعت لتغييرات أكبر ، اضطرت إلى الانتظار ثلاث سنوات كاملة.
المشكلة في دورات إصدار التحديث هذه هي أن اللغة التي تنافس نفسها في سوق اللغة المتطورة باستمرار لا يمكنها تقديم ميزات جديدة بسرعة كافية. إذا استغرق تطوير نظام معياري ثلاث سنوات ، فلا شيء يمكنه تسريع العملية. ومع ذلك ، ربما تم إصدار بعض الأشياء التي ظهرت في Java 9 في وقت سابق. لكنهم ببساطة لم يتمكنوا من الوصول إلى المطورين ، حيث لم تكن هناك إصدارات سابقة. كان من المفترض أن تنتظر الوظائف التي كانت متاحة بالفعل ظهور الوظيفة التي تم تطويرها ببطء شديد في هذا الإصدار. هذه إحدى مشاكل نموذج التطوير المتتالي الكلاسيكي.
قررت شركة أوراكل أن تصبح رشيقة وتصنع الإصدارات كل ستة أشهر. بدءًا من سبتمبر 2017 ، يمكن توقع إصدارات Java جديدة في مارس وسبتمبر. إذا كانت بعض الوظائف غير جاهزة لهذه التواريخ ، فسيتم نقلها إلى الإصدار التالي ، لكن الباقي ، عندما تكون جاهزة ، ستقع في الأحدث.
بشكل عام ، هذا أمر طبيعي. من ناحية أخرى ، يجب أن يكون مجتمع Java والمطورين سعداء بهذا الأمر. من ناحية أخرى ، لا تزال مسألة الدعم. من يمكنه دعم العديد من إصدارات جافا؟ لهذا السبب تم تقديم الدعم طويل الأمد (LTS) ، والذي سنتحدث عنه قريبًا. ولكن أولاً ، ما زلت بحاجة إلى توضيح ماهية Oracle JDK و OpenJDK.
ما كان وأصبح Oracle JDK و OpenJDK
حتى Java 9 ، كان هناك إصدار ثنائي من تجميع Java Java Oracle (Sun Microsystems) ، والذي تم استخدامه في بيئة الإنتاج من قبل معظم المطورين والشركات. اعتمد هذا البرنامج الثنائي على Java مفتوح المصدر واحتوى على بعض التحسينات - أدوات مؤسسية إضافية مثل Java Flight Recorder و Java Mission Control وبعض الميزات الأخرى مثل Application Class-Data Sharing.
تم إنشاء تجميع OpenJDK من Java مفتوح المصدر ، حيث لم تكن هناك تحسينات. تم استخدام تجميع Java هذا من قبل أولئك الذين أرادوا تجربة خصائص Java ، أو تغيير الكود ، أو ببساطة لأي سبب كان من أتباع كود المصدر المفتوح. على الرغم من أنه كان عليك تنزيل شفرة المصدر وتجميعها بنفسك.
بدءًا من Java 9 ، بدأت Oracle في توفير OpenJDK بالتوازي مع Oracle JDK. وأعلنت الشركة أيضًا أنها تريد تضييق الفجوة بين ميزات وأداء واستقرار الإصدارين ، وبمجرد حدوث ذلك ، اجعل Oracle JDK مدفوعًا. في ذلك الوقت ، كان كل من OpenJDK و Oracle JDK متاحًا مجانًا كتجميعات ثنائية من Oracle. كانت هذه Java 9 و Java 10.
بعد إصدار Java 11 ، توقف هذا. OpenJDK لا يزال متاحًا مجانًا ، لكن Oracle JDK لأنظمة الإنتاج أصبحت مدفوعة. لم يعد هناك فرق كبير بين النسختين. يحتوي الإصدار التجاري على أداة تثبيت ، بينما يحتوي OpenJDK على ملف ZIP فقط. هناك اختلافات أخرى ، ولكن لا ينبغي لمستخدمي Java الانتباه إليها. يوصف دونالد سميث ، المدير الأول لإدارة المنتجات في شركة أوراكل في
هذه المقالة قائمة تفصيلية من الاختلافات.
علاوة على ذلك ، لا يزال Oracle JDK مجانيًا للمستخدمين الآخرين ، حتى التجاريين. يمكن استخدام Oracle JDK بحرية في:
• التنمية
• الاختبار
• النماذج
• المظاهرات
يمكنك استخدام OpenJDK لأغراض أخرى أو دفع Oracle واستخدام Oracle JDK والحصول على الدعم. الدعم جيد.
إصدارات الدعم على المدى الطويل
أثار الانتقال إلى دورة إصدار جديدة كل ستة أشهر سؤال دعم. لا أحد يستطيع دعم العديد من الإصدارات لمصلحته الخاصة. إذا قمت بتثبيت Java 6 لتطبيقك في عام 2007 ، يمكنك الحصول على الدعم من Oracle في 11 عامًا. يشير إصدار الإصدارات الجديدة كل ستة أشهر إلى دعم 22 إصدارًا مختلفًا في وقت واحد. سيكون هذا عبئًا ثقيلًا على Oracle أو أي بائع آخر يقرر دعم جميع الإصدارات.
تتمثل استراتيجية أوراكل في تحديد إصدار واحد كل ثلاث سنوات والذي سيحصل على دعم طويل الأمد. كان الإصدار الأول من هذا النوع هو Java 11 ، وسيتم دعمه حتى عام 2026. خلال هذا الوقت ، سيتم أيضًا إصدار Java 17 في سبتمبر 2021 ، والذي سيحصل على دعم طويل الأمد لمدة سبع سنوات ، بما يتماشى مع الخطط الحالية. سيتم دعم جميع الإصدارات الوظيفية الأخرى فقط حتى إصدار الإصدار التالي.

يرجى ملاحظة أن الدعم ينطبق فقط على Oracle JDK وفقط لأولئك الذين دفعوا مقابل JDK والدعم. ولكن لا تعتقد أنك تركت تحت رحمة القدر إذا كنت تخطط لاستخدام OpenJDK. بالنسبة لنا ، لم يتغير شيء. إذا لم تدفع مقابل الدعم من قبل ، فأنت لم تحصل عليه على أي حال. إذا دفعت ، فسوف تستمر في الدفع والحصول على هذا الدعم.
فيما يلي ارتباط بمقالة أوراكل مع توقعات نهاية العمر للإصدارات المختلفة.
هل ستكون هناك إصدارات جديدة لـ OpenJDK؟ بالطبع. سابقًا ، تم إصدار تحديثات Java مفتوحة المصدر التي تعمل على إصلاح الأخطاء ، على الرغم من عدم وجود ضمان بإصدارها. حدث هذا ببساطة لأن جميع المشاركين كانوا مهتمين بذلك. في المستقبل ، سيبقى كل شيء كما كان من قبل ، وستتلقى Java إصدارات جديدة وتجميعات جديدة.
أرى ثلاث استراتيجيات رئيسية لاختيار إصدار Java الأفضل لتثبيت:
- ادفع Oracle مقابل Oracle JDK والاشتراك ، واستخدم الإصدارات بدعم طويل الأمد. هذا ما يجب على الشركات التجارية الكبيرة التي تستخدم البنية التحتية لـ Java القيام به لتلبية متطلبات الموثوقية.
- قم بالتبديل إلى OpenJDK ، واستخدم فقط الإصدارات ذات الدعم طويل المدى ، وقم بتثبيت إصدارات إصلاح الأخطاء المتوفرة لـ OpenJDK. هذا حل قابل للتطبيق للشركات التي لا تستطيع أو لا تريد تغيير تكلفة البنية التحتية لجافا ، والتي يمكن أن تفعلها دون دعم تجاري في الماضي وتعتقد أنها تستطيع أيضًا على المدى الطويل.
- قم بالتبديل إلى OpenJDK وقم بتثبيت الإصدارات اللاحقة كل ستة أشهر بمجرد ظهورها. هذا خيار للشركات التي تحتاج إلى أحدث الحلول التكنولوجية.
يمكن أيضًا دمج الإستراتيجيات من خلال تثبيت إصدارات مختلفة من Java على أجهزة مختلفة. بغض النظر عن ما تختاره ، يمكنك تنزيل إصدارات ثنائية من الإصدار المسبق من المواقع التالية:
- الإصدارات الثنائية من برنامج OpenJDK الذي تم إنشاؤه مسبقًا والذي يعتمد علىوبتينجك
- Oracle JDK متاح على java.oracle.com . هنا يمكنك النقر على Java SE 11 للانتقال إلى صفحة التنزيل والوصول إلى زر التنزيل. هناك تحذير أصفر كبير على الصفحة ، سيكون عليك أيضًا النقر فوق الاتفاقية مع شروط الترخيص قبل أن يصبح رابط التنزيل متاحًا. وهذه المرة ، من الأفضل قراءة البنود حقًا ، وليس الموافقة تلقائيًا فقط.
على الرغم من أن هذا ليس تنزيلًا ثنائيًا ، إلا أنه يرتبط ارتباطًا وثيقًا بتنزيل Oracle JDK - يمكنك أيضًا زيارة
www.oracle.com/java/java-se-subscription.html للحصول على Oracle JDK والدعم في حزمة واحدة. معلومات التسعير التفصيلية متاحة على
www.oracle.com/us/corporate/pricing/price-lists/java-se-subscription-pricelist-5028356.pdf . بالنسبة إلى الصبر ، قمت بنسخ معلومات السعر هنا من الأسئلة الشائعة الرسمية حول Oracle:
"تبلغ تكلفة إصدار سطح المكتب 2.50 دولارًا لكل مستخدم شهريًا ، أو أقل إذا كانت هناك خصومات على مستوى متعدد المستويات. راجع مخطط أسعار اشتراك Oracle Java SE للحصول على مزيد من المعلومات. "الملخص
ماذا تفعل؟ هل تستخدم OpenJDK أو تدفع مقابل Oracle JDK؟ إنها مسألة ربحية ومدى أهمية دعم Oracle لك. إذا لم يكن عملك قادراً على دعم Oracle JDK ، لأنك شركة ناشئة ، ونجم صاعد بفكرة منتج رائعة ، ولكن هناك فجوة في جيبك ، فإن OpenJDK يلبي احتياجاتك. لا يتعين عليك دفع ثمنها. بالإضافة إلى ذلك ، إذا كنت شركة ناشئة ، فلن يكون الأمر بالغ الأهمية بالنسبة لك إذا لم تعمل خوادمك لعدة ساعات حتى يحل الخبراء الفنيون المشكلة. إذا كنت لا تستطيع تحمل وقت التوقف عن العمل ، فعلى الأرجح أنك تعمل في شركة ناضجة ، وبالتالي يجب عليك استخدام Oracle JDK والاشتراك للحصول على الدعم. يمكنك أيضًا أن تقرر الجمع بين نماذج مختلفة وتثبيتها على بعض خوادم المنتجات التي يجب أن تكون متاحة على مدار الساعة طوال أيام الأسبوع ، و Oracle JDK ، و OpenJDK في التطبيقات الداخلية التي ليست بالغة الأهمية للأعمال.
على أي حال ، يمكنك الاستمرار في استخدام Java بشكل أكبر.
عن المؤلف:يعمل بيتر فيرهس في مكتب EPAM السويسري. يقوم بيتر بتطوير برامج للعملاء ، ويوفر التدريب للمبرمجين والإرشاد داخل الشركة.
يمكنك متابعة بيتر على
Twitter و
LinkedIn و
GitHub . ولدى المؤلف أيضاً مدونة "Java deep":
javax0.wordpress.com