شرحی بر خبر حذف JavaFX از نسخۀ 11 جاوا

پنجم مارس 2018، اوراکل، گزارشی رسمی با عنوان Java Client Roadmap Update منتشر کرده و در آن برنامۀ بلندمدت خود در مورد Appletها، Java Web Start، JavaFX و همچنین Swing و AWT را اعلام کرد. پس از نگاهی گذرا به این گزارش، به ریشهیابی تصمیم اوراکل در این زمینه خواهیم پرداخت.
در گزارش مذکور آمده است:
بازار توسعۀ نرمافزارها در دهۀ گذشته به شدت تغییر کرده است. در سمت کاربر طراحیهای mobile‑first با HTML5 و JS کاملا رایج شده. نرمافزارها به سمت استفاده از فضای ابری و containerها، طراحی ماژولار و میکروسرویس کشیده شدهاند. توسعهدهندگان ترجیح میدهند از پلتفرمهایی استفاده کنند که بهروزرسانیهای متنباز و متوالی ارائه میکنند.
به منظور برآورده کردن این انتظارات، اواکل تصمیم گرفت نسخههای مختلف جاوا را بر اساس مدلی به نام strict time‑base منتشر کند. بر اساس این برنامه، OpenJDK هر شش ماه و تحت لایسنس GPLv2 عرضه خواهد شد. در چنین شرایطی میتوان تصمیمهای جدیدی در مورد تکنولوژیهای سمت کاربر گرفته و نقشۀ راه جدیدی برای توسعۀ آنها ارائه کرد.
سپس، در این گزارش، برنامههای اوراکل برای تکتک بستههای نرمافزاری سمت کاربر شرح داده میشود. در بخش مربوط به JavaFX آمده است:
توسعۀ JavaFX از سال 2005 شروع شده و به صورت رسمی در کنفرانس JavaOne 2007 از آن رونمایی شد. اوراکل این بسته را در سال 2011 و با نام OpenJFX کاملا متنباز نمود و هماینک نیز به توسعۀ متنباز آن ادامه میدهد. در سالهای اخیر JavaFX به لطف داشتن جامعۀ توسعهدهندگان مشتاق، جایگاه مناسبی یافته است. اما به تدریج و با اولویت یافتن طراحی اپلیکیشنها با دیدگاه mobile‑first و web‑first، تمام ابزارهای تولید واسط کاربری چندپلتفرمی در حال از دست دادن سهم خود از بازار هستند.
با در نظر گرفتن این نکات، خلاصۀ برنامۀ اجرایی اوراکل در مورد JavaFX به این شرح است:
- نسخۀ استاندارد جاوا 8 تا ژانویۀ 2019 برای عموم در دسترس بوده و توسط اوراکل پشتیبانی و بهروز خواهد شد. همچنین پشتیبانیها برای استفادههای شخصی (و نه شرکتها) تا اواخر 2020 ادامه خواهد داشت.
- بهروزرسانیها و پشتیبانی از JavaFX بر روی نسخۀ استاندارد جاوا 8 تا مارس 2022 ادامه خواهد داشت. هر چند این بسته از نسخۀ 11 جاوا حذف خواهد شد.
- اوراکل با در نظر گرفتن موعدهای زمانی مذکور، شروع به رایزنی با مجموعههای مشتاق در اکوسیستم جاوا کرده و قصد دارد کنترل و سازماندهی Swing، JavaFX و AWT را به متقاضیان داوطلب بسپارد.
دو روز پس از انتشار این گزارش رسمی، دونالد اسمیت[1]، مدیر ارشد تولید محصول در شرکت اوراکل طی مقالهای در بخش blog سایت اوراکل مینویسد:
اوراکل قصد دارد با جدا کردن JavaFX از JDK 11 دانلود و به کارگیری آن را سادهتر کند. انتظار میرود این جداسازی به استفادهکنندگان از JavaFX آزادی و انعطاف بیشتری دهد.
تفکیک این دو، راه را برای توسعهدهندگان JavaFX تحت پروژۀ OpenJFX روشن خواهد نمود. در شرایطی که توالیهای شش ماهه برای انتشار OpenJDK پیشبینی شده است، OpenJFX میتواند سرعت توسعه و انتشار مناسب خود را با توجه به حجم مشارکتهای انجام گرفته توسط برنامهنویسانی از اوراکل و دیگر جامعۀ کاربران پیدا کند.
با پیادهسازی JPMS در جاوا 9، تفکیک مذکور آسانتر شده است.
اندرو بینستاک[2]، سرمقالۀ شمارۀ ویژۀ مارس و فوریۀ Java Magazine را به همین موضوع اختصاص داده به تحلیل مسئله پرداخته است. این مقاله حاوی نکات جالبی است. در ادامه میتوانید به مطالعۀ آن بپردازید.
تغییر نماد رایانه
JavaFX و دیگر تکنولوژیهای دسکتاپ، خود را با تغییرات جهان وفق میدهند
دیگر بر کسی پوشیده نیست که در ده سال گذشته، سهم محاسبات با دستگاههای رومیزی به مقدار قابل توجهی تغییر یافته است. پیش از عرضۀ وباپلیکیشنها و رواج دستگاههای موبایل، دستگاههای رومیزی نماد مواجهه با کاربر بودند. تمام زبانهای مهم برنامهنویسی، کتابخانههایی برای ایجاد واسطهای گرافیکی عرضه میکردند. جاوا تکنولوژیهایی مانند Swing و بعدها JavaFX و همچنین SWT را[3] ارائه نمود. C بستۀ GTK و ++C بستۀ Qt را داشت. مایکروسافت نیز بستههای گوناگونی برای ویندوز عرضه نمود. کاهش سهم کامپیوترهای شخصی از بازار، تاثیر خود را در افزایش طراحیهای موبایلمحور، نشان میدهد. بسیاری از تکنولوژیهای واسط گرافیکی برای PC در واقع ابتدا برای موبایلها طراحی شده و از آنجا برای دستگاپها تغییر و ارتقا داده میشوند. ویندوز 10 یک مثال آشکار از این موضوع است.
عموم نرمافزارها را میتوان به دو گروه تقسیم کرد، گروه اول آنهایی هستند که دارای یک واسط گرافیکی کامل و پیچیدهاند و گروه دوم بر پایۀ تکنولوژیهای مربوط به مرورگر (یعنی ترکیب CSS ،HTML5 و JavaScript) توسعه داده میشوند. اکثر مصرفکنندگان، نرمافزارهای گروه اول را ترجیح میدهند، اما به تدریج نرمافزارهای کمی باقی میمانند که ترکیب HTML-CSS و JS نمیتواند نیازهای آنها را برآورده کند. این نرمافزارها با اقتدار در محدودۀ اپلیکیشنهای دسکتاپ باقی میمانند که شامل IDEها، نرمافزارهایی مانند Microsoft Office و مجموعه تولیدات Adobe میشوند. نرمافزارهای علمی دیگری نیز در همین مجموعه قرار میگیرند.
همچنان که Front End نرمافزارهای دسکتاپ بهتر میشود، Back End (تکنولوژیهای سمت سرور) نیز در حال پیشرفت است. نرمافزارهای دسکتاپ در بستههای اجرایی بسیار حجیمی منتشر میشوند، به عنوان مثال Microsoft Office چند گیگابایت و IDEها چندصد مگابایت هستند اما در Back End ایدههای جدید برای برای عرضۀ نرمافزار مورد استفاده قرار میگیرد. به عنوان مثال، در فضای ابری با رواج ایدۀ میکروسرویس، اپلیکیشنها سوار بر Containerها عرضه میشوند، همچنین در پلتفرم موبایل، اجراکنندۀ بستهها یا Runtimeها از کد هر نرمافزار جدا شده و به صورت جداگانه عرضه میشود. در نتیجه حجم نرم افزارها بسیار کوچکتر می شود.
این تغییرات، در کنار کاهش سهم PCها، ناگزیر باعث میشود نقش JavaFX و دیگر تکنولوژیهای مروبوط دسکتاپ مورد بازنگری قرار گیرد.
اوایل مارس، اوراکل اعلام کرد JDK 11 را در ماه سپتامبر منتشر کرده و JavaFX را از این نسخه جدا خواهد کرد. JavaFX هم اکنون نیز متنباز است، اما با این کار روال توسعۀ آن از توسعۀ هستۀ جاوا مستقل میشود. JavaFX در اروپا طرفداران متعهدی یافته است که قطعا از شنیدن این خبر خوشحال خواهند شد.
اما برخی کارشناسان و تحلیلگران خبر را به کنارهگیری اوراکل از تعهدش نسبت به JavaFX تعبیر میکنند.
باید اشارهای به نشست خصوصی Java Champions درست پیش از کنفرانس JavaOne 2016 داشته باشم که در آن جلسه مدیران اجرایی اوراکل اعلام کردند آیندۀ واسط گرافیکی را در تکنولوژیهای وب که با استفاده از JavaScript کدنویسی شدهاند میدانند. هر چند من از طرف اوراکل اظهار نظر نمیکنم اما واضح است این شرکت آیندۀ واسطهای گرافیکی را در تکنولوژیهای دسکتاپ نمیبیند.
همراستا با این مسئله، اوراکل اعلام کرده Java Web Start و Java appletها به تدریج حذف خواهند شد. حذف appletها پیشتر اعلام شده بود اما حالا زمان دقیق را نیز میدانیم؛ هر دو، در نهایت تا مارس 2025 پشتیبانی خواهند شد. Java Web Start نیز از نسخۀ 11 حذف خواهد شد.
هر چند JavaFX جدا میشود (و نه حذف) اما AWT و Swing برای دهۀ آینده بخشی از JDK بوده و پشتیبانی خواهند شد.
روند کلانی که بازار دسکتاپ را در مضیقه قرار داده است، نتایج ناخجستهای به دنبال دارد که عبارت است از نقصان نرمافزارها و فریمورکهای قدرتمند در این حوزه. هرچند JavaFX جان به در برده و احتمالا در شرایط جدیدش بهخوبی توسعه خواهد یافت اما از بین رفتن ابزارها و فریمورکهایی همچون Adobe Flash، Microsoft Silverlight و Mozilla Prism به آیندۀ غیر رقابتی و نه چندان خوبِ واسطهای گرافیکی دسکتاپ خواهد انجامید. در چنین شرایطی، وجود JavaFX با امکانات چندرسانهای قدرتمند و توانایی پشتیبانی از گرافیک سهبعدی مایۀ دلگرمی است، اما امیدوارم در رسالت خود تنها گزینۀ موجود نباشد.
منابع
Java Client Roadmap
blog.oracle.com
Java Magazine April-March 2018
[1] Donald Smith
[2] Andrew Binstock
[3] Eclipse Standard Widget Toolkit
سلام من یک پیشنهاد داشتم می شود مطالبی درباره ی ” تغیرات java 8 را تا java 11 ” در این سایت بگذارید خیلی ممنون سایت بسار مفیدی در زمینه جاوا دارید
سلام
پیشنهاد خوبی است. سعی میکنیم این مطلب را آماده کرده و منتشر کنیم.
با تشکر