تاریخچه نگارش جاوا

زبان جاوا از زمان عرضه جی‌دی‌کا ۱٫۰ تغییرات بیشماری را پشت سر گذاشته‌است که شامل اضافه‌شدن کلاس‌هایی به کتاب‌خانه‌ی استاندارد آن بوده‌است. از زمان J2SE ۱٫۴ توسعه جاوا بر عهده فرایند جمعیت جاوا (ف.ج. ج) قرار گرفته‌است که از درخواست‌های خصوصیات جاوا (جی‌اس‌آرها) برای ارایه و تعیین تغییرات صورت گرفته بر روی سکوی جاوا استفاده می‌نماید.
علاوه بر تغییرات زبان، تغییرات زیادی در طول سالیان متمادی بر روی کتابخانه جاوا صورت گرفته‌است. از چند صد کلاس در جاوا ۱٫۰ به بیش از هزاران کلاس در جاوای نگارش استاندارد ۵٫۰ رسیده‌است. تمام رابط‌های برنامه‌نویس کاربردی مانند سوینگ و جاوای دوبعدی به جاوا اضافه شده و بسیاری از کلاس‌های جی‌دی‌کا ۱٫۰ بازنشسته شده‌اند. برخی از برنامه به کابرانش این اجازه را می‌دهد تا برنامه‌ها را از یک نگارش سکوی جاوا به نگارش‌های قدیمی‌تر تبدیل نمایند. برای مثال تبدیل برنامه‌ایی از جاوا ۵٫۰ به جاوای نگارش ۱٫۴ که به آن عقبگرد جاوا می‌گویند.
جی‌دی‌کا ۱٫۰ (۳ بهمن ۱۳۷۴)
با نام رمزی اواآک انتشار آغازین بود. اولین انتشار پایدار به نام جاوا ۱٫۰ صورت گرفت.
جی‌دی‌کا ۱٫۱ (۱ اسفند ۱۳۷۵)
اضافه‌شدن‌هایی عظیمی صورت گرفت، از قبیل:
تجهیز وسیع به مدل رویدادی ای‌دبلیوتی
امکان کلاس‌های داخلی به زبان اضافه شد
جاوابینز
جی‌بی‌بی‌سی
آرام‌آی
بازتاب که با تنهااز درون‌گرایی حمایت می‌نماید و هیچ تغییر در زمان اجرا ممکن نیست.
جی۲ اس‌ایی ۱٫۲ (۱۷ آذر ۱۳۷۷)
این کیتتوسعه با نام رمزی زمین بازی عرضه شد. این نگارش و انتشارهای بعدی بعدی آن تا زمان J2SE ۵٫۰ با نام جاوا ۲ و نام نگارشی J2SE (سکوی ۲ جاوا، نگارش استاندارد) برای ایجاد تمایز بین سکوی پایه از سکوی جاوا، نسخه سازمانی، سکوی جاوا، نسخه میکرو مزین گردید. سایر تغییرات اساسی عبارتند از:
کلمه کلیدی strictfp
رابط برنامه‌نویسی سوینگ به کلاس‌های هسته جاوا اضافه شد
ماشین مجازی جاوا برای اولین بار به ترجمه در زمان مجهز شد
افزونه جاوا
جاوا ای‌دی‌ال، زبان توصیف رابط که با همکاری کوربا پیاده‌سازی شد.
چارچوب مجموعه
جی۲ اس‌ایی ۱٫۳ (۱۹ اردیبهشت ۱۳۷۹)
با نام رمزی کسترل . تغییرات مهم عبارتند از:
ماشین مجازی جاوا (م.م. ج)‌هات اسپات (م.م. ج هات‌اسپات در فروردین ۱۳۷۸ برای م.م. ج J2SE 1.2 عرضه شد)
آرام‌آی برای پشتیبانی از کوربا
صدا جاوا
کلاس‌های پروکسی ترکیبی
جی‌ان‌دی‌آی در هسته مستقر شد (قبلا به صورت افزونه بود)
جی‌دی‌پی‌ای
جی۲ اس‌ایی ۱٫۴ (۱۷ بهمن ۱۳۸۰)
مرلین نام رمزی این انتشار بود. اولین انتشار جاوا بود که تحت فرایند جمعیت جاوا در قالب منتشر شد. تغییرات عمده آن عبارتند بودند از:
تغییران زبان
assert (اعلان) به عنوان کلمه کلیدی اضافه‌شد (در شرح داده شدده‌است)
بهبود کتابخانه
زنجیره استثنا که اجازه می‌هد تا یک استثنا در پایین‌ترین سطح کپسوله شود
عبارات باقاعده که بعد از زبان پرل مدلسازی شد
پشتیبانی از ای‌پی‌وی۶
عدم جلوگیری از ان‌ای‌او (در توصیف شده‌است)
جی۲ ای‌ایی ۵٫۰ (۹ مهر ۱۳۸۳)
نام رمزی ببر ، که با عدد ۱٫۵ نمایش داده می‌شود. این نگارش تحت توسعه داده‌شد. این نگارش در تاریخ ۲۰ فروردین ۱۳۸۷ به پایان عمر خود رسید و از تاریخ ۱۲ آبان ۱۳۸۸ دیگر مورد پشتیبانی قرار نگرفت. تغییرات زیادی در ویژگی‌های زبانی این نگارش صورت گرفت
عمومی سازی: به مجموعه‌ها امکان ترجمه در زمان (ایستا) را داده و اطمینان نوع را با حذف تبدیل نوع را می‌دهد. (در شرح داده‌شده است)
فرا داده: که یادداشت جاوا نیز نامیده می‌شود. این ویژگی به زبان این امکان را می‌دهد تا سازنده کلاسو متدهای به فراداده‌هایی پیوست شده که می‌توانید توسط ابزارهای خاصی مورد پردازش قرار گیرند. (در شرح داده‌شده‌است).
بهبود حلقه for each : عبارت حلقه for به صورت خاصی توسعه داده‌شد تا بتواند برای هر عضو از آرایه یا هر چیز قابل پیمایشی مانند مجموعه، شناسایی نموده و عملیات را بر روی آن‌ها انجام دهد.
void displayWidgets (Iterable widgets) {
for (Widget w: widgets) {
w.display();
جاوا ای‌ایی ۶(۲۰ آذر ۱۳۸۵)
نام رمز اسب وحشی .
از این نگارش به بعد عبارت جی۲اس‌ایی به عبارت جاوا اس‌ایی جایگزین شد(J2SE به Java SE تبدیل شد) و از بخش عددی نگارش، «.۰» حذف شد.
اگرچه روش شماره‌گذاری به منظور توسعه به همان روش سابق باقی‌ماند، ۱٫۶٫۰. این نگارش تحت توسعه یافت.
در طول فاز توسعه، کارهای جدیدی از قبیل بهبود و یافتن خطا و رفع آن‌ها صورت گرفت. این کار به صورت هفته‌ای انجام شد. نگارش بتا، در بهمن ۱۳۸۴و خرداد ۱۳۸۵ منتشر شد. این رویه تا ارایه کامل در تاریع ۱۱ آذر ۱۳۸۵ ادامه یافت. نگارش کنونی که روزآمدی ۲۶م است در خرداد ۱۳۹۰ منتشر شد تغیررات عمده صورت گرفته در این نگارش عبارتند از:
پشتیبانی از نگارش‌های ویندوز۹.X متوقف شد. به صورت غیررسمی روزآمدی هفتم نگارش ۶، آخرین جاوایی بود که بر روی آن‌های کار می‌کرد.
بهبود شگفت‌انگیز در هسته برنامه و سوینگ.
پشتیبانی از جی‌دی‌بی‌سی (جی‌اس‌از ۲۲۱)
بهبودهای چشمگیر در واسط گرافیکی که از آن میان می‌توان به سوینگ‌ورکر در رابط برنامه‌نویسی اشاره نمود، اعمال فیلتر و مرتب‌سازی در جدوال.
بهبود جی‌وی‌ام: افزاشی کارایی در همزمان سازی و ترجمه و نیز ارائه یک الگوریتم جدید به همراه بهینه‌سازی زباله‌جمع کن از دیگر بهبود سازی‌های صورت گرفته بود. افزایش کارایی برنامه در زمان اجرا نیز از تغییرات مهم بود.
جاوا اس‌ایی ۷(۶ مرداد ۱۳۹۰)
جاوا ۷ با کد رمزی دولفین تغییر مهمی بود که در تاریخ جاوا در روز ۱۶ تیر سال ۱۳۹۰ از سوی اوراکل صورت گرفت. و از تاریخ ۶ مرداد در دسترس علاقه‌مندان قرار گرفت. زمان توسعه در ۱۳ مرحله اساسی تقسیم شد، که در ۲۹ بهمن ۱۳۸۹ آخرین مرحله اساسی خود را طی نمود
فهرست ویژگی‌های جاوا ۷ :
ماشین مجازی جاوا امکان پشتیبانی از زبان برنامه‌نویسی پویا را ایجاد نمود. کاریی مکه هم اکنون از سوی ماشیت مجازی چندزبانی صورت می‌گیرد.
فشرده‌سازی اشاره‌گرهای ۶۴-بیتی که در جاوا ۶ با استفاده از امکان‌پذیر است.
تغییرات زبان :
استفاده از رشته در سویچ () که از ۱۰ سال پیش قول آن داده شده‌بود.
مدیریت خودکار منابع در عبارات try-catch
بهبود در رابط عمومی‌سازی ایجاد نمونه‌ها
ساده‌سازی فراخوانی متفییرهای آرگومانی متدها
لیترال‌های عددی دودویی
کش کردن چندین استثنا و باز پرتاب آن‌ها به کنترل نوع مناسب
جاوا اس‌ایی ۸ (۹۲–۱۳۹۱)
جاوا ۸ اواخر سال ۲۰۱۲(۱۳۹۲) منتشر شد. و حداقل شامل ویژگی‌هایی بود که در جاوا ۷ قول داده‌شده بود ولی عملی نشد.
پیمانه‌ای نمودن جی‌دی‌کا تحت پروژه جیگ‌ساو این انتشار شامل ویژگی‌هایی بود که برای نسخه ۷ برنامه‌ریزی شده اما بعدا حذف و در این نسخه منتشر شد.
JSR 335 و JEP 126: شامل پشتیبانی در سطح زبان برای عبارات لامبدا که به صورت رسمی «عبارات لامبدا» نام گرفته ولی به صورت غیررسمی از آن به عنوان کلژور تحت پروژه لامبدا یاد می‌شود. و متدهای پیشفرض (متدهای افزونه مجازی) که ارثبری چندگانه در جاوا را ممکن می‌سازد. این موضوع موجب بحث‌هایی در جامعه جاوا شد که آیا اساسا لامبدا به جاوا اضافه شود یا خیر. سان بعدا اعلام کرد که بعداد عبارات جاوا در جاوا قرار خواهد کرد و در اینباره از جامعه جاوا نظر خواهی خواهد کرد. پشتیبانی از لامبدا همچنین اجازه می‌دهد تا عملیات‌هایی تابع-مانند بر روی المان‌های مانند نگاشت‌کاهش که تبدیلاتی بر روی مجموعه را فراهم کرد. متدها پیش‌فرض این امکان را فراهم می‌کند که نویسنده API (فاصل برنامه کمکی) متدهایی را به فاصل اضافه نماید بدون آنکه کد قبلی دستکاری شود.
جاوا اس‌ایی 10 (۹6–۱۳۹5)
جاوا 10 اواخر سال 2016(۱۳۹5) منتشر شد. و حداقل شامل ویژگی‌هایی بود که در جاوا 9 قول داده‌شده بود ولی عملی شد.
پیمانه‌ای نمودن جی‌دی‌کا تحت پروژه جیگ‌ساو این انتشار شامل ویژگی‌هایی بود که برای نسخه 8 برنامه‌ریزی شده اما بعدا حذف و در این نسخه منتشر شد.
JSR 335 و JEP 126: شامل پشتیبانی در سطح زبان برای عبارات لامبدا که به صورت رسمی «عبارات لامبدا» نام گرفته ولی به صورت غیررسمی از آن به عنوان کلژور تحت پروژه لامبدا یاد می‌شود. و متدهای پیشفرض (متدهای افزونه مجازی) که ارثبری چندگانه در جاوا را ممکن می‌سازد. این موضوع موجب بحث‌هایی در جامعه جاوا شد که آیا اساسا لامبدا به جاوا اضافه شود یا خیر. سان بعدا اعلام کرد که بعداد عبارات جاوا در جاوا قرار خواهد کرد و در اینباره از جامعه جاوا نظر خواهی خواهد کرد. پشتیبانی از لامبدا همچنین اجازه می‌دهد تا عملیات‌هایی تابع-مانند بر روی المان‌های مانند نگاشت‌کاهش که تبدیلاتی بر روی مجموعه را فراهم کرد. متدها پیش‌فرض این امکان را فراهم می‌کند که نویسنده API (فاصل برنامه کمکی) متدهایی را به فاصل اضافه نماید بدون آنکه کد قبلی دستکاری شود.
سکوی جاوا