تاریخچه زبان برنامه نویسی شیءگرا جاوا (Java)
در ویدئوی آموزشی حاضر به بررسی تاریخچه جاوا از بدو شروع بکار تا زمان انتشار یکی از نسخه های اخیر جاوا پرداخته شده است. در این ویدئو دانش پژوهان با دلیل نامگذاری های زبان برنامه نویسی جاوا آشنایی پیدا می کنند.
فهرست مطالب آموزش
آیا میدانید جاوا تاریخچه ی طولانی دارد؟
جاوا دقیقاً از سال 1991 وقتی شرکت سان ماکروسیستم چیزی به نام پروژه ی سبز را معرفی کرد شروع شد.
هدف جاوا چه بود؟ هدف ایجاده یک زبان برنامه نویسی قابل حمل و قابل جابه جایی جدیدی بصورتِ portable بود. یعنی زبانی که با استفاده از آن بشود برنامه هایی ایجاد کرد که بتوانند روی سیستم عامل های مختلف بدون نیاز به کامپایل و بارگذاری مجدد، اجرا شوند. نام اولیه این زبان Oak به معنای بلوط بود. واین نام را به دلیل وجود درخت بزرگ بلوطی که روبروی پنجره شرکت سازنده شان بود انتخاب کردند. ولی با گذر زمان و وقتی برای بار اول این زبان ریلیز شد اسمش به جاوا تغییر کرد. ظاهراً دلیل انتخاب این نام هم مقدار قهوه ای بود که توسعه دهنده ها در حین کار نوشیده بودند.
جاوا اولین بار در سال 1995 به صورت عمومی منتشر و ریلیز شد و مردم کار با آنرا شروع کردند و با شعار “یکبار بنویس همه جا اجرا کن” یا همون شعارِ آشنایِ Write Once, Run Everywhere که بصورتِ خلاصه وار WORE گفته می شود؛ باعث شد، آرام آرام کار با جاوا بین مردم متداول بشود. مجدد یادآوری می کنیم که هدف از جاوا نوشتن برنامه ای هست که بتوانیم یکبار آنرا کامپایل کنیم و بعد آنرا روی سیستم عامل های یونیکس، سولاریس، ویندوز، مک و سایر سیستم عامل هایی که ماشین مجازی جاوا را پشتیبانی می کنند، اجرا کنیم.
جاوا به سرعت پیشرفت کرد. در سال های اولیه تقریبا هرساله می دیدیم نسخه ی جدیدی از جاوا منتشر می شود. در 1996 شرکت سان اولین کیت توسعه ی جاوا یا JDK کامل را منتشر کرد، که این کیت طیف گسترده ای از کارهای توسعه ای این نرم افزار را پشتیبانی میکرد. درست در سال بعد از آن، برای ورژن 1.1، ماهیت شیء گرایی جاوا همراه با کلاس های داخلی و JavaBeans، API ی JDBC برای ارتباط با پایگاه داده، RMI یا فراخوانی متد از راه دور برای سیستم های توزیع شده، و reflection یا انعکاس برای بهبود قابلیت های پویایی زبان به نرم افزار اضافه شد. اجازه دهید یک توضیحی راجبه RMI و همینطور reflection خدمت شما ارائه بدهیم.
RMI چیست؟
RMI درحقیقت یک رابط برنامه نویسی یا API در جاوا هست، که وظیف آن فراخونی یک متد برای یک شی یا object که در ماشین دیگری قرار دارد هست. این یک تعریف کلی بود و اگر بخواهیم جزئی تر به مطلب بپردازیم میتوانیم یک مدل کلاینت/سرور را در نظر بگیریم که در آن سرور ماشینی هست که متد قابل فرخوانی در آن وجود دارد و کلاینت ماشینی هست که متدی را از سرور فراخوانی میکند. reflection هم در برنامه های جاوا این امکان را فراهم می کنند که در زمان اجرای یک برنامه بتوانید بدون دانستن نام یک کلاس، interface ، فیلد یا متد آنرا فراخوانی کنید و اطلاعاتی در باره آن کسب کنید. کاربرد اصلی Reflection برای ساختن فریم ورک ها است و همچنین ابزاری قدرتمند برای نوشتن برنامه هایی بحساب می آید که می توانند در زمان اجرا تصمیماتی بگیرند.
در سال 1998 نسخه استاندارد جاوا با عنوان J2SE یا Java 2 منتشر شد. نام مستعار این نسخه استاندارد آن را از نسخه ی enterprise یا سازمانی جاوا متمایز کرد.
نسخه سازمانی جاوا
نسخه سازمانیه جاوا فریم وورکی برای ساخت برنامه های تحت وب در مقیاس بزرگ بود. شماره ی نسخه ی Java 2، ورژن 1.2 بود. کمی گیج کننده است، چرا که عدد 2 بعد از حرف j در کلمه J2SE برای سالهای زیادی به همین شکل باقی ماند. ولی نسخه های مختلف با استفاده از اعداد و نقطه ی بین آنها یکی بعد از دیگری نام گذاری شدند. مثل 1.1 ، 1.2 ، 1.3 و غیره.
Java 2 SE 1.2 شامل:
API گرافیکی متحرک یا همان گرافیکِ swing برای ایجاد برنامه های دسکتاپ،
مجموعه ای از فریک وورک ها برای مدیریت عناصر داده چندتایی،
و ابزار جدیدی شامل کامپایلر just in time با مفهوم “فقط در لحظه”
و پلاگین جاوای مبتنی بر مرورگر برای استاندارد سازی جاوا در سراسره برنامه های تحت وب ؛بود.
دو سال بعد J2SE 1.3 ابزار جدیدی شامل HotSpot JVM، یک نسخه ی جدید از ماشین مجازی جاوا، sound API یا رابط صوتی را اضافه کرد و همینطور عمل دیباگیگ را نیز بهبود داد.
در سال 2002 در نسخه ی 1.4 ابزار جدید به این زبان اضافه شد.
و بعد سال 2004، یک اتفاق و تغییر بزرگ برای جاوا رخ داد. J2SE 5.0 منتشر شد که اساسا به عنوان جاوای 1.5 شناخته شد. از این نسخه به بعد جاوا با عنوان های جاوای 5 ، جاوای 6، جاوای 7 ، جاوای 8 و غیره یاد شد.البته همچنان تا به آن لحظه نسخه های جاوا شامل علامت نقطه یا point هستند. بنابراین حتی اگه در حال حاضر می بینید که نسخه ی اخیر جاوا با تگ Java SE 8 برچسب خورده، در حقیقت این موضوع Java SE 1.8 هست.
جاوای 5 یک تغییر اساسی برای این زبان ایجاد کرد. یک ویژگی جدید با نام Generics که مربوط به زمانِ اجرا بود را اضافه کرد که این فی چر به طور کلی همه داده ها شامل مجموعه ها، اعداد، متغیرها، و حلقه های for each را ارتقا داد.
کاربرد generic ها:
اگه بخواهیم در چند جمله کاربرد generic ها را توضیح بدهیم باید بگوییم یک نوع پیاده سازی یک کلاس و یا یک متد با انواع ورودی و خروجی مختلف و تعیین شده در زمان فراخوانی می باشد. یعنی راه حلی هست که شما از طریق آن می توانید نوع برگشتی و یا پارامترهای ورودی متد را تعیین نکنید و آنرا بسپرید به زمان فراخوانی ؛؛ مثلا شما می توانید یک متد تعریف کنید که یک لیست را دریافت کند و آنرا مرتب کند و به سما برگرداند؛ فارغ از اینکه عناصر آن لیست چه نوعی دارند. از نظر دستور زبانی این آخرین تغییر عمده در این زبان بود.
غیر از دستور زبان بقیه چیزها روز به روز ارتقا پیدا کردند. ویژگی هایی که بسته به نوع برنامه نویسی شما، می توانید به دلخواه استفاده بکنید یا نکنید.
در سال 2006 جاوای 6 ظاهر شد. این نسخه عملکرد اتصال به پایگاه داده یا دیتابیس را ارتقا داد. همچنین برنامه نویسی گرافیکی در این نسخه بهتر شد و به علاوه یه تعداد ویژگی های کوچیکی هم به این زبان اضافه کردند. و بعد از آن سرعت تغییر جاوا کند شد.
از سال 2006 تا 2010 شرکت سان ماکروسیستم گهگاهی یک نسخه تعمیر شده از جاوا را منتشر می کرد. مثلاً در همین نسخه 6 جاوا ؛ شاهدِ ریلیزِ آپدیت هایِ 10 و 11 و 12 و غیره؛ بودیم. این چهار سال به همین روال گذشت تا یک نسخه ی اصلی منتشر شد و بعد در سال 2010 شرکت اوراکل شرکت سان ماکروسیستم را با همه ی مشتقاتش که زبان برنامه نویسیه جاوا را هم شامل می شد خرید. بد نیست بدونید در حال حاضر شرکت اوراکل خدماتِ رایگانش را به ایران ارائه نمیکند. شرکت اوراکل در حال حاضر جاوا را به همراه JCP مدیریت میکند.
مفهوم JCP در جاوا:
JCP مخفف Java Community Process به معنای روند جامعه جاوا هست، که توسط شرکت سان پایه ریزی شده بود و بعد از اینکه اوراکل زبان شیءگرای جاوا را از سان مایکروسیستم خرید؛ دوباره تغیرات با سرعتِ بیشتری جهتِ بهبود جاوا از سر گرفته شد.
در سال 2011 ، J2 SE 7 منتشر شد. که شامل تغییرات جدیده چشم گیری در سینتکس این زبان می شد. و لیست این تغییرات در تصویر زیر نمایان شده است. به علاوه ی چندتا ابزار دیگر هم که به این نسخه افزوده شد.
و بعد آخرین ورژن را شاهد هستیم که اخیراً در سال 2014 منتشر شد. یعنی Java SE 8، لامبدا اکسپرشن ها؛ و همچنین شاهد بودیم یک API تاریخ و زمان جدید، ؛؛ به علاوه یکسری بهبود در سینتکس این زبان ؛هم ارائه شد. انتظار می رود جاوا بعدی به نام Java SE 9 در راه باشد. البته برنامه ریزی شده بود تا این نسخه در سپتامبر 2016 منتشر شود بر طبق این برنامه قرار بود یک روش برای پیاده سازی کتابخانه های ران تایم جاوا ارائه بشود که به طور کلی شامل یک برنامه برای یک API ی JSON سبک و کم حجم جدید می شود. ولی بهرحال یکسری ابهامات در این نسخه وجود دارد. نیازی نیست فعلا بدانیم چه چیزهایی قرار هست سر Java SE 9 بیاید چرا که احتمالا تا شش ماه دیگر منتشر می شود و همه چیز را راجب به این نسخه خواهیم فهمید. ولی در حال حاضر آخرین ورژن منتشر شده ی جاوا برای همه ی برنامه ها بکار میره البته به جز اندروید. اگر توسعه دهنده ی اندروید باشید باید ویژگی های جاوای 6 و جاوای 7 را نگاهی بندازید.