زبان برنامه نویسی جاوا یک زبان برنامه نویسی همه منظوره است که همزمان، مبتنی بر کلاس و شیء گرا است و طوری طراحی شده است تا کمترین وابستگی اجرایی ممکن را داشته باشد. شعار این زبان، “یک بار بنویس، همه جا اجرا کن” است، یعنی کد جاوای کامپایل شده می تواند روی تمام پلتفرم هایی که از جاوا پشتیبانی می کنند، اجرا شود و نیازی به کامپایل کردن مجدد نیست.
اما این محبوبیت جاوا از کجا نشات میگیرد؟ چرا زبان جاوا به این شدت فراگیر شد؟ قطعا نمیتوانیم تنها با ذکر یک دلیل، به این پرسش پاسخ دهیم. در واقع هرکدام از ویژگیهای اصلی این زبان در فراگیری و محبوبیت آن نقش دارند. در ادامه مقاله، به این پرسش پاسخ میدهیم.
تاریخچه و خالق زبان برنامه نویسی جاوا
زبان برنامه نویسی جاوا توسط جیمز گاسلینگ در شرکت Sun Microsystems که بعدها توسط شرکت بزرگ اوراکل خریداری شد طراحی گردید، زبان برنامه نویسی جاوا در ابتدا برای تلویزیون تعاملی طراحی شده بود، اما برای صنعت تلویزیون کابلی دیجیتال آن زمان بسیار پیشرفته بود. این زبان در ابتدا Oak (بلوط) نام داشت که برگرفته شده از درخت بلوطی بود که بیرون از دفتر گاسلینگ قرار داشت. بعدا این پروژه Green نام گرفت و در نهایت نام آن به Java تغییر یافت که برگرفته از قهوه جاوه است ،و در نهایت در سال ۱۹۹۵ اولین نسخهٔ آن منتشر شد؛ آقای گاسلینگ که نام واقعی وی James Arthur Gosling است در ۱۹ ماه می سال ۱۹۵۵ در کشور کانادا به دنیا آمد و درحالحاضر بهعنوان یکی از دانشمندان بهنام علوم کامپیوتری دنیا محسوب میگردد و در مجامع برنامهنویسی دنیا از وی بهعنوان «پدر زبان برنامهنویسی جاوا» یاد میشود. وی همچنین در سال ۱۹۷۷ از دانشگاه Calgary در رشته علوم کامیپوتری فارغالتحصیل شد و در سال ۱۹۸۳ هم مدرک Ph.D خود را در همین رشته از دانشگاه Carnegie Mellon دریافت کرد. گاسلینگ زبان برنامه نویسی جاوا را با قاعده نحوی سبک C و C++ طراحی کرد که برنامه نویس های سیستم و برنامه با آن آشنایی دارند.
چرا زبان برنامه نویسی جاوا محبوب شد؟
زبان جاوا به شهرت زیادی دست پیدا کرده و یکی از علل اصلی آن شیگرا بودن این زبان است. استفاده از مفهوم شیگرایی، توسعه نرم افزار را سادهتر میکند. برای آشنایی بیشتر با شیگرایی، باید با مفاهیمی همچون انتزاع، کپسوله کردن، وراثت و چندریختی آشنا شوید.اما علاوه بر ویژگی شیگرایی، ویژگیهای دیگری نیز وجود دارند که باعث شده توجه توسعهدهندگان و سازمانها به این زبان معطوف شود. برخی از این ویژگیها را در زیر بیان کردیم:
- قابل حمل بودن : برنامههای جاوا، قابلیت حمل در شبکه را دارند. یعنی میتوان آن را یکبار نوشت و سپس روی ماشینهای مختلف اجرا کرد. برنامه جاوا پس از کامپایل به دستوراتی تبدیل میشوند که برای ماشین مجازی جاوا قابل فهم است. این دستورات بایت کد نام دارد. ماشین مجازی جاوا هم بایت کد را به کد ماشین که برای سخت افزار کامیپوتر قابل فهم است، تبدیل میکند. بنابراین بایت کدها را میتوان در هر جای شبکه، روی هر کلاینت یا سروری که یک ماشین مجازی جاوا دارد، اجرا کرد. در مقابل، بسیاری از زبانهای برنامهنویسی مانند COBOL ،C++ Visual Basic و Smalltalk، برنامه را به یک فایل باینری کامپایل میکنند. فایلهای باینری، خاص پلتفرم هستند. بنابراین فایل باینری برنامهای که برای ماشینهای ویندوز نوشته شده، نمیتواند روی یک ماشین مک یا یک ماشین مبتنی بر لینوکس اجرا شود.
- مقاوم بودن: کدهای جاوا مقاوم هستند. مقاوم بودن به این معنی است که کمتر اتفاق میافتد که برنامه درهم شکسته شود یا اصطلاحا crash کند. برای محقق کردن این هدف، ماشین مجازی جاوا بررسیهای خاصی را روی نوع هر شی انجام میدهد تا از یکپارچگی آن اطمینان حاصل کند، اشیا جاوا تنها میتوانند به اشیا واقعی ارجاع دهند و نه به هر جای دلخواه از حافظه. مکانیزمهای قوی جاوا برای تخصیص و آزادسازی خودکار حافظه و مدیریت خطا نیز بر مقاوم بودن برنامهها اضافه میکند.
- یادگیری سریع: با توجه به اینکه نحو این زبان شبیه ++C است، یادگیری آن نسبتا آسان است، به ویژه برای افرادی که قبلا با c و ++c کار کردند.
اصول اولیه زبان برنامه نویسی Java
پنج هدف اصلی در ساخت زبان برنامه نویسی Java وجود داشت:
- باید “ساده، شیء گرا و آشنا” باشد.
- باید “قدرتمند و ایمن” باشد.
- باید “از نظر ساختاری خنثی و قابل حمل” باشد.
- باید با “عملکرد بالایی” اجرا شود.
- باید “تفسیر شده، رشته ای و پویا” باشد.
پلت فرم جاوا
پلتفرمهای جاوا در ادامه معرفی می شوند. همه توسعهدهندههایی که از زبان جاوا استفاده میکنند، برای اجرای برنامههای خود باید از این پلتفرمها استفاده کنند. پلتفرمهای جاوا از دو بخش اصلی رابطهای برنامه نویسی کاربردی (API) برای جاوا و ماشین مجازی جاوا (Java Virtual Machine یا به اختصار JVM) تشکیل شدهاند.
رابط برنامه نویسی کاربردی
رابطهای برنامهنویسی کاربردی در پلتفرم جاوا در واقع کتابخانههایی از کدهای کامپایل شده است که شما میتوانید از آنها در برنامه خود استفاده کنید. این کتابخانهها تقریبا همه چیز را شامل ورودی/خروجی، شبکه، رابط گرافیک کاربری، تجزیه زبان XML، ارتباط با پایگاه داده و غیره دربرمیگیرد.
در نتیجه، نیاز نیست شما برای هرچیزی کد بزنید بلکه فقط از توابع آماده شده در رابط برنامه نویسی کاربردی جاوا استفاده کنید!
ماشین مجازی جاوا
برنامههای جاوا توسط برنامه دیگری به نام ماشین مجازی جاوا اجرا (یا تفسیر) میشود. به طور دقیقتر، برنامههای جاوا پس از کامپایل، به دستوراتی تبدیل میشوند که بایت کد نامیده میشوند. این دستورات، که شبیه به دستورات ماشین است، برای ماشین مجازی جاوا قابل فهم است. ماشینهای مجازی جاوا هم با دریافت دستورات بایت کد، آنها را به زبان ماشین تبدیل میکنند و برنامه روی ماشین موردنظر اجرا میشود. بنابراین میتوانیم برنامههای جاوا را روی هر سیستمی که ماشین مجازی جاوا یا به اختصار JVM روی آن نصب شده، اجرا کنیم.
برای مثال، یک برنامه جاوا که در یک کامپیوتر شخصی با سیستم عامل Windows NT، توسعه داده شده است، باید به طور یکسان و بدون هیچ تفاوتی روی یک ماشین کاری با سیستم عامل سولاریس نیز اجرا شود و بر عکس.
انواع پلت فرم های جاوا
- (Java SE (Standard Edition: این پلتفرم که با نام J2SE نیز شناخته شده است، شامل کتابخانههای اصلی زبان برنامه نویسی جاوا است و با استفاده از آن، کاربران میتوانند برنامههای جاوا خود را برای دسکتاپ، سرورها و محیطهای جاسازی شده توسعه دهند. مولفههای این پلتفرم، شامل کیت توسعه جاوا (JDK)، محیط زمان اجرای جاوا (JRE) و رابط برنامهنویسی کاربردی (API) این پلتفرم است. کیت توسعه جاوا، شامل JRE، کامپایلرها و اشکال زداهایی است که برای توسعه اپلتها و برنامههای کاربردی موردنیاز است. محیط زمان اجرا هم، کتابخانهها، ماشین مجازی جاوا و سایر مولفههای موردنیاز برای اجرای اپلت و برنامههای جاوا را شامل میشود.
- (Java EE (Enterprise Edition: این پلتفرم، به عنوان نسخه تجاری برای ساخت وب و برنامههای تجاری ارائه شد. این پلتفرم با نام J2EE شناخته شده است. با کمک این پلتفرم میتوانیم مولفههای سمت سروری ایجاد کنیم که میتواند به درخواست-پاسخ مبتنی بر وب پاسخ بدهد. در نتیجه، میتوانیم برنامههایی ایجاد کنیم که میتواند با کلاینتهای مبتنی بر اینترنت شامل مرورگرهای وب، کلاینتهای مبتنی بر CORBA و حتی سرویسهای وب میتنی بر REST و SOAP، تعامل داشته باشد.
- (Java ME (Micro Edition: این نسخه، یک پلتفرم سبک وزن برای توسعه تلفنهای همراه است که در گذشته با عنوان J2ME شناخته میشد. این نسخه، برتری خود را در عرصه توسعه ابزارهای جاسازی شده یا دستگاههای تعبیه شده ثابت کرده و الان در تلاش است در عرصه توسعه گوشیهای هوشمند نیز پیشرو باشد.
- Java FX: این پلتفرم، یک پلتفرم پیشرفته واسط گرافیکی کاربر است. به عنوان مثال، JavaFX Scene Builder، یک ابزار طراحی بصری است که کاربر میتواند به صورت بصری و بدون کد زدن، واسطهای گرافیکی موردنظر خود را ایجاد کند. کاربران مولفههای واسط کاربری را از منو مولفهها انتخاب میکنند و این مولفهها، در فضای کاری نمایش داده میشود. سپس کاربر میتواند ویژگیهای این مولفهها را تغییر دهد یا فایلهای css را برای تنظیم شمایل و استایل، به این مولفهها اعمال کند.
ابزارهای توسعه زبان برنامه نویسی جاوا
برای زبان برنامه نویسی جاوا ، ابزارهای توسعه قدرتمندی مانند Eclipse و NetBeans دارد. شما به عنوان یک برنامه نویس ترجیح میدهید در یک محیط یکپارچه توسعه نرم افزار کد بزنید تا در ویرایشگرهای متنی مانند notepad. در نتیجه میتوان گفت وجود این ابزارهای توسعه نقش مهمی در محبوبیت این زبان برنامهنویسی ایفا میکند.
استفاده از محیطهای توسعه، کد زدن را راحتتر و سریعتر میکند. به عنوان مثال، در صورت وجود هر نوع خطای نحوی، این محیطها به برنامه نویس اخطار میدهند که دستور اشتباه را تصحیح کنند و حتی پیشنهادهایی را هم به آنها ارائه میکنند. این محیطها همچنین امکاناتی مانند جستجو، ساخت مجدد کد، خواندن کد و غیره را برای کاربر فراهم میکنند.
یک مثال ساده
در این بخش، قصد داریم یک برنامه ساده جاوا را با هم بنویسیم و اجرا کنیم. اما پیش از آن، شما باید ابتدا پلت فرم جاوا را روی سیستم کامپیوتری خود نصب کنید.
پلت فرمهای جاوا از طریق وبسایت جاوا ، به صورت رایگان قابل دسترس است. البته متاسفانه این صفحه از سمت شرکت اوراکل برای کشور ما فیلتر است و برای دانلود این پلت فرمها باید از فیلترشکن استفاده کنید. پس از دانلود و نصب پلت فرم جاوا و پیکربندی آن در سیستم، میتوانید اولین برنامه جاوا خود را بنویسید و اجرا کنید.
نوشتن برنامه
سادهترین راه برای نوشتن یک برنامه ساده، استفاده از ویرایشگرهای رایج متن است. پس یک ویرایشگر متن باز کنید، برنامه زیر را در آن کپی کنید و آن را با نام ExampleProgram.java یا هر نام دلخواه دیگری ذخیره کنید. توجه داشته باشید که همه برنامههای جاوا، پسوند java. دارند.
برنامه های جاوا به بزرگی و کوچکی حروف حساس هستند. پس اگر قصد دارید خودتان این برنامه را تایپ کنید، به این نکته توجه کنید.
class ExampleProgram {
public static void main(String[] args){
System.out.println(“I’m a Simple Program”);
}
}
کامپایل برنامه
برنامه نوشته شده توسط برنامه نویس باید به فرمی تبدیل شود که توسط ماشین مجازی جاوا قابل فهم باشد. این تبدیل با انجام عملیات کامپایل انجام میشود. کامپایل یک برنامه جاوا به معنای آن است که متن برنامه (که توسط برنامه نویس نوشته شده است و عموما به آن کد منبع میگویند) به دستوراتی تبدیل میشود که آن را بایت کد مینامیم. دستورات بایت کد شبیه به دستورات ماشین و مستقل از هر گونه بستری هستند.
کامپایلر جاوا را میتوانید با دستور زیر از طریق پوستههای یونیکس و داس موجود در سیستم عامل خود، فراخوانی کنید:
javac ExampleProgram.java
پس از اجرای کد بالا، فایلی با نام ExampleProgram.class در دایرکتوری فعلی شما ایجاد میشود که در واقع شامل دستورات بایت کد متناظر با برنامه نوشته شده در فایل ExampleProgram.java است.
تفسیر و اجرای برنامه
زمانی که برنامه به صورت موفقیت آمیز به بایت کدهای جاوا تبدیل شد، شما میتوانید آن را برای هر ماشین مجازی جاوا تفسیر کنید و در نهایت برنامه را اجرا کنید. تفسیر و اجرا به این معنی است که ماشین مجازی جاوا را فراخوانی کنید و بایت کد به دست آمده از بخش کامپایل را در اختیار آن قرار دهید.
ماشین مجازی یا مفسر جاوا را میتوانید از طریق پوسته یونیکس یا داس موجود در سیستم عاملهای مختلف، با دستور زیر فراخوانی کنید:
java ExampleProgram
اگر مراحل نوشتن، کامپایل و اجرا را به درستی انجام داده باشید، خروجی برنامه که عبارت “I’m a Simple Program” است، در پوسته نمایش داده میشود.
همان طور که گفتیم جاوا به صورت رایگان در دسترس همگان است و در نتیجه، بیشتر افراد و توسعه دهندگان ترجیح میدهند آن را یاد بگیرند. از سوی دیگر، در دسترس بودن ابزارهای توسعه قدرتمند برای این زبان و وجود برنامه نویسان حرفهای، سازمانها را هم ترغیب میکند برای توسعه برنامههای کاربردی خود از این زبان استفاده کنند. در نتیجه جاوا، به اهمیت بالایی در دنیای تکنولوژی دست پیدا کرده است.
و در آخر
عالیی بود مث همیشه
بسیار زیبا