زبان برنامه نویسی جاوا (قسمت اول)
زبان برنامه نویسی جاوا (قسمت اول)
در این پست ابتدا توضیحات مختصری در مورد تاریخچه ی زبان برنامه نویسی جاوا و سپس قابلیت ها , برنامه های کاربردی و اصطلاحات موجود در آن خواهیم داشت:
-تاریخچه زبان برنامه نویسی جاوا:
زبان برنامه نویسی جاوا در اوایل دهه ی ۱۹۹۰ میلادی توسط جیمز گاسلینگ و همکارانش در شرکت سان مایکروسیستمز پایه ریزی شد که در ابتدا Oak به معنی «بلوط» نام داشت در حقیقت آقای گاسلینگ از اصول برنامه نویسی در زبان ++C خیلی احساس رضایت نمی کرد و یک سری نارسایی های این زبان برنامه نویسی موجب شد که وی زبان جاوا را بر مبنای زبان ++C طراحی کند به نحوی که بتواند ایده های مد نظر او را به نحو بهتری اجرا کند.
داستان های زیادی در ارتباط با وجه تسمیه ی زبان جاوا وجود دارد که یکی از آنها به این داستان اشاره دارد که جیمز گاسلینگ در حین طراحی این زبان برنامه نویسی جدید، اتاق کارش مشرف به یک درخت بلوط بود که این درخت همواره نظر وی را به خود جلب می کرد. اما پس از مدتی مدیران شرکت سان مایکروسیستمز تصمیم گرفتند نام بهتری برای این زبان برنامه نویسی جدید انتخاب نمایند از این رو توسعه دهندگان این زبان به کافی شاپی در نزدیکی شرکت رفتند تا برای انتخاب نام جدید با یکدیگر به توافق برسند. پس از نیم روزی بحث و تبادل نظر، نام Java که مخفف نام های James Gosling و Arthur Van Hoff و همچنین Andy Bechtolsheim بود انتخاب شد و از آنجا که مراسم نام گذاری در یک کافی شاپ صورت گرفته بود نماد این زبان یک فنجان قهوه داغ در نظر گرفته شد. در عین حال، معتبرترین داستان این است که جیمز گاسلینگ به نوعی قهوه علاقه داشت که در جزیرهای به نام جاوا که در اندونزی در جنوب شرقی آسیا است می روید.
به هر حال، این زبان برنامه نویسی موفق که در سال ۱۹۹۵ به طور رسمی به بازار معرفی شد، توانست چنان محبوبیتی در جهان پیدا کند که در حال حاضر در بیش از ۳ میلیارد سیستم مورد استفاده قرار گرفته و تاکنون بیش از ۱۰۰۰ جلد کتاب پیرامون آن به رشته تحریر درآمده است. این زبان داری ساختار یا Syntax مشابه زبان های C و ++C می باشد اما از سادگی بیشتری برخوردار است.
ایدهی اولیهی ساخت جاوا بر این بود که این زبان به گونهای ساخته شود که پیچیدگیهای زبان مطرح سی پلاس پلاس را نداشته باشد. یعنی جاوا زبانی شیء گرا است (OOP) اما مدل شیء گرایی سادهتری نسبت به سی پلاس پلاس دارد. به عنوان مثال در جاوا ارث بری چندگانه به شکلی که در ++C قابل پیادهسازی است، وجود ندارد و یا جاوا دارای Garbage Collector است که مدیریت حافظهی هیپ را بر عهده دارد. همچنین این زبان مستقل از سخت افزار و نرمافزار است. از آنجایی که شعار جاوا «یکبار بنویس و همه جا اجرا کن» بود، یکباره جاوا به یکی از محبوبترین زبان های برنامه نویسی جهان تبدیل شد. در نهایت هم شرکت سان مایکروسیستمز در سال ۲۰۱۰ توسط شرکت بزرگ اوراکل خریداری شد و از آن زمان تاکنون، توسعه ی نسخه های جدید این زبان برنامه نویسی به عهده ی شرکت اوراکل است.
-قابلیت های زبان برنامه نویسی جاوا:
۱-جاوا مستقل از پلتفرم است:
جاوا با فلسفه
“write once, run anywhere” (WORA)
( یکبار بنویس ، همه جا اجرا کن ) ساخته شد. کدهای جاوا (کد جاوای خالص و کتابخانه ها) که در یک پلتفرم (سیستم عامل) نوشته می شوند ، در سایر پلتفرم ها ، بدون نیاز به اصلاح ، قابل اجرا می باشند.
برای اجرا کردن Java ، یک ماشین انتزاعی به نام ماشین مجازی جاوا ((Java Virtual Machine (JVM) استفاده می شود. JVM بایت کد (bytecode) جاوا را اجرا می کند. CPU ، سپس JVM را اجرا می نماید. از آن جایی که تمام JVM ها دقیقاً عین هم کار می کنند ، همان کد در سایر سیستم عامل ها نیز قابل اجرا می باشد ، که این کار باعث می شود جاوا مستقل از پلتفرم ، کار نماید.
۲-یک زبان شیءگرا است:
سبک های مختلف برنامه نویسی وجود دارد. رویکرد شیء گرا ، یکی از سبک های برنامه نویسی محبوب می باشد. در برنامه نویسی شیءگرا ، یک مسئله پیچیده ، با ایجاد اشیاء ، به مجموعه های کوچک تر تقسیم می شود . این کار باعث می شود که کدهای تولید شده ، قابلیت استفاده مجدد داشته باشند ، مزایای طراحی به همراه داشته باشند و نگهداری کدها ، راحت تر انجام شود.
بسیاری از زبان های برنامه نویسی ، از جمله جاوا ، پایتون و C++ قابلیت های شیء گرا دارند. اگر در مورد انجام برنامه نویسی جدی هستید ، مسلماً باید سبک برنامه نویسی شیء گرا را یاد بگیرید.
۳-جاوا سریع است:
ورژن های پیشین جاوا ، از بابت کند بودن ، مورد انتقاد قرار گرفتند. با این حال ، اکنون همه چیز کاملاً عوض شده است. JVM های جدید به مراتب سریع تر هستند و CPU که JVM را اجرا می کند ، نیز بیشتر و بیشتر قدرتمند تر شده اند.
در حال حاضر ، جاوا یکی از سریع ترین زبان های برنامه نویسی است. کدهای Java که به خوبی بهینه شده اند ، به همان سرعت زبان های سطح پایین مانند C/C++ و بسیار سریع تر از Python ، PHP و غیره عمل می کنند.
۴-جاوا امن است:
پلتفرم جاوا ، قابلیت های مختلفی امنیتی ، برای برنامه های کاربردی جاوا فراهم می نماید. برخی از قابلیت های سطح بالا که جاوا می تواند آنها را هندل نماید ، عبارتند از:
پلتفرم امنی برای توسعه و اجرای برنامه های کاربردی فراهم می کند.
مدیریت خودکار حافظه (automatic memory management) را فراهم می کند ، خرابی و آسیب پذیری حافظه (memory corruption and vulnerabilities) را کاهش می دهد.
امکان برقراری ارتباط امن از طریق حمایت از یکپارچگی و حریم خصوصی داده های انتقال داده شده ، را فراهم می کند.
۵-دارای کتابخانه بزرگ استاندارد است:
یکی از دلایلی که جاوا به طور گسترده ، مورد استفاده قرار می گیرد ، این است که امکان دسترسی به کتابخانه استاندارد عظیمی را فراهم می کند. محیط Java ، دارای صدها کلاس و متد است که در پکیچ های مختلف ارائه می شوند و به توسعه دهندگان نرم افزار کمک می نمایند.
java.lang – برای ویژگی های پیشرفته رشته ها (strings) ، آرایه ها و غیره.
java.util – برای ساختارهای داده ای ، عبارات باقاعده (regular expressions) ، توابع مربوط به تاریخ و زمان و غیره .
java.io – برای فایل های i/o (input/output) ، مدیریت کردن استثناء ها و غیره.
-برنامه های کاربردی Java:
تکنولوژی جاوا ، شامل ۳ میلیارد دستگاه در سرتاسر جهان است. این آمار ، خیلی بیشتر از آن میزانی است که از جاوا در یک یا چند مورد از برنامه های کاربردی که ما می شناسیم ، استفاده می شود. در اینجا ، برخی از برنامه های کاربردی که از جاوا استفاده می کنند ، عبارتند از:
اپلیکیشن های اندروید
زبان برنامه نویسی Java با استفاده از Android SDK (Software Development Kit) ، به طور متداول برای توسعه اپ های اندروید ، مورد استفاده قرار می گیرد.
اپلیکیشن های تحت وب
جاوا برای ایجاد اپلیکیشن های تحت وب از طریق Servlets ، Struts یا JSP ها ، مورد استفاده قرار می گیرد. برخی از اپلیکیشن های تحت وب محبوب نوشته شده با جاوا ، عبارتند از : Google.com ، Facebook.com ، eBay.com ، LinkedIn.com و غیره.
توجه به این نکته مهم است که این سایت ها ، ممکن است به طور کامل با جاوا نوشته نشده باشند ، و ممکن است از سایر زبان های برنامه نویسی همراه با جاوا ، استفاده شده باشد.
توسعه نرم افزار
نرم افزارهایی مانند Eclipse ، OpenOffice ، Vuze ، MATLAB و غیره ، با استفاده از جاوا توسعه یافته اند.
پردازش داده های بزرگ (Big Data)
می توان از فریم ورک نرم افزار محبوبی مانند Hadoop (که خودش در جاو نوشته شده است ) برای پردازش Big Data استفاده نمود. برای استفاده از Hadoop ، نیاز است که با برنامه نویسی جاوا آشنا باشید.
سیستم معاملاتی (Trading System)
می توان برنامه های کاربردی معاملاتی را با داشتن عملیات های نهان (latency) کم ، با استفاده از پلتفرم Oracle Extreme Java Trading Platform ایجاد کرد.
دستگاه های تعبیه شده (جاسازی شده)
با این که زبان های برنامه نویسی C/C++ هنور انتخاب محبوبی برای کار با سیستم های تعبیه شده می باشند ، تکنولوژی های Embedded جاوا مربوط به شرکت اوراکل ، پلتفرم و سیستم runtime را برای میلیاردها دستگاه های تعبیه شده ، فراهم می کنند ، مانند تلویزیون ها ، سیم کارت ها ، دیسک های پخش بلو-ری و غیره.
در کنار این برنامه های کاربردی ، جاوا ، هم چنین برای توسعه بازی ها ، برنامه های کاربردی علمی (مانند پردازش زبان طبیعی ) و موارد بسیار دیگری ، مورد استفاده قرار می گیرد.
-اصطلاحات موجود در جاوا که باید قبل از شروع با آنها آشنا شوید:
یادگیری یک زبان برنامه نویسی جدید ، می تواند چالش برانگیز باشد. تعداد زیادی از واژه های جدید ، به کار برده می شوند که می توانند برای تازه کارها ، غافل گیر کننده باشند. بنابراین ، ما تصمیم گرفتیم ، برخی از این اصطلاحات را که احتمالاً در دنیای زبان برنامه نویسی جاوا با آنها مواجه خواهید شد ، شرح دهیم.
توجه داشته باشید ، این اصطلاحات ، لیست کاملی از واژه نامه جاوا نیستند. فقط لیستی است که حاوی اصطلاحاتی است که شما قبل از شروع به یادگیری زبان برنامه نویسی جاوا ، باید با آنها آشنا باشید.
Java – مجموعه ای از تکنولوژی ها (زبان برنامه نویسی و پلتفرم محاسباتی) برای ایجاد و اجرای نرم افزار است. با این حال ، اغلب برای سادگی ، Java به عنوان زبان برنامه نویسی جاوا ، مورد ارجاع قرار می گیرد.
زبان برنامه نویسی Java – یک زبان برنامه نویسی قدرتمند ، همه منظوره ، مستقل از پلتفرم ، شیء گرا می باشد.
Java 8 – جاوا ۸ آخرین نسخه از جاوا می باشد. این دروه آموزشی جاوا ، شامل تمام قابلیت های مهم جاوا ۸ می باشد.
Java EE ، Java ME و Java SE – Java EE ، Java ME و Java SE به ترتیب به پلتفرم جاوا Enterprise Edition ، Micro Edition و Standard Edition اشاره دارند. Java EE ، در برنامه های کاربردی که در سرورها اجرا می شوند ، مورد استفاده قرار می گیرد. Java ME ، برای دستگاه هایی با منابع محدود مانند: دستگاه های تعبیه شده ، مورد استفاده قرار می گیرد. و Java SE ، محیط اصلی جاوا می باشد که برای ایجاد برنامه های استاندارد ، مورد استفاده قرار می گیرد.
اگر شما در برنامه نویسی جاوا ، تازه کار هستید ، به شما توصیه می کنیم که با ورژن J2SE ، کار را شروع نمایید.
JVM – JVM (Java Virtual Machine) :
یک ماشین انتزاعی است که این امکان را به کامپیوتر ما می دهد که برنامه جاوا را اجرا نماید.
JRE – JRE (Java Runtime Environment) :
حاوی JVM ، پشتیبانی کتابخانه ها و سایر مؤلفه ها برای اجرای یک برنامه جاوا است. با این حال ، شامل هیچ کامپایلر و debugger نیست.
JDK – JDK (Java Development Kit) :
حاوی JRE و ابزارهایی مانند کامپایلرها و debugger ها برای توسعه برنامه های کاربردی جاوا می باشد