JavaRush /مدونة جافا /Random-AR /اتجاهات Java في عام 2022: JDK 18 و19 وProject Loom وData ...

اتجاهات Java في عام 2022: JDK 18 و19 وProject Loom وData Mesh

نشرت في المجموعة
حسنًا، لقد بدأ عام 2022. بينما لا يزال معظم الناس في عطلة رأس السنة مع الشمبانيا وأوليفييه، سنتحدث عن الاتجاهات في عالم جافا. ربما سيساعدك هذا على تحليل حياتك المهنية، أو تعلم تقنية جديدة، أو التوصل إلى خطة تطوير للعام المقبل. اتجاهات Java في عام 2022: JDK 18 و19 وProject Loom وData Mesh - 1تحدث المتخصص والمحاضر في لغة Java أندريه روديونوف، بالإضافة إلى مهندس الحلول في EPAM ورئيس لجنة برنامج Devoxx أوكرانيا أوليغ تسال تسالكو عما ينتظر Java في عام 2022 والمستقبل القريب.

ما هي آفاق جافا في عام 2022؟

اتجاهات Java في عام 2022: JDK 18 و19 وProject Loom وData Mesh - 2نتوقع هذا العام إصدار الإصدارين التاليين: JDK 18 (في مارس) وJDK 19 (في سبتمبر). قد يكون من المثير للاهتمام بالنسبة لمعظم مطوري Java في JDK 18 ما يلي:
  • خادم ويب بسيط مدمج، بدون دعم لحاوية servlet، والذي يمكن استخدامه للنماذج الأولية والاختبار السريع، على غرار خوادم الويب المصغرة المماثلة في Python وRuby وPHP.
  • تستمر مطابقة الأنماط في التحسن.
أما بالنسبة لـ JDK 19، فهناك بالفعل إصدار الوصول المبكر، ولكن لا توجد حتى الآن قائمة رسمية بما هو مخطط تضمينه فيه. أود أن أصدق أن JDK 19 سيتضمن على الأقل أول نموذج أولي مستقر لـ Project Loom، والذي ظهرت مواصفات مسودة له مؤخرًا والذي يعتمد أحدث تصميم له على JDK 19. سنتحدث عن Project Loom بمزيد من التفاصيل أدناه.

ما هي المجالات التي تظل فيها Java الحل الوحيد، وأين هي المفضلة؟

أندريه روديونوف:

لحسن الحظ، لا يمكننا القول أنه لا يوجد بديل لـ Java في أي من المجالات، ولكن يمكننا التحدث عن Java كنوع من الوسيلة الذهبية لتطوير تطبيقات المؤسسات والواجهات الخلفية والخدمات الصغيرة. تجدر الإشارة أيضًا إلى العدد المتزايد من توزيعات JDK المختلفة من بائعين مختلفين (باستثناء Oracle): Amazon وMicrosoft وAlibaba وRed Hat وBellsoft (التي أسسها أشخاص من مركز تطوير Oracle في سانت بطرسبرغ) وغيرهم. المجموعة الكاملة للتوزيعات متاحة هنا . اتجاهات Java في عام 2022: JDK 18 و19 وProject Loom وData Mesh - 3هناك دائمًا بدائل، لكن Java تجد أفضل استخدام لها في الواجهة الخلفية في تطوير المؤسسات. تختار معظم الشركات الكبرى Java لأنظمتها الكبيرة والمعقدة. الأسباب هي نفسها: عدد المطورين والخبرة في السوق، والنظام البيئي الضخم ومنصة JVM القوية.

ما هي الآفاق المستقبلية للغات JVM الأخرى، وخاصة Kotlin، مقارنة بـ Java؟

أندريه روديونوف:

لفهم لغات JVM الشائعة، ما عليك سوى فتح الوثائق الخاصة بـ Spring وMicronaut وVert.x ومعرفة اللغات التي يتم تقديم أمثلة التعليمات البرمجية بها - ستكون Java وKotlin شائعة. لا يمكن القول أن هناك انتقالًا هائلاً للمشاريع إلى Kotlin، لكن شعبيتها في الواجهة الخلفية تستمر في النمو وتحاول العديد من الأطر دمجها في نظامها البيئي. أما بالنسبة لـ Scala، فقد تم إطلاق إصدارات جديدة، ويتم استخدامها بشكل نشط في تعلم الآلة ومعالجة البيانات وحيث يكون نموذج البرمجة الوظيفية أكثر ملاءمة.

أوليغ تسال تسالكو:

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

هل سيكون هناك انخفاض في جودة Java بسبب قصر فترات الإصدار؟

أوليغ تسال تسالكو:

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

هل هناك ميزات في الإصدارات الجديدة من Java ذات أهمية خاصة للمطورين؟

أوليغ تسال تسالكو:

قدمت الإصدارات الحديثة من Java العديد من الميزات المثيرة للاهتمام مثل مطابقة الأنماط والفئات المختومة والسجلات. أوصي بالنظر إلى قدراتهم. بالطبع، تم التخطيط للميزات الأكثر خطورة والمتوقعة ضمن Project Loom وProject Valhalla، لكنني أعتقد أنه سيتم إصدار الميزات ضمن هذه المشاريع أيضًا بشكل تدريجي.

إطار الربيع: هل سيستمر في توسيع نظامه البيئي ليناسب الاحتياجات المتنوعة؟

أندريه روديونوف:

أما بالنسبة لإطار الربيع، فقد ركز تطويره على دعم ميزات Spring Cloud المختلفة والقدرة على تجميع Spring Boot في ثنائيات أصلية - مشروع Spring Native، الذي من المقرر أن يكون جزءًا من Spring Core في المستقبل. في هذا الصدد، تخلف Spring عن Micronaut و Quarkus بسبب الاستخدام النشط للانعكاس وتوليد التعليمات البرمجية الديناميكية. بخصوص Spring Framework 6 أنصحك بمشاهدة تقرير Spring 6 and Beyond ما الجديد في Spring Framework 6؟ من مؤتمر جوكر (من أوليغ دوكوكا وأليكسي نيستيروف). أهمها هي الانتقال إلى JDK 17، والتخلي عن تكوين XML وAutowire من خلال أدوات الضبط، ومواصلة تطوير دعم Kotlin ومشروع Spring Fu.

أوليغ تسال تسالكو:

الربيع، باعتباره Java FW الأكثر شعبية في الوقت الحاضر، لا يريد التخلي عن راحة يده. أنا متأكد من أن فريق التطوير سيبذل قصارى جهده في تطوير الربيع. الربيع يملأ المزيد والمزيد من المنافذ. على سبيل المثال، قام Spring بالكثير في مجال التدفقات التفاعلية/البرمجة التفاعلية من خلال مفاعل المشروع الخاص به. الآن يقومون بالترويج لبروتوكول RSoket، والذي يبدو واعدًا أيضًا.

أخبرنا عن مشروع Loom: ما الغرض منه وما هي المشكلات التي يحلها؟

أندريه روديونوف:

من المحتمل أن يكون Project Loom هو الابتكار الأكثر إثارة للاهتمام، والذي يمكن أن يصبح تحولًا جذريًا جديدًا لمنصة JVM بأكملها وجميع اللغات الموجودة أعلى JVM. قد لا يؤثر Project Loom على المطورين العاديين كثيرًا، لكنه سيؤثر بالتأكيد على النظام البيئي بأكمله والمكتبات والأطر ولغات JVM الأخرى التي تستخدم تعدد مؤشرات الترابط. يقدم Project Loom تجريدًا جديدًا للخيوط - الخيوط الافتراضية (المشابهة لـ coroutines). إذا كان مؤشر ترابط Java سابقًا مرتبطًا مباشرة بمؤشر ترابط نظام التشغيل (OS)، وأدى إنشاء مؤشر ترابط جديد في Java إلى إنشاء مؤشر ترابط جديد لنظام التشغيل، فمع سلاسل الرسائل الافتراضية يتم كسر هذه العلاقة الفردية. عند إنشاء مؤشر ترابط افتراضي جديد، لن يتم إنشاء مؤشر ترابط نظام تشغيل جديد، وسيتم إعادة استخدام أحد ما يسمى بسلاسل الرسائل الحاملة (نوع من التناظرية لتجمع مؤشرات ترابط نظام التشغيل) لإجراء حسابات مباشرة. وبالتالي، يمكن تشغيل عدة سلاسل رسائل افتراضية فوق مؤشر ترابط واحد لنظام التشغيل. بالنسبة لمهام الحوسبة، فإن هذا النموذج من الخيوط الافتراضية لا يوفر أي مزايا، بل يبطئ من سرعة العمليات الحسابية، ولكن بالنسبة لعمليات الحظر، مثل معالجة طلبات HTTP، أو انتظار الاستجابات من قاعدة البيانات أو من الخدمات المصغرة، سيكون هذا النموذج بمثابة نموذج ميزة كبيرة. الحقيقة هي أنه مع نموذج الترابط الحالي، أدى الحظر/الانتظار على سلاسل رسائل Java إلى سلاسل عمليات نظام التشغيل الخاملة - وكان هذا مضيعة للموارد ويتطلب إنشاء المزيد من سلاسل عمليات نظام التشغيل. في نموذج الخيط الافتراضي، سيؤدي حظر/انتظار الخيط الظاهري إلى تحرير الخيط الناقل الذي كان يعمل الخيط الظاهري فوقه وتشغيل خيط افتراضي آخر عليه. بهذه الطريقة، سيتم استخدام سلاسل عمليات نظام التشغيل على نحو أمثل وستكون هناك حاجة لعدد أقل منها لأداء مهام مماثلة. وبناء على ذلك، سيتعين على الشركات المصنعة للمكتبات والأطر ولغات JVM تكييف التعليمات البرمجية الخاصة بها مع المواضيع الافتراضية. لذلك، هناك إعادة كتابة كبيرة بالنسبة لهم :) بالإضافة إلى نموذج الخيط الافتراضي، من المخطط أيضًا تقديم واجهة برمجة تطبيقات جديدة لتبسيط تنسيق الخيط - ما يسمى بالتزامن المنظم. الآن، على سبيل المثال، يتم استخدام التزامن المنظم بشكل نشط في coroutines Kotlin وScala ZIO. لسوء الحظ، لا يزال إصدار JDK وحتى سنة إصدار Project Loom غير معروفين. وعندما سُئل عن تاريخ الإصدار، أجاب كبير مهندسي منصة جافا، بريان جويتز، بعبارة فلسفية: "ستكون جاهزة، عندما تكون جاهزة". لذلك، نحن في انتظار ويمكننا تجربة الإصدارات التجريبية من Project Loom .

أوليغ تسال تسالكو:

Loom هو مشروع شامل كبير، يعمل ضمنه فريق OpenJDK وOracle على ابتكارات التزامن في Java وJVM: الخيوط الافتراضية والألياف والاستمرارية. على الأرجح، سيكون إصدار هذه الميزات تدريجيًا. في الوقت الحالي، لا يوجد سوى إصدارات الوصول المبكر لدعم المواضيع الافتراضية. عند الحديث عن الخيوط الافتراضية على وجه التحديد، فإن هدفها الرئيسي هو تبسيط نموذج التطوير متعدد الخيوط في Java باستخدام ملايين الخيوط خفيفة الوزن التي لها نفس دلالات سلاسل العمليات العادية في النظام الأساسي. تحت الغطاء، ستتم إدارة هذه المواضيع داخل ForkJoinPool وإعادة استخدامها بواسطة مؤشرات ترابط النظام الأساسي.

ما هي التوقعات لتطوير Java في عالم الاتجاهات العالمية - الخدمات الصغيرة، والهندسة السحابية، و blockchain، والذكاء الاصطناعي؟

أندريه روديونوف:

إذا تحدثنا عن الاتجاهات العالمية، فإنها لم تتغير كثيرا. كما كان من قبل، لا يزال الاتجاه الرئيسي هو Kubernetes والبنية التحتية المحيطة به في شكل شبكة الخدمة . تكتسب شبكة البيانات أيضًا شعبية كنوع من التجريد لإدارة مصادر البيانات الموزعة ومخازنها.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION