گذشته و بیست سال آینده زبان برنامه نویسی جاوا
پنجشنبه 31 مرداد 1398زبان برنامه نویسی جاوا یکی از بهترین زبان های برنامه نویسی است، دراین مطلب قصد داریم درباره گذشته و آینده زبان برنامه نویسی جاوا صحبت کنیم.
سال 1995 سالی بود که فلاپی ها وارد دنیای ایمیل شدند، Netscape Navigator متولد شد و اولین نسخه از زبان برنامه نویسی جاوا منتشر شد. در دو دهه آینده زبان برنامه نویسی جاوا شاهد انقلاب های زیادی بود که آن را تبدیل به یک زبان چند هسته ای کرد. فضای ابری متولد شد و بعد از آن نیز توسعه نرم افزارها با چند زبان برنامه نویسی مختلف گسترش پیدا کرد. این تحولات باعث پیشرفت های بسیار زیادی شد و امروزه در حالی که بیستمین سال از تولد زبان برنامه نویسی جاوا را جشن می گیریم این تحولات تکامل پیدا می کنند.
مقدمه ای درباره این موضوع
تکامل جاوا به نوعی امروزه یک رنسانس در دنیای برنامه نویسی به شمار می آید، به همین علت ما در این مطلب تصمیم گرفتیم تا کمی بیشتر درباره گذشته، حال و آینده زبان برنامه نویسی جاوا صحبت کنیم. بحث ما به صورت اختصاصی درباره نقش جاوا در دنیای وب خواهد بود. البته ما درباره این موضوع نیز صحبت خواهیم کرد که چگونه مشاغل بزرگ برای مقابله با زبان برنامه نویسی جاوا از زبان های جایگزین آن مانند Ruby، Groovy، اسکالا و Clojure استفاده می کنند.
ما در این مطلب درباره تاریخچه این زبان صحبت خواهیم کرد، در واقع این مطلب یک داستان درباره گذشته، رقابت ها و متن باز بودن و همینطور اجتماع زبان برنامه نویسی جاوا خواهد بود. در واقع این مطلب شامل درس هایی است که شما می توانید در نرم افزارهای سازمان خود پیاده سازی کنید و البته نگاهی نیز به چشم اندازهای آینده خواهید داشت. اجازه دهید نگاهی به بیست سال اول جاوا داشته باشیم.
شروع کار زبان برنامه نویسی جاوا
جاوا در ابتدا به عنوان یک پروژه داخلی در میکرو سیستم های Sun در سال 1990 میلادی آغاز کرد، این شرکت خواستار ایجاد یک زبان برنامه نویسی برای برنامه نویسی مجموعه های تلویزیونی نسل بعدی و کنترل از راه دور بود، اما در اواسط دهه نود مشخص بود انقلاب این زبان برنامه نویسی آغاز شده است. در سال 1995 اینترنت و شبکه جهانی وب در ذهن اکثر مردم یکسان بود. در همان سال یاهو تاسیس شد کتاب های پاول به صورت اینترنتی به فروش رسیدند و بسیاری از سرویس های آنلاین راه اندازی شدند. متناسب با همین اقدامات شرکت Sun نیز اهداف خود را تغییر داد.
جاوا در ماه می سال 1995 منتشر شد و طی 5 ماه بسیاری از شرکت ها مانند Oracle، Toshiba، Mitsubishi، Macromedia و Borland مجوزهای آن را تایید کردند، اما بدون شک مهمترین تایید جاوا توسط شرکت Netscape بود که شامل اجرای رایگان این زبان در مرورگرهای وب بود. در زمان اوج سهم استفاده Netscape از زبان برنامه نویسی جاوا تقریبا 90 درصد بود که این بدان معنا بود که زبان برنامه نویسی جاوا به خوبی پیشرفت می کرد.
زبان برنامه نویسی جاوا در سال های ابتدایی
در همان سال های چند محصول تجاری با استفاده از فناوری Applets در زبان برنامه نویسی جاوا ساخته شد اما قابلیت بک اند و سمت سرور این زبان هرگز از بین نرفت. شعار اصلی این زبان این بود که یک بار برنامه خود را بنویسید و همه جا آن را اجرا کنید. این زبان علاوه بر این از مدیریت خودکار حافظه و همینطور قابلیت جلوگیری از ارورهای buffer overflow بهره مند بود، به همین علت بازخورد آن در میان برنامه نویسان بسیار مناسب بود.
پیشرفت های بسیار بزرگ زبان برنامه نویسی جاوا
با بالغ تر شدن جاوا و همینطور سریع تر، ایمن تر و قابل اطمینان تر شدن آن شرکت sun یک کامپایلر Just-In-Time و همینطور کتابخانه های کالکشن، کتابخانه های دیتابیس و APi های گرافیکی سوینگ را به آن اضافه کرد. نتیجه این کار این شد که زمان اجرای کدها به میزان زیادی بهبود پیدا کرد که منجر به انتشار Java 1.2 Micro Edition که یک ابزار فوق العاده ران تایم برای گوشی های موبایل بود شد.
با این حال بعد از مدتی بازار آن به میزان زیادی سقوط کرد و حباب خود را پشت سر گذاشت. سهام این شرکت تقریبا در هر سهم 250 دلار سقوط کرد، بسیاری از افراد این را یک پایان برای آغاز این زبان برنامه نویسی می دانستند. با وجود مشکلات مالی فراوان اما این زبان همچنان به بهبود عملکرد و امنیت خود پرداخت و در سکوت کار خود را ادامه داد.
ادامه کار زبان برنامه نویسی جاوا با وجود ارزش سهام پایین
همانطور که گفتیم زبان برنامه نویسی جاوا در سکوت کار خود را ادامه می داد تا این که شرکت sun دو کیت معروف Java Community Process و Java Certification Kit را ساخت. هدف از JCK افزایش درآمد حاصل از جاوا با شارژ پیاده سازی های جایگزین مانند JRockit و Excelsior JET بود که در واقع گزینه های جایگزین زبان برنامه نویسی جاوا نامیده می شدند. JCK که امروزه به عنوان Technology Compatibility Kit شناخته می شود ممکن است در آینده تاثیرهایی را بر روی این زبان برنامه نویسی بگذارد.
چند هسته ای بودن و رقابت های benchmark
با ورود به سال 2000 میلادی زبان برنامه نویسی جاوا در صنعت جایگاه مناسبی را بدست آورد و به نظر می رسید که JCP عملکرد خوبی دارد. Java Specification Requests برای برخی از ویژگی های اضافی مانند پشتیبانی IPv6، regular expressions، assertions و API های مربوط به logging و همینطور کتابخانه های I/O پیاده سازی شده بود و در جاوا 1.4 منتشر شد.
در همان زمان همه چیز برای تولید کنندگان تراشه تغییر کرد، Clock rate در حال از بین رفتن بود و رقابت برای رعایت قوانین مور افزایش پیدا کرده بود، در سال 2004 شرکت اینتل پروژه ریز پردازنده نسل بعدی خود را برای تمرکز روی تراشه دو هسته ای لغو کرد و به صورت کلی آینده CPU در حال تغییر بود. برای توسعه دهندگان نرم افزار انقلاب چند هسته ای نشان دهنده پایان کار منتشر کردن رایگان برنامه ها بود، برنامه ها دیگر قادر نخواهند بود که بتوانند تراشه ها را به صورت فزاینده ای تغییر دهند تا عملکرد بهتری را داشته باشند.
زبان برنامه نویسی جاوا واکنش بزرگی را از خود نشان داد، در سال 2004 نسخه 1.5 جاوا منتشر شد که شامل کتابخانه جدید مربوط به همزمانی بود. این API جدید و زیربنای و پایه و اساس آن باعث شد تا JVM به صورت بسیار کارآمدتری کار کند و به توسعه دهندگان این امکان را داد که بتوانند از CPU های چند هسته ای در برنامه های خود استفاده کنند. بسیاری از موارد در زبان برنامه نویسی جاوا می توانستند به صورت همزمان و موازی در سیستم عامل اجرا شوند که این برای شرکت های بزرگ و توسعه دهندگان فوق العاده بود.
فعالیت سایر برنامه نویسان بر روی زبان برنامه نویسی جاوا
برنامه نویسان شرکت Sun تنها افرادی نبودند که مشغول کار بر روی JVM بودند، تعداد بسیار زیادی از برنامه نویسان از سراسر دنیا بر روی این پروژه کار می کردند که بتوانند جایگزین هایی را برای آن پیدا کنند، BEA’s runtime و JRockit شامل یک کنسول مدیریت کننده بودند که امروزه نیز در جاوا با نام Mission Control شناخته می شود که گاربیج کالکشن را در جاوا محاسبه می کرد، شامل پشتیبانی های چند لایه بود و یک مدل مدیریت حافظه بهتر را ارائه می داد.
رقابت این موارد با JVM باعث شده بود که تمامی آن ها از همه لحاظ پیشرفت کنند. BEA، IBM و Sun برای غلبه بر معیارهای روز دنیا یکدیگر را به چالش می کشیدند که نتیجه این چالش فوق العاده بود و در زمینه هایی مانند گاربیج کالکشن همزمان و پشتیبانی از حافظه و همینطور تراکم پشته و ... نتایج بی نظیری داشت به طوری که کمی بعد زبان برنامه نویسی جاوا موفق شد در زمینه سمت سرور با زبانی مانند زبان برنامه نویسی سی رقابت کند.
با وجود این که زبان برنامه نویسی جاوا تقریبا کل دنیا را فرا گرفته بود اما شرکت Sun هنوز هم در کسب درآمد از این زبان با مشکل رو به رو بود، به طوری که برای مدت 12 ماه به صورت دائمی خبرهای کاهش درآمد و پایین آمدن ارزش سهام آن در کل دنیا مخابره میشد.
سیاست بسیار بد ( بخش اول)
انتشار نسخه 1.6 زبان برنامه نویسی جاوا آخرین به روز رسانی و انتشار بزرگ جاوا در طول 5 سال بود، شرکت sun در حال ورشکست شدن بود و سعی می کرد که ارزشمندترین دارایی خود یعنی زبان برنامه نویسی جاوا را کنترل کند. هنگامی که اعضای این شرکت با یکدیگر به مشکل خوردند JCP تقریبا از هم پاشید و نابود شد. License زبان برنامه نویسی جاوا شرکت Sun بسیار محدود بود، به همین دلیل از انتشار توزیع متن باز این زبان برنامه نویسی جلوگیری شد، این مسئله زمانی به وجود آمد که بنیاد نرم افزاری آپاچی که با نام ASF شناخته می شد تلاش کرد که مجوز پروژه هارمونی خود را تامین کند.
با کمتر شدن کاربران جاوا محصولات جدید مبتنی بر JVM تولید شدند، این زبان ها از این واقعیت استفاده می کردند که کدهای جاوا توسط بایت کد در JVM اجرا می شوند، بنابراین طراحان این زبان ها موفق شدند که کامپایلرهای خاصی را طراحی کنند که زبان های آن نیز در JVM اجرا شود.
سیاست بسیار بد( بخش دوم)
همانطور که گفتیم بعد از کم شدن طرفداران زبان های برنامه نویسی جاوا زبان های بسیار زیادی به وجود آمدند، یکی از اولین و محبوب ترین این زبان ها زبان برنامه نویسی روبی بود که ویژگی های منحصر به فردی با بر اساس JVM ارائه می داد و البته یک زبان تک-ترد بود. بعد از این زبان، زبان های دیگری نیز مانند گرووی، اسکالا، Clojure و ... وارد بازار شدند. هر زبانی که منتشر میشد ویژگی هایی را ارائه می داد که در جاوا بی نظیر بود و در دسترس نبود، البته توجه داشته باشید که تمامی این ها از قابلیت اطمینان JVM بهره می بردند. با این که زبان برنامه نویسی جاوا خیلی پیشرفت نمی کرد ولی هنوز هم در صنعت از سایر زبان ها جلوتر بود.
سیاست بسیار بد( بخش سوم)
بعد از این دوره تقریبا تمامی افراد متخصص ادعا داشتند که اصلی ترین قدرت شرکت Sun زبان برنامه نویسی جاوا است، به همین دلیل این شرکت در سال 2007 نام سهام خود را به جاوا تغییر داد اما به نظر بسیاری از کارشناسان خیلی دیر شده بود، در سه ماهه اول سال 2008 شرکت Sun با ضرری 1.68 میلیارد دلاری رو به رو شد که باعث شد تا سود این شرکت درصد کاهش پیدا کند.در ماه نوامبر این شرکت اعلام کرد قصد دارد تقریبا 18 درصد از کارکنان خود یعنی 6000 نفر را اخراج کند. شرکت IMB اولین شرکتی بود که اعلام آمادگی کرد تا این شرکت را خریداری کند اما در نهایت این شرکت به شرکت اوراکل واگذار شد که شرکت Sun را در ماه ژوئن سال 2009 خریداری کرد.
در حالی که سال های آخر شرکت Sun با وضعیت بسیار بدی رو به رو بود ولی پایان خوشی داشت. زبان های مبتنی بر JVM آینده ای درخشان را برای زبان برنامه نویسی جاوا به عنوان یک پلتفرم نشان می دهند. با گذشت زمان دوباره بسیاری از صنعت ها به دنبال زبان برنامه نویسی جاوا بودند و آن را دنبال می کردند و از آن در صنعت خود استفاده می کردند.
ورود به دنیای جدید
در پی اختلافاتی که بر اثر دریافت مجوز JCP رخ داد شرکت Sun پروژه جدید OpenJDK را آغاز کرد، این پروژه در واقع تلاشی برای پیاده سازی یک نسخه متن باز از جاوا بود. در حالی که مهندسان شرکت Sun در نقش ها و موقعیت های شغلی خود در شرکت اوراکل مستقر میشدند پروژه OpenJDK رشد کرد. در سال 2011 این پروژه پشتیبانی کاملی از IMB، اوراکل، RedHat، اپل و ... داشت. این شرکت ها در عملکرد بهتر گاربیج کالکتور، ابزارهای مدیریتی و موارد دیگر کمک شایانی کرده بودند. در این جا بود که نسخه متن باز جاوا منتشر شد.
اولین نسخه از زبان برنامه نویسی جاوا تحت نظارت شرکت اوراکل تقریبا دو سال بعد از این موضوع منتشر شد، نسخه 7 زبان برنامه نویسی جاوا بسیار جالب بود و اولین نسخه از این زبان برنامه نویسی بود که تحت لاینسس GNU GPL و به صورت کاملا رایگان و متن باز منتشر شده بود.
ویژگی قابل توجه نسخه 7 زبان برنامه نویسی جاوا
یکی از ویژگی های قابل توجه نسخه 7 زبان برنامه نویسی جاوا دستورالعمل بایت کد بود که invokedynamic نامیده می شد، این دستورالعمل به این شکل کار می کرد که در صورتی که هیچ اطلاعاتی از نوع استاتیک وجود نداشت از فراخوانی برخی متدها پشتیبانی می کرد. البته توجه داشته باشید که زبان برنامه نویسی جاوا یک زبان برنامه نویسی از نوع استاتیک است و به همین دلیل نمی توان از این دستورالعمل در جاوا 7 استفاده کرد، در واقع این دستورالعمل به صورت انحصاری برای زبان های برنامه نویسی مانند JRuby و Groovy طراح شده بود. علاوه بر این موارد invokedynamic اولین نشانه ای بود که زبان های جایگزین در JVM اولین کلاس پشتیبانی آن را دریافت کردند.
نکاتی مهم درباره زبان های جایگزین
امروزه دیگر زبان هایی مانند اسکالا، روبی و Clojure به عنوان زبان های نوظهور شناخته نمی شوند. آن ها در بسیاری از محیط های تولیدی در کل دنیا استفاده می شوند، توسعه دهندگان از این زبان های برنامه نویسی برای پیاده سازی راه حل های مسائل منحصر به فرد برای مشکلات پیچیده استفاده می کنند. تجارت امروزه این زبان های برنامه نویسی را به صورت رسمی می شناسد زیرا آن ها بسیار قابل اطمینان هستند و از لحاظ امنیت نیز تفاوت چندانی با زبان برنامه نویسی جاوا ندارند. امروزه دنیای نرم افزار در حال تغییر است و زبان برنامه نویسی جاوا نیز با آن تغییر می کند.
بزرگترین انتشار زبان برنامه نویسی جاوا
بزرگترین انتشار زبان برنامه نویسی جاوا در سال 2014 رخ داد و وارد بازار شد، جاوا 8 دارای ویژگی های جدید بسیار زیادی بود که از جمله آن ها می توان به Lambdas و استریم ها اشاره کرد. در این نسخه از زبان برنامه نویسی جاوا API های تاریخ و زمان بهبود پیدا کردند، حافظه طولانی permanent-generation حذف شد( این حافظه حافظه ای است که توسط گاربیج کالکتور نیز قابل پس گرفتن نبود) و به جای آن امکانات جدیدتری در اختیار توسعه دهندگان قرار گرفت، علاوه بر این در این نسخه ران تایم جدید جاوا اسکریپت به نام Nashorn نیز معرفی شد. Nashorn یک دستورالعمل سبک، با عملکرد فوق العاده است که قادر است تا ابزارهای معمول جاوا اسکریپت را کنترل کند و دستورات را اجرا کند، شما حتی گاهی اوقات می توانید با استفاده از آن Node.js را نیز با استفاده از Nodyn اجرا کنید.
توضیحات پایانی درباره پیشرفت های جاوا 8
Nashorn تنها یک نسخه از پیشرفت های جاوا بود، JVM بستر مناسبی است برای طیف گسترده ای از زبان های برنامه نویسی که می توانند بر روی آن اجرا شوند. زبان برنامه نویسی جاوا ساده، قابل حمل، انعطاف پذیر و متن باز است و این خصوصیات باعث می شود تا در سالیان آینده نیز به میزان زیادی از این زبان استفاده شود.
بیست سال آینده جاوا ( بخش اول)
زمانی که اوراکل شرکت Sun را خریداری کرد یعنی تقریبا 6 سال پیش اکثر توسعه دهندگان نسبت به آینده زبان برنامه نویسی جاوا شک داشتند، آیا اوراکل متن باز بودن آن را محدود می کند؟ آیا این شرکت از توانایی های توسعه دهندگان برای مشارکت در زبان برنامه نویسی جاوا استفاده می کند؟ تا به امروز شرکت اوراکل از وعده شرکت Sun درباره متن باز بودن جاوا پشتیبانی کرده است، امروزه زبان برنامه نویسی جاوا از هر زمان دیگری قابل دسترس تر است و جامعه کاربران آن نیز روز به روز در حال رشد است.
نکته جالب این است که اوراکل هنوز هم نام جاوا و طراحی API آن را حفظ کرده است و جالب تر آن که TCK هنوز هم منبع درآمد آن می باشد. با این وجود اوراکل پیشرفت های گسترده ای را نیز در پروژه OpenJDK داشته است، حال سوال این است که آیا جاوا باز هم گسترش پیدا می کند؟ با توجه به سابقه ای که از اوراکل مشاهده کرده ایم به هیچ وجه این موضوع بعید نیست.
بیست سال آینده جاوا( بخش دوم)
امروزه JVM تقریبا بر روی 89 درصد از کامپیوترهای موجود، سه میلیارد گوشی موبایل و 125 میلیون تلویزیون اجرا می شود، توسعه دهندگان زبان برنامه نویسی جاوا به خوبی فعالیت می کنند و این زبان در صدر شاخص TIOBE قرار دارد. با این حال زبان برنامه نویسی جاوا تنها زبانی نیست که بر روی JVM اجرا می شود بلکه در حال حاضر زبان های مانند Groovy، Scala و Clojure نیز بر روی آن اجرا می شوند. زبان های جایگزین JVM در سیستم های مهم مانند Netflix، Twitter، LinkedIn، Square و گوگل استفاده می شود. در Heroku زبان های جایگزین جاوا تقریبا به اندازه خود این زبان مورد استفاده قرار می گیرند و در میان کاربران محبوب هستند. به همین علت است که سازمان های مختلف می توانند بدون ابزار سازی و نیاز به آموزش دوباره کل تیم خود از این زبان ها در برنامه های خود استفاده کنند.
بیست سال آینده جاوا( بخش سوم)
زبان برنامه نویسی جاوا همیشه پرچمدار سیستم عامل ها خواهد بود، اما با این حال آینده JVM برنامه نویسی چند زبانه خواهد بود. توسعه دهندگان نرم افزارها در حال حاضر برای حل مشکلات خود حاضر نیستند که تنها از یک زبان برنامه نویسی استفاده کنند به همین علت JVM به توسعه دهندگان این امکان را می دهد که ابزار مناسبی را برای کار خود انتخاب کنند و به این ابزارها نیز اجازه می دهد تا با استفاده از یک بستر سازگار و قابل اطمینان یکپارچه شوند.
در حالی که زبان های برنامه نویسی که برای اجرای برنامه های مبتنی بر JVM استفاده می شوند توسعه پیدا می کنند توانایی اجرای JVM در دستگاه های بیشتر نیز در حال رشد است. جاوا در حال حاضر به شما این امکان را می دهد تا در زمینه اینترنت اشیا نیز فعالیت داشته باشید و به شما این قول را داده است که در نسخه های بعدی این قابلیت به میزان زیادی بهبود پیدا کند و کاربران بتوانند پروژه های گسترده ای را با استفاده از زبان جاوا انجام دهند.
- Java
- 2k بازدید
- 1 تشکر