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

زبان جاوا از زمان عرضهٔ جی‌دی‌کا ۱٫۰ تغییرات بیشماری را پشت سر گذاشته‌است که شامل اضافه‌شدن کلاس‌هایی به کتاب‌خانه‌ی استاندارد آن بوده‌است. از زمان J2SE ۱٫۴ توسعهٔ جاوا بر عهدهٔ فرایند جمعیت جاوا (ف.ج. ج) قرار گرفته‌است که از *درخواست‌های خصوصیات جاوا* (جی‌اس‌آرها) برای ارایهٔ و تعیین تغییرات صورت گرفته بر روی سکوی جاوا استفاده می‌نماید.

علاوه بر تغییرات زبان، تغییرات زیادی در طول سالیان متمادی بر روی کتابخانهٔ جاوا صورت گرفته‌است. از چند صد کلاس در جاوا ۱٫۰ به بیش از هزاران کلاس در جاوای نگارش استاندارد ۵٫۰ رسیده‌است. تمام رابط‌های برنامه‌نویس کاربردی مانند سوینگ و جاوای دوبعدی به جاوا اضافه شده و بسیاری از کلاس‌های جی‌دی‌کا ۱٫۰ بازنشسته شده‌اند. برخی از برنامه به کابرانش این اجازه را می‌دهد تا برنامه‌ها را از یک نگارش سکوی جاوا به نگارش‌های قدیمی‌تر تبدیل نمایند. برای مثال تبدیل برنامه‌ایی از جاوا ۵٫۰ به جاوای نگارش ۱٫۴ که به آن عقبگرد جاوا می‌گویند.

## جی‌دی‌کا ۱٫۰ (۳ بهمن ۱۳۷۴)
با نام رمزی *[[اوآک (زبان برنامه‌نویسی)|اواآک]]*  انتشار آغازین بود. اولین انتشار پایدار به نام جاوا ۱٫۰ صورت گرفت.

## جی‌دی‌کا ۱٫۱jdk (۱ اسفند ۱۳۷۵)
اضافه‌شدن‌هایی عظیمی صورت گرفت، از قبیل:
* تجهیز وسیع به مدل رویدادی ای‌دبلیوتی
* امکان کلاس‌های داخلی به زبان اضافه شد
* جاوابینز
* جی‌بی‌بی‌سی
* آرام‌آی
* بازتاب که با تنها از درون‌گرایی حمایت می‌نماید و هیچ تغییر در زمان اجرا ممکن نیست.

## جی۲ اس‌ایی ۱٫۲ (۱۷ آذر ۱۳۷۷)
این کیت توسعه با نام رمزی زمین بازی  عرضه شد. این نگارش و انتشارهای بعدی بعدی آن تا زمان J2SE ۵٫۰ با نام **جاوا ۲** و نامِ نگارشی J2SE (سکوی ۲ جاوا، نگارش استاندارد) برای ایجاد تمایز بین سکوی پایه از سکوی جاوا، نسخه سازمانی، سکوی جاوا، نسخه میکرو مزین گردید. سایر تغییرات اساسی عبارتند از:
* کلمهٔ کلیدی `[[strictfp]]`
* رابط برنامه‌نویسی سوینگ به کلاس‌های هستهٔ جاوا اضافه شد
* ماشین مجازی جاوا برای اولین بار به ترجمه در زمان مجهز شد
* افزونه جاوا
* جاوا ای‌دی‌ال، زبان توصیف رابط که با همکاری کوربا پیاده‌سازی شد.
* چارچوب مجموعه

## جی۲ اس‌ایی ۱٫۳ (۱۹ اردیبهشت ۱۳۷۹)
با نام رمزی **کسترل**. تغییرات مهم عبارتند از:
* ماشین مجازی جاوا (م.م. ج) هات اسپات (م.م. ج هات‌اسپات در فروردین ۱۳۷۸ برای م.م. ج J2SE 1.2 عرضه شد)
* آرام‌آی برای پشتیبانی از کوربا
* صدا جاوا
* کلاس‌های پروکسی ترکیبی
* جی‌ان‌دی‌آی در هسته مستقر شد (قبلاً به صورت افزونه بود)
* جی‌دی‌پی‌ای

## جی۲ اس‌ایی ۱٫۴ (۱۷ بهمن ۱۳۸۰)
**مرلین** نام رمزی این انتشار بود. اولین انتشار جاوا بود که تحت فرایند جمعیت جاوا در قالب جی‌اس‌ار ۵۹ منتشر شد. تغییرات عمدهٔ آن عبارتند بودند از:

**تغییران زبان**
* `[[assert]]` (اعلان) به عنوان کلمهٔ کلیدی اضافه‌شد (در جی‌ای‌ار ۴۱ شرح داده شده‌است)
**بهبود کتابخانه**
* زنجیره استثنا که اجازهٔ می‌هد تا یک استثنا در پایین‌ترین سطح کپسوله شود
* عبارات باقاعده که بعد از زبان پرل مدلسازی شد
* پشتیبانی از ای‌پی‌وی۶
* عدم جلوگیری از ان‌ای‌او (در جی‌اس‌ار ۵۱ توصیف شده‌است)

## جی۲ ای‌ایی ۵٫۰ (۹ مهر ۱۳۸۳)
نام رمزی **ببر** ****، که با عدد ۱٫۵ نمایش داده می‌شود. این نگارش تحت جی‌اس‌ار ۱۷۶ توسعه داده‌شد. این نگارش در تاریخ ۲۰ فروردین ۱۳۸۷ به پایان عمر خود رسید و از تاریخ ۱۲ آبان ۱۳۸۸ دیگر مورد پشتیبانی قرار نگرفت. تغییرات زیادی در ویژگی‌های زبانیِ این نگارش صورت گرفت
* عمومی سازی: به مجموعه‌ها امکان ترجمهٔ در زمان (ایستا) را داده و اطمینان نوع را با حذف تبدیل نوع را می‌دهد. (در جی‌اس‌ار ۱۴ شرح داده‌شده‌است)
* فرا داده: که یادداشت جاوا نیز نامیده می‌شود. این ویژگی به زبان این امکان را می‌دهد تا سازندهٔ کلاس و متدهای به فراداده‌هایی پیوست شده که می‌توانید توسط ابزارهای خاصی مورد پردازش قرار گیرند. (در جی‌اس‌ار ۱۷۵ شرح داده‌شده‌است).
* بهبود حلقهٔ `for each` : عبارت حلقهٔ `for` به صورت خاصی توسعه داده‌شد تا بتواند برای هر عضو از آرایه یا هر چیز قابل پیمایشی مانند مجموعه، شناسایی نموده و عملیات را بر روی آن‌ها انجام دهد.

```java5
void displayWidgets (Iterable<Widget> widgets) {
     for (Widget w: widgets) {
         w.display();
     }
}
```


## جاوا ای‌ایی ۶(۲۰ آذر ۱۳۸۵)
نام رمز **اسب وحشی** .
از این نگارش به بعد عبارت جی۲اس‌ایی به عبارت **جاوا اس‌ایی** جایگزین شد(J2SE به **Java SE** تبدیل شد) و از بخش عددی نگارش، «.۰» حذف شد.
اگرچه روش شماره‌گذاری به منظور توسعه به همان روش سابق باقی‌ماند، ۱٫۶٫۰. این نگارش تحت جی‌اس‌ار ۲۷۰ توسعه یافت.
در طول فاز توسعه، کارهای جدیدی از قبیل بهبود و یافتن خطا و رفع آن‌ها صورت گرفت. این کار به صورت هفته‌ای انجام شد. نگارش بتا، در بهمن ۱۳۸۴و خرداد ۱۳۸۵ منتشر شد. این رویه تا ارایهٔ کامل در تاریخ ۱۱ آذر ۱۳۸۵ ادامه یافت. نگارش کنونی که روزآمدی ۲۶م است در خرداد ۱۳۹۰ منتشر شد تغییرات عمدهٔ صورت گرفته در این نگارش عبارتند از:
* پشتیبانی از نگارش‌های ویندوز۹.X متوقف شد. به صورت غیررسمی روزآمدی هفتم نگارش ۶، آخرین جاوایی بود که بر روی آن‌های کار می‌کرد.
* بهبود شگفت‌انگیز در هستهٔ برنامه و سوینگ.
* پشتیبانی از جی‌دی‌بی‌سی (جی‌اس‌از ۲۲۱)
* بهبودهای چشمگیر در واسط گرافیکی که از آن میان می‌توان به سوینگ‌ورکر در رابط برنامه‌نویسی اشاره نمود، اعمال فیلتر و مرتب‌سازی در جداول.
* بهبود جی‌وی‌ام: افزایش کارایی در همزمان سازی و ترجمه و نیز ارائه یک الگوریتم جدید به همراه بهینه‌سازی زباله‌جمع کن از دیگر بهبود سازی‌های صورت گرفته بود. افزایش کارایی برنامه در زمان اجرا نیز از تغییرات مهم بود.

## جاوا اس‌ایی ۷ (۶ مرداد ۱۳۹۰)
جاوا ۷ با کد رمزی **دولفین** 
تغییر مهمی بود که در تاریخ جاوا در روز ۱۶ تیر سال ۱۳۹۰ از سوی اوراکل صورت گرفت. 
و از تاریخ ۶ مرداد در دسترس علاقه‌مندان قرار گرفت. 
زمان توسعه در ۱۳ مرحلهٔ اساسی تقسیم شد، که در ۲۹ بهمن ۱۳۸۹ آخرین مرحلهٔ اساسی خود را طی نمود 
فهرست ویژگی‌های جاوا ۷:
* ماشین مجازی جاوا امکان پشتیبانی از زبان برنامه‌نویسی پویا را ایجاد نمود. کاریی مکه هم‌اکنون از سوی ماشیت مجازی چندزبانی صورت می‌گیرد.
* فشرده‌سازی اشاره‌گرهای ۶۴-بیتی  
که در جاوا ۶ با استفاده از -XX:+UseCompressedOops امکان‌پذیر است.

**تغییرات زبان** 
:
:* استفاده از رشته  در سویچ  () که از ۱۰ سال پیش قول آن داده شده‌بود.
:* مدیریت خودکار منابع در عبارات try-catch
:* بهبود در رابط عمومی‌سازی ایجاد نمونه‌ها  
:* ساده‌سازی فراخوانی متغیرهای آرگومانی متدها 
:* لیترال‌های عددی دودویی 
:* کش کردن چندین استثنا و باز پرتاب آن‌ها به کنترل نوع مناسب 

## جاوا اس‌ایی ۸ (۹۲–۱۳۹۱)
جاوا ۸ اواخر سال ۲۰۱۲(۱۳۹۲) منتشر شد. و حداقل شامل ویژگی‌هایی بود که در جاوا ۷ قول داده‌شده بود ولی عملی نشد.
* پیمانه‌ای نمودن جی‌دی‌کا تحت پروژه جیگ‌ساو  این انتشار شامل ویژگی‌هایی بود که برای نسخهٔ ۷ برنامه‌ریزی شده اما بعداً حذف و در این نسخه منتشر شد.
* JSR 335 و JEP 126: شاملِ پشتیبانی در سطح زبان برایِ عبارات لامبدا که به صورت رسمی «عبارات لامبدا» نام گرفته ولی به صورت غیررسمی از آن به عنوانِ کلژور تحت پروژهٔ لامبدا یاد می‌شود. و متدهای پیشفرض (متدهای افزونهٔ مجازی) که ارث‌بری چندگانه در جاوا را ممکن می‌سازد. این موضوع موجب بحث‌هایی در جامعهٔ جاوا شد که آیا اساساً لامبدا به جاوا اضافه شود یا خیر. سان بعداً اعلام کرد که بعدا عبارات جاوا در جاوا قرار خواهد کرد و در اینباره از جامعه جاوا نظر خواهی خواهد کرد. پشتیبانی از لامبدا همچنین اجازه می‌دهد تا عملیات‌هایی تابع-مانند بر روی المان‌های مانندِ نگاشت‌کاهش که تبدیلاتی بر روی مجموعه را فراهم کرد. متدها پیش‌فرض این امکان را فراهم می‌کند که نویسندهٔ API (فاصل برنامه کمکی) متدهایی را به فاصل اضافه نماید بدون آنکه کد قبلی دستکاری شود.

## جاوا اس‌ایی 10 (۹6–۱۳۹5)
جاوا 10 اواخر سال 2016(۱۳۹5) منتشر شد. و حداقل شامل ویژگی‌هایی بود که در جاوا 9 قول داده‌شده بود ولی عملی شد.

* پیمانه‌ای نمودن جی‌دی‌کا تحت پروژه جیگ‌ساو  این انتشار شامل ویژگی‌هایی بود که برای نسخهٔ 8 برنامه‌ریزی شده اما بعداً حذف و در این نسخه منتشر شد.
* JSR 335 و JEP 126: شاملِ پشتیبانی در سطح زبان برایِ عبارات لامبدا که به صورت رسمی «عبارات لامبدا» نام گرفته ولی به صورت غیررسمی از آن به عنوانِ کلژور تحت پروژهٔ لامبدا یاد می‌شود. و متدهای پیشفرض (متدهای افزونهٔ مجازی) که ارث‌بری چندگانه در جاوا را ممکن می‌سازد. این موضوع موجب بحث‌هایی در جامعهٔ جاوا شد که آیا اساساً لامبدا به جاوا اضافه شود یا خیر. سان بعداً اعلام کرد که بعدا عبارات جاوا در جاوا قرار خواهد کرد و در اینباره از جامعه جاوا نظر خواهی خواهد کرد. پشتیبانی از لامبدا همچنین اجازه می‌دهد تا عملیات‌هایی تابع-مانند بر روی المان‌های مانندِ نگاشت‌کاهش که تبدیلاتی بر روی مجموعه را فراهم کرد. متدها پیش‌فرض این امکان را فراهم می‌کند که نویسندهٔ API (فاصل برنامه کمکی) متدهایی را به فاصل اضافه نماید بدون آنکه کد قبلی دستکاری شود.

## جستارهای وابسته

* سکوی جاوا

## منابع

## پیوند به بیرون
* فهرست کامل تغییرات جاوا استاندارد ۱٫۳
* فهرست کامل تغییرات جاوا استاندارد ۱٫۴
* فهرست کامل تغییرات جاوا استاندارد ۵
* فهرست کامل تغییرات جاوا استاندارد ۶
* سایت توسعهٔ موستانگ جاوا ۶
* نکات انتشار جاوا استاندارد ۷
* نگارش‌های مورد پشتیبانی سان و ایی‌اوال
* آرشیو بارگذاری نگارش‌های قدیمی جاوا

رده:پلت‌فرم جاوا
رده:تاریخچه نرم‌افزار
رده:جاوا