جاوا(java)
یک زبان برنامهنویسیِ شیءگرا است که نخستینبار توسط جیمز گاسلینگ در شرکت سانمایکروسیستمز ایجاد گردید و در سال ۱۹۹۱ بهعنوان بخشی از سکوی جاوا منتشر شد.
زبان جاوا شبیه به C++ است؛اما مدل شیءگرایی آسانتری دارد و از قابلیتهای سطح پایین کمتری پشتیبانی میکند. ایدهٔ شیءگرایی جاوا از زبان اسمالتاک گرفته شدهاست. یکی از قابلیتهای بنیادین جاوا این است که مدیریت حافظه را بهطور خودکار انجام میدهد. ضریب اطمینان عملکرد برنامههای نوشتهشده به این زبان نسبت به زبانهای نسل اول C بالاتر است. برنامههای جاوا به صورت بایت کد میشوند و توسط ماشین مجازی جاوا (JVM) به کدهای ماشین تبدیل و اجرا میشوند. در صورت وجود JVM مانند سایر زبانهای مبتنی بر آن که وابسته به سیستمعامل خاصی نیستند برنامههای نوشته شده به جاوا بر روی هر نوع سیستم عامل و هرگونه وسیلهٔ الکترونیکی قابل اجرا میباشند. شعار جاوا «یکبار بنویس و همهجا اجرا کن» (Write once, Run anywhere) است که به همین ویژگی اشاره دارد.این ویژگی جاوا را مستقل از سکو مینامند.
تاریخچه
در سال ۱۹۹۰ سانمایکروسیستمز در حال توسعه نرمافزاری برای استفاده ابزارهای الکترونیکی بود که مسئولیت تیم که آن را پروژه green نامیدند، جیمز گاسلینگ بر عهده گرفت. در سال ۱۹۹۱ تیم تصمیم گرفت که زبان جدید را OAK بنامند. در سال ۱۹۹۲ تیم پروژه green زبان جدیدی را معرفی کرد که با ابزارهای مختلف خانگی و لمسی کار میکرد. در سال ۱۹۹۳ وب جهانی توسعه یافت و زبان جدید با معرفی اپلت که قابلیتهای زیادی به کامپیوترهای متصل به وب میافزود مشهور شد. در سال ۱۹۹۵ زبان OAK به JAVA تغییر نام پیدا کرد و توسط مایکروسافت و نت اسکیپ پشتیبانی شد. در سال ۱۹۹۶ دیگر java زبانی به صورت همه گیر چند منظوره شناخته شده بود. در سال ۲۰۰۷ زبانهایی با استاندارد JVM مانند groovy ایجاد شد و در سال ۲۰۱۴ جاوا سعی کرد با معرفی نسخه ۸ برخی از قابلیتهای زبانهای دیگر را به جاوا اضافه نماید.
این زبان قسمتهای بسیاری از گرامر خود را از C و ++C گرفته اما دارای مدل شیگرایی سادهای است و امکانات سطح پایین کمی دارد. کاربرد جاوا در کامپایل به صورت بایت کد است که صرف نظر از معماری و خصوصیات آن کامپیوتر، قابلیت اجرا روی تمامی ماشینهای شبیهسازی جاوا را دارد. اجزای اصلی کامپایلرهای جاوا، ماشینهای پیادهسازی و کتابخانههای آن توسط شرکت مذکور از سال ۱۹۹۵ منتشر شد. در مه ۱۹۹۷ این شرکت، نرمافزار رایگان این زبان را فراهم کرد. دیگران هم کاربردهای دیگری از این زبان مثل کامپایلر GNU برای جاوا یا OPENJDK را منتشر کردند.
با پیدایش java2، نسخهٔ جدید توانست ترکیبهای جدیدی را برای نوعهای مختلف سکوهای مختلف ایجاد کند. به عنوان مثال J2EE، باهدف کاربرد برای تشکیلات سازمانی، و نسخهٔ سکوی جاوا، نسخه میکرو برای تلفن همراه منتشر شد. در سال ۱۹۹۶ با هدف بازاریابی، این شرکت نسخهٔ جدید J2 را با نامهای سکوی جاوا، نسخه سازمانی، سکوی جاوا، نسخه میکرو و سکوی جاوا، نسخه استاندارد منتشر کرد. در سال ۱۹۹۷ شرکت سانمایکروسیستمز، ISO/IEC JTC1 standards body و Ecma International را به فرمول جاوا تغییر داد. شرکت Sun بسیاری از کاربردهای جاوا را بدون هیچ هزینهای فراهم آورد. شرکت Sun با فروش مجوز برای بعضی از کاربردهای خاصش مثل Java Enterprise System درآمدی را بدست آورد. در ۱۳ نوامبر ۱۹۹۶ شرکت Sun نرمافزار جاوا را به صورت رایگان و با مجوز عمومی برای همه منتشر کرد.
چه برنامههایی را میتوان با زبان جاوا نوشت؟
همانطور که گفتیم، جاوا یک زبان چندسکویی است، بنابراین شما میتوانید با استفاده از آن برای سیستمعاملهای مختلفی مانند ویندوز، لینوکس، اواسایکس، اندروید، وب و… برنامهنویسی کنید، در حقیقت یکبار برنامهی خود را بنویسید و همهجا آنرا استفاده کنید!
در ایران نیز برنامههای بسیار زیادی (به خصوص نرمافزارهای دولتی) با این زبان توسعه یافتهاند، بنابراین شما با یادگیری جاوا تقریبا میتوانید به بازار کار بسیار خوبی امیدوار باشید، در کشورهای توسعهیافتهای مانند استرالیا، کانادا، انگلستان و آمریکا شرایط از این نیز بهتر است و تقریبا سرمایهگذاریهای فراوانی روی آن میشود.
همانطور که میبینید زبان جاوا پس از جاوا اسکریپت و SQL سومین زبان پر استفاده در دنیا محسوب میشود.
لطفا Java را با JavaScript اشتباه نگیرید!
بسیاری از افراد مبتدی این دو زبان را یکسان میدانند و در مواردی این دو را به جای هم یاد میکنند، جاوا اسکریپت همانطور که از نامش پیداست یک زبان اسکریپتنویسی به حساب میآید و برای نوشتن برنامههای سمت کلاینت و در مرورگر استفاده میشود که توسط شرکت Netscape طراحی و منتشر شد، این زبان بیشتر در پویاسازی صفحات وب مورد استفاده قرار می گیرد و توسط مرورگر اجرا شده و در حالت پیشفرض قابلیت اجرا شدن روی سیستمعاملهای مختلف را ندارد.
معرفی نسخههای اصلی زبان جاوا
این زبان از پلتفرمهای مختلفی پشتیبانی میکند، برای برنامهنویسی در هر یک از این پلتفرمها از نسخهی خاصی از جاوا استفاده میشود که در ادامه برخی از مهمترین این نسخهها را با هم بررسی میکنیم:
Java SE: این نسخه که مخفف Standard Edition و در حقیقت نسخهی اصلی میباشد، شامل کتابخانههای اصلی زبان جاواست که با استفاده از آن میتوان برای دسکتاپ و سرورها برنامهنویسی کرد، این نسخه را با نام J2SE نیز میشناسند.
Java EE: این نسخه مخفف شدهی عبارت Enterprise Edition به مفهوم نسخهی تجاری بوده و برای ساخت برنامههای تحت وب و اپلیکیشنهای تجاری و سازمانی مورد استفاده قرار میگیرد، نام دیگر این نسخه J2EE است.
Java ME: این نسخه مخفف Micro Edition بوده و در حقیقت نسخهای کوچک و سبک است که برای برنامهنویسی ریزپردازندهها و تلفنهای قدیمیتر به کار گرفته میشود، مانند سایر نسخهها، این نسخه نیز با نام مستعار J2ME شناخته میشود.
اهداف زبان برنامه نویسی جاوا (Java)
- سادگی و قابل فهم بودن
- داشتن قابلیت انتقال (پرتابل)
- شی گرا بودن
- کارایی و عملکرد قدرتمند
- خطای کم
کاربرد های زبان برنامه نویسی جاوا (Java)
با استفاده از جاوا میتوان برنامه های رومیزی (Desktop)، برنامه های تحت وب (WEB)، برنامه های کاربردی (Enterprise) و برنامه های دیگر سیستم ها مانند تلفن همراه را نوشت. به گفته ی شرکت سازنده ی زبان برنامه نویسی جاوا (Java) (سان مایکروسیستمز)، سه میلیارد دستگاه، از این زبان برنامه نویسی استفاده می کنند که عبارتند از:
- کنسول های بازی
- سیستم های رباتیک
- برنامه های موبایلی
- کارت های هوشمند
- برنامه های کاربردی، رو میزی و تحت وب
- و …
اجزای زبان برنامه نویسی جاوا (Java)
زبان برنامه نویسی جاوا از دو بخش: رابط های برنامه نویسی کاربردی (API) و ماشین مجازی جاوا (Java Virtual Machine یا به اختصار JVM) تشکیل شده است.
1- ماشین مجازی جاوا (JVM)
برنامه های نوشته شده با جاوا، توسط ماشینی به نام ماشین مجازی جاوا تفسیر می شود. در واقع این ماشین مجازی، پس از کامپایل کردن برنامه ها، آن ها را به دستوراتی تبدیل می کند که بایت کد نامیده می شوند. هدف از استفاده از ماشین مجازی جاوا، بهینه سازی حافظه ی سیستم و فراهم نمودن محیطی برای اجرای برنامه در سیستم های مختلف است. در واقع می توان به وسیله ی ماشین مجازی جاوا، برنامه های نوشته شده در جاوا را در هر پلتفرمی اجرا نمود.
2- رابط های برنامه نویسی کاربردی(API)
در زبان برنامه نویسی جاوا (Java)، پلتفرم هایی وجود دارند که دارای کتابخانه هایی متشکل از کد های کامپایل شده هستند، که می توان از آن ها در هنگام برنامه نویسی، استفاده نمود. در واقع می توان بدون احتیاج به کد نویسی، از توابع آماده در رابط برنامه نویسی کاربردی جاوا استفاده نمود.
مزایای جاوا:
- ساده: جاوا برای استفاده آسان، نوشتن، کامپایل، اشکال زدایی و یادگیری از سایر زبان های برنامه نویسی بخصوص یادگیری برنامه نویسی اندروید طراحی شده است. جاوا بسیار ساده تر از C ++ است زیرا جاوا از تخصیص حافظه خودکار و جمع آوری زباله استفاده می کند.
- Object-Oriented: به شما امکان می دهد برنامه های مدولار و کد های قابل استفاده مجدد را ایجاد کنید.
- بستر مستقل: توانایی حرکت به راحتی از یک سیستم کامپیوتری به دیگری
- توزیع شده: طراحی شده برای ایجاد محاسبات توزیع آسان با قابلیت شبکه است که به طور ذاتی در آن ادغام شده است.
- امن: زبان جاوا، کامپایلر، مترجم، و محیط زمان اجرا هر کدام با امنیت در نظر گرفته شده است.
- توزیع: جاوا دارای ویژگی سیستم تخصیص پشته است. این کمک می کند تا داده ها ذخیره شوند و می توانند به راحتی بازیابی شوند.
- Multithreaded: توانایی یک برنامه برای انجام چندین وظیفه همزمان در یک برنامه.
معایب جاوا:
- عملکرد: به طور قابل ملاحظه ای کندتر و حافظه بیشتری نسبت به زبان های تولید شده مانند C یا C ++.
- نگاه و احساس: ظاهر و احساسات پیش فرض برنامه های کاربردی GUI که در جاوا با استفاده از ابزار کیت Swing نوشته شده بسیار متفاوت از برنامه های بومی است.
- زبان تک پارادایم: علاوه بر واردات استاتیک در جاوا 5.0 پارادایم رویه ای بهتر از نسخه های قبلی جاوا است.