JavaRush /جاوا بلاگ /Random-UR /2022 میں جاوا کے رجحانات: JDK 18 اور 19، پروجیکٹ لوم اور ...

2022 میں جاوا کے رجحانات: JDK 18 اور 19، پروجیکٹ لوم اور ڈیٹا میش

گروپ میں شائع ہوا۔
ٹھیک ہے، 2022 شروع ہو گیا ہے. جب کہ زیادہ تر لوگ ابھی بھی نئے سال کی چھٹیوں پر شیمپین اور اولیور کے ساتھ ہیں، ہم جاوا کی دنیا کے رجحانات کے بارے میں بات کریں گے۔ شاید اس سے آپ کو اپنے کیریئر کا تجزیہ کرنے، نئی ٹیکنالوجی سیکھنے، یا آنے والے سال کے لیے ترقیاتی منصوبہ تیار کرنے میں مدد ملے گی۔ 2022 میں جاوا کے رجحانات: JDK 18 اور 19، پروجیکٹ لوم اور ڈیٹا میش - 1جاوا زبان کے ماہر اور لیکچرر آندرے روڈیونوف کے ساتھ ساتھ EPAM کے حل کے معمار اور Devoxx یوکرین پروگرام کمیٹی کے سربراہ Oleg Tsal-Tsalko نے 2022 اور مستقبل قریب میں جاوا کے لیے کیا انتظار کیا اس کے بارے میں بات کی۔

2022 میں جاوا کے کیا امکانات ہیں؟

2022 میں جاوا کے رجحانات: JDK 18 اور 19، پروجیکٹ لوم اور ڈیٹا میش - 2اس سال ہم اگلے دو ورژن کی ریلیز کی توقع کرتے ہیں: JDK 18 (مارچ میں) اور JDK 19 (ستمبر میں)۔ JDK 18 میں زیادہ تر جاوا ڈویلپرز کے لیے ممکنہ طور پر دلچسپ چیزیں شامل ہو سکتی ہیں:
  • بلٹ ان سادہ ویب سرور، بغیر کسی سرولیٹ کنٹینر کے سپورٹ کے، جسے تیز رفتار پروٹو ٹائپنگ اور ٹیسٹنگ کے لیے استعمال کیا جا سکتا ہے، جیسے کہ Python، Ruby، PHP میں ملتے جلتے منی ویب سرورز۔
  • پیٹرن ملاپ میں بہتری جاری ہے۔
جہاں تک JDK 19 کا تعلق ہے، وہاں پہلے سے ہی ایک ابتدائی رسائی کی تعمیر موجود ہے، لیکن ابھی تک اس کی کوئی سرکاری فہرست موجود نہیں ہے کہ اس میں کیا شامل کرنے کا منصوبہ ہے۔ میں یقین کرنا چاہوں گا کہ JDK 19 کم از کم پروجیکٹ لوم کا پہلا مستحکم پروٹو ٹائپ شامل کرے گا، جس کے لیے حال ہی میں مسودہ کی وضاحتیں سامنے آئی ہیں اور جس کی تازہ ترین تعمیر JDK 19 پر مبنی ہے۔ ہم ذیل میں پروجیکٹ لوم کے بارے میں مزید تفصیل سے بات کریں گے۔

کن علاقوں کے لیے جاوا واحد حل ہے، اور یہ کہاں افضل ہے؟

آندرے روڈیونوف:

خوش قسمتی سے، ہم یہ نہیں کہہ سکتے کہ کسی بھی شعبے کے لیے جاوا کا کوئی متبادل نہیں ہے، لیکن ہم جاوا کے بارے میں انٹرپرائز ایپلی کیشنز، بیک اینڈز اور مائیکرو سروسز تیار کرنے کے لیے ایک قسم کے سنہری معنی کے طور پر بات کر سکتے ہیں۔ مختلف وینڈرز (اوریکل کے علاوہ): ایمیزون، مائیکروسافٹ، علی بابا، ریڈ ہیٹ، بیل سوفٹ (سینٹ پیٹرزبرگ میں اوریکل ڈویلپمنٹ سینٹر کے لوگوں کے ذریعہ قائم کردہ) اور دیگر کی طرف سے مختلف JDK تقسیم کی بڑھتی ہوئی تعداد کو بھی قابل توجہ ہے۔ تقسیم کا مکمل سیٹ یہاں دستیاب ہے ۔ 2022 میں جاوا کے رجحانات: JDK 18 اور 19، پروجیکٹ لوم اور ڈیٹا میش - 3ہمیشہ متبادل ہوتے ہیں، لیکن جاوا کو انٹرپرائز ڈویلپمنٹ میں بیک اینڈ پر اپنا سب سے بڑا استعمال ملتا ہے۔ زیادہ تر بڑی کمپنیاں اپنے بڑے اور پیچیدہ نظاموں کے لیے جاوا کا انتخاب کرتی ہیں۔ وجوہات ایک جیسی ہیں: مارکیٹ میں ڈویلپرز کی تعداد اور مہارت، ایک بہت بڑا ماحولیاتی نظام اور ایک طاقتور JVM پلیٹ فارم۔

جاوا کے مقابلے میں دیگر jvm زبانوں، خاص طور پر Kotlin کے لیے کیا امکانات ہیں؟

آندرے روڈیونوف:

یہ سمجھنے کے لیے کہ کون سی JVM زبانیں مقبول ہیں، بس Spring، Micronaut، Vert.x کے لیے دستاویزات کھولیں اور دیکھیں کہ کوڈ کی مثالیں کن زبانوں میں دی گئی ہیں - جاوا اور کوٹلن عام ہوں گے۔ یہ نہیں کہا جا سکتا کہ کوٹلن میں بڑے پیمانے پر منصوبوں کی منتقلی ہو رہی ہے، لیکن بیک اینڈ کے لیے اس کی مقبولیت میں مسلسل اضافہ ہو رہا ہے اور بہت سے فریم ورک اسے اپنے ماحولیاتی نظام میں شامل کرنے کی کوشش کر رہے ہیں۔ جہاں تک اسکالا کا تعلق ہے، نئے ورژن جاری کیے جا رہے ہیں، اور یہ مزید فعال طور پر ایم ایل، ڈیٹا پروسیسنگ، اور جہاں فنکشنل پروگرامنگ پیراڈیم زیادہ آسان ہے کے لیے استعمال کیا جاتا ہے۔

Oleg Tsal-Tsalko:

دیگر JVM زبانیں کافی پرکشش ہیں اور آج کل کسی پروجیکٹ کے لیے کئی پروگرامنگ زبانوں کا استعمال کرنا بالکل معمول کی بات ہے۔ مجھے ایسا لگتا ہے کہ نئی الجھی ہوئی JVM زبانیں جاوا کو بے گھر کرنے کی وجوہات درج ذیل ہیں:
  • وہ اتنے ٹھنڈے نہیں ہیں کہ ہر کوئی انہیں لے جائے اور ان میں بدل جائے۔
  • وہ جاوا کے طور پر ایک ہی طبقہ میں استعمال کیا جاتا ہے.
  • جاوا آہستہ آہستہ دوسری زبانوں سے بہترین لیتا ہے اور بہتر ہوتا جاتا ہے۔

کیا ریلیز کے کم وقفوں کی وجہ سے جاوا کے معیار میں کمی آئے گی؟

Oleg Tsal-Tsalko:

میرے خیال میں نہیں۔ کم از کم اب میں اکثر ریلیز سے زیادہ مثبت چیزوں کی نشاندہی کر سکتا ہوں۔ ہم دیکھتے ہیں کہ نئی ٹھنڈی خصوصیات زیادہ کثرت سے ظاہر ہوتی ہیں۔ اب آپ کو زبان میں کوئی نئی چیز ظاہر ہونے کے لیے 5 سال انتظار نہیں کرنا پڑے گا۔ یقیناً، اب آپ کو جاوا 8 جیسی عظیم الشان ریلیز کی توقع نہیں کرنی چاہیے، کیونکہ خصوصیات اب چھوٹی تکرار میں ظاہر ہوتی ہیں۔

کیا جاوا کے نئے ورژن میں ایسی خصوصیات ہیں جو خاص طور پر ڈویلپرز کے لیے اہم ہیں؟

Oleg Tsal-Tsalko:

جاوا کے حالیہ ورژن نے متعدد دلچسپ خصوصیات متعارف کروائی ہیں جیسے پیٹرن میچنگ، سیل شدہ کلاسز اور ریکارڈز۔ میں ان کی صلاحیتوں کو دیکھنے کی سفارش کروں گا۔ بلاشبہ، پراجیکٹ لوم اور پروجیکٹ والہلا کے اندر سب سے زیادہ سنجیدہ اور متوقع خصوصیات کی منصوبہ بندی کی گئی ہے، لیکن میں سمجھتا ہوں کہ ان منصوبوں کے اندر موجود خصوصیات کو بھی بتدریج جاری کیا جائے گا۔

بہار کا فریم ورک: کیا یہ متنوع ضروریات کے مطابق اپنے ماحولیاتی نظام کو بڑھانا جاری رکھے گا؟

آندرے روڈیونوف:

جہاں تک اسپرنگ فریم ورک کا تعلق ہے، اس کی ترقی نے اسپرنگ کلاؤڈ کی مختلف خصوصیات کو سپورٹ کرنے اور اسپرنگ بوٹ کو مقامی بائنریز میں مرتب کرنے کی صلاحیت پر توجہ مرکوز کی ہے - اسپرنگ کا مقامی پروجیکٹ، جس کا مستقبل میں اسپرنگ کور کا حصہ بننے کا منصوبہ ہے۔ اس سلسلے میں، بہار مائیکروناٹ اور کوارکس سے پیچھے رہ گئی کیونکہ عکاسی کے فعال استعمال اور متحرک کوڈ جنریشن کی وجہ سے۔ بہار کے فریم ورک 6 کے بارے میں، میں آپ کو مشورہ دیتا ہوں کہ رپورٹ دیکھیں Spring 6 اور اس سے آگے Spring Framework 6 میں نیا کیا ہے؟ جوکر کانفرنس سے (اولیگ ڈوکوکا اور الیکسی نیسٹروف سے)۔ اہم چیزیں JDK 17 میں منتقلی، سیٹرز کے ذریعے XML کنفیگریشن اور آٹو وائر کو ترک کرنا، کوٹلن سپورٹ کی مزید ترقی اور سپرنگ فو پروجیکٹ ہیں۔

Oleg Tsal-Tsalko:

موسم بہار، آج کل جاوا کے سب سے مشہور ایف ڈبلیو کے طور پر، ہتھیلی کو ترک نہیں کرنا چاہتا۔ مجھے یقین ہے کہ ترقیاتی ٹیم بہار کی ترقی میں اپنی بہترین کوششیں کرے گی۔ بہار زیادہ سے زیادہ طاقوں کو بھرتی ہے۔ مثال کے طور پر، اسپرنگ نے اپنے پروجیکٹ ری ایکٹر کے ساتھ Reactive Streams/Reactive Programming کے علاقے میں بہت کچھ کیا ہے۔ اب وہ RSoket پروٹوکول کو فروغ دے رہے ہیں، جو کہ امید افزا نظر آتا ہے۔

لوم پروجیکٹ کے بارے میں بتائیں: یہ کس لیے ہے، کن مسائل کو حل کرتا ہے؟

آندرے روڈیونوف:

پروجیکٹ لوم شاید سب سے دلچسپ اختراع ہے، جو پورے JVM پلیٹ فارم اور JVM کے اوپری حصے میں موجود تمام زبانوں کے لیے ایک نئی ٹیکٹونک تبدیلی بن سکتی ہے۔ پروجیکٹ لوم عام ڈویلپرز کو اتنا متاثر نہیں کرسکتا ہے، لیکن یہ یقینی طور پر پورے ایکو سسٹم، لائبریریوں، فریم ورکس اور دیگر JVM زبانوں کو متاثر کرے گا جو ملٹی تھریڈنگ استعمال کرتی ہیں۔ پروجیکٹ لوم نے ایک نیا دھاگہ خلاصہ متعارف کرایا ہے - ورچوئل تھریڈز (کوروٹینز کے مطابق)۔ اگر پہلے جاوا تھریڈ کو براہ راست آپریٹنگ سسٹم (OS) تھریڈ سے جوڑا جاتا تھا، اور جاوا میں ایک نئے تھریڈ کی تخلیق سے ایک نئے OS تھریڈ کی تخلیق ہوتی ہے، تو ورچوئل تھریڈز کے ساتھ یہ ون ٹو ون رشتہ ٹوٹ جاتا ہے۔ ایک نیا ورچوئل تھریڈ بناتے وقت، ایک نیا OS تھریڈ نہیں بنایا جائے گا، اور نام نہاد کیریئر تھریڈز میں سے ایک (OS تھریڈ پول کا کچھ قسم کا اینالاگ) براہ راست حساب کتاب کرنے کے لیے دوبارہ استعمال کیا جائے گا۔ اس طرح، ایک OS تھریڈ کے اوپر کئی ورچوئل تھریڈز چل سکتے ہیں۔ کمپیوٹنگ کے کاموں کے لیے، ورچوئل تھریڈز کا یہ ماڈل کوئی فائدہ نہیں دیتا، بلکہ حساب کی رفتار کو کم کرتا ہے، لیکن بلاکنگ آپریشنز، جیسے HTTP درخواستوں پر کارروائی، ڈیٹا بیس یا مائیکرو سروسز سے جوابات کا انتظار کرنے کے لیے، یہ ماڈل ایک ہو گا۔ اہم فائدہ. حقیقت یہ ہے کہ موجودہ تھریڈنگ ماڈل کے ساتھ، جاوا تھریڈ پر بلاک کرنے/انتظار کرنے سے OS تھریڈز غیر فعال ہو گئے - یہ وسائل کا ضیاع تھا اور مزید OS تھریڈز بنانے کی ضرورت تھی۔ ورچوئل تھریڈ ماڈل میں، ورچوئل تھریڈ پر بلاک کرنے/انتظار کرنے سے وہ کیریئر تھریڈ ختم ہو جائے گا جس کے اوپر ورچوئل تھریڈ چل رہا تھا اور اس پر دوسرا ورچوئل تھریڈ چل رہا تھا۔ اس طرح، OS تھریڈز کو زیادہ بہتر طریقے سے استعمال کیا جائے گا اور اسی طرح کے کاموں کو انجام دینے کے لیے ان میں سے کم کی ضرورت ہوگی۔ اس کے مطابق، لائبریریوں، فریم ورکس اور JVM زبانوں کے مینوفیکچررز کو اپنے کوڈ کو ورچوئل تھریڈز کے لیے ڈھالنا ہوگا۔ اس لیے، ان کے لیے ایک بڑی تحریر آرہی ہے :) ورچوئل تھریڈ ماڈل کے علاوہ، تھریڈ آرکیسٹریشن کو آسان بنانے کے لیے ایک نیا API متعارف کروانے کا بھی منصوبہ ہے - جسے نام نہاد سٹرکچرڈ کنکرنسی کہا جاتا ہے۔ اب، مثال کے طور پر، Kotlin coroutines اور Scala ZIO میں سٹرکچرڈ کنکرنسی فعال طور پر استعمال ہوتی ہے۔ بدقسمتی سے، JDK ورژن اور یہاں تک کہ پروجیکٹ لوم کے ریلیز کا سال ابھی تک نامعلوم ہے۔ جب ریلیز کی تاریخ کے بارے میں پوچھا گیا تو، جاوا پلیٹ فارم کے چیف آرکیٹیکٹ، برائن گوئٹز، ایک فلسفیانہ فقرے کے ساتھ جواب دیتے ہیں: "یہ تیار ہو جائے گا، جب یہ تیار ہو گا۔" لہذا، ہم انتظار کر رہے ہیں اور پروجیکٹ لوم کی تجرباتی تعمیرات کو آزما سکتے ہیں ۔

Oleg Tsal-Tsalko:

لوم ایک بڑی چھتری پراجیکٹ ہے، جس کے اندر اوپن جے ڈی کے اور اوریکل ٹیم جاوا اور جے وی ایم میں کنکرنسی ایجادات پر کام کر رہی ہے: ورچوئل تھریڈز، فائبرز اور تسلسل۔ زیادہ تر امکان ہے کہ ان خصوصیات کی رہائی بتدریج ہو گی۔ اس وقت ورچوئل تھریڈز سپورٹ کے لیے صرف ابتدائی رسائی کی تعمیرات ہیں۔ خاص طور پر ورچوئل تھریڈز کے بارے میں بات کرتے ہوئے، اس کا بنیادی مقصد جاوا میں ملٹی تھریڈڈ ڈویلپمنٹ ماڈل کو آسان بنانا ہے جو کہ باقاعدہ پلیٹ فارم تھریڈز کی طرح سیمنٹکس کے ساتھ لاکھوں ہلکے وزن والے تھریڈز کا استعمال کرتے ہیں۔ ہڈ کے نیچے، ان تھریڈز کا انتظام ForkJoinPool کے اندر کیا جائے گا اور پلیٹ فارم تھریڈز کے ذریعے دوبارہ استعمال کیا جائے گا۔

عالمی رجحانات کی دنیا میں جاوا کی ترقی کے لیے کیا پیشین گوئیاں ہیں - مائیکرو سروسز، کلاؤڈ آرکیٹیکچر، بلاک چین، اے آئی؟

آندرے روڈیونوف:

اگر ہم عالمی رجحانات کی بات کریں تو ان میں زیادہ تبدیلی نہیں آئی ہے۔ پہلے کی طرح، اصل رجحان Kubernetes اور اس کے ارد گرد بنیادی ڈھانچہ سروس میش کی شکل میں جاری ہے ۔ ڈیٹا میش تقسیم شدہ ڈیٹا کے ذرائع اور اسٹوریج کے انتظام کے لیے ایک قسم کے تجرید کے طور پر بھی مقبولیت حاصل کر رہا ہے ۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION