زبان برنامه نویسی جاوا

زبان برنامه نویسی جاوا

« زبان برنامه نویسی جاوا چیست ؟ »


تاریخچه زبان برنامه نویسی جاوا

در مقایسه با زبان‌های دیگر، همچون C++ یا بیسیک، جاوا زبان نسبتاً جدیدتری است. شرکت (sun Microsystems) سان مایکروسیستمز در سال ۱۹۹۱ یک پروژه تحقیقاتی به نام گرین (Green) را آغاز کرد. هدف این پروژه ایجاد زبانی جدید شبیه به C++  بود که نویسنده اصلی آن، جیمزگاسلینگ، آن را بلوط (Oak) نامید. اما بعدها به دلیل برخی مشکلات حقوقی از میان لیستی از کلمات تصادفی نام آن به جاوا تغییر کرد.

پروژه گرین به دلیل مشکلات بازاریابی در شرف لغو شدن بود تا اینکه گسترش وب در سال ۱۹۹۳ باعث نمایش توانایی‌های وافر جاوا در این عرصه گشت. اینگونه بود که شرکت سان مایکروسیستمز در مه ۱۹۹۵ جاوا را رسماً به بازار عرضه کرد.

مرورگرهای اصلی وب، به هم پیوستند تا به طور مطمئن java applet را بدون صفحات وب اجرا کنند و به این صورت جاوا خیلی زود معروف و محبوب شد. با پیدایش java2، نسخه جدید توانست ترکیب‌های جدیدی را برای نوع‌های مختلف پلت فرم‌ها ایجاد کند. به عنوان مثال J2EE، باهدف کاربرد برای تشکیلات اقتصادی، و نسخه J2ME برای موبایل منتشر شد. در سال ۲۰۰۶ با هدف بازاریابی، این شرکت نسخه جدید J2 را با نام‌های JavaEE، JavaME و JavaSE  منتشــــــــر کرد. در سال ۱۹۹۷ شــــرکت سان میــکــروسیـــستــــــمز،ISO/IEC JTC1 standards body و Ecma International  را به فرمول جاوا تغییر داد. شرکت  sun بسیاری از کاربردهای جاوایش را بدون هیچ هزینه‌ای فراهم آورد. در ۱۳ نوامبر ۲۰۰۶ این شرکت نرم‌افزار جاوا را به صورت رایگان و با مجوز عمومی برای همه منتشر کرد.

برنامه های جاوا و اپلت ها

جاوا برای نوشتن انواع برنامه‌های کاربردی مناسب است. با جاوا می‌توان انواع

  • برنامه‌های تحت وب
  • برنامه‌نویسی سیستم‌های کوچک مانند موبایل، پاکت پی‌سی و …
  • برنامه‌های کاربردی بزرگ (Enterprise)

را نوشت.

Applets

قابلیت خاصی در جاوا وجود دارد بنام اپلت. اپلت‌ها امکانات فراوانی برای نوشتن برنامه‌های تحت وب در اختیار برنامه‌نویسان قرار می‌دهند که دیگر زبان‌های برنامه‌نویسی فاقد آن هستند. البته وجود ماشین مجازی جاوا برای اجرای اپلت لازم است. اپلت‌ها نظیر فناوری ActiveX شرکت مایکروسافت هستند که برنامه‌نویسان را قادر می‌سازد تا امکاناتی را به مرورگر کاربر بیفزایند.البته تفاوت این دو در امنیت می‌باشد به گونه‌ای که اپلت‌ها بدلیل اینکه در محیطی به نام جعبه شنی اجرا می‌شوند امن هستند ولی ActiveX‌  ها  فاقد چنین امنیتی هستند.

JAVA

از نظر سیستم‌عامل هر چقدر زبانهایnet . قوی باشند تنها بر روی پلت فرم ویندوز اجرا می‌شوند و برخی ویندوز را سیستم‌عامل غیر قابل اعتمادی در برنامه نویسی Enterprise می‌دانند. ولی جاوا از این نظر انتخاب خوبی است.

از دیدگاه قابلیت حمل؛ جاوا بر روی پلتفرم‌های گوناگونی قابل اجرا است، از ATM و ماشین رختشویی گرفته تا سرورهای سولاریس با قابلیت پشتیبانی از ۱۰۲۴ cpu  برای پردازش.

ویژگی قابل حمل بود (Portable) زبان برنامه نویسی جاوا

یکی از ویژگی‌های جاوا، قابل حمل بودن آن است. یعنی برنامه نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سخت‌افزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شده جاوا را ذخیره می‌کند، اما نه به‌صورت کد ماشین بلکه به‌صورت بایت کد جاوا. كامپايلر جاوا به جاي ايجاد كد محلي ماشين ، كد بايتي براي ماشين مجازي جاوا ايجاد ميكند . براي اجراي دقيق برنامه ، از مفسر جاوا براي اجراي كد هاي بايتي كامپايل شده استفاده ميشود . به دليل اينكه كد هاي بايتي جاوا به نوع كامپيوتر بستگي ندارند ، برنامه هاي جاوا ميتوانند روي هر نوع كامپيوتري كه JVM (Java Virtual Machine) را دارند ، اجرا شوند.

روند عملکرد java

پویا و توزیع شده

جاوا يك زبان پويا است . هر كلاس جاوا ميتواند در هر زماني روي مفسر جاوا بارگذاري شود . سپس اين كلاس هاي بارگذاري شده ي پويا ميتوانند به صورت پويا معرفي شوند . حتي كتابخانه كد هاي محلي ميتواند به طور پويا بارگذاري شود . اين خصوصيت در جاوا ۱-۱ به طور درستي موجود است . با وجود بازتاب API اضافه شده (Application Program Interface ) كه به برنامه ساز امكان ميدهد كه با برنامه از طريق يك برنامه كاربردي ديگر ارتباط برقرار كند .

جاوا حتي با نام زبان توزيع شده نيز خوانده ميشود . به طور ساده اين به اين معنا است كه اين زبان پشتيباني سطح بالايي براي شبكه به وجود مي آورد . براي مثال كلاس URL و كلاس هاي مرتبط با آن در بسته ي Java.net ، خواندن فايل هاي دوردست را به همان سادگي خواندن فايل هاي محلي كرده است . به طور مشابه در جاوا ۱-۱ ، احضار روش كنترلي RMI  (Remote Method Invocation ) ، API به يك برنامه جاوا اجازه ميدهد كه روش هايي از اشياء دور دست جاوا را به همان صورتي كه اگر آن اشياء محلي بدند آنها را ميخواند ، بخواند.

اداره خودکار حافظه

جاوا از حافظه بازیافتی خودکار برای اداره حافظه در چرخه زندگی یک شی استفاده می‌کند. برنامه‌نویس زمانی که اشیا به وجود می‌آیند، این حافظه را تعیین می‌کند. و در زمان اجرا نیز، زمانی که این اشیا در استفاده زیاد طولانی نباشند، برنامه نویس مسئول بازگرداندن این حافظه است. زمانی که مرجعی برای شی‌های باقیمانده نیست، شی‌های غیر قابل دسترس برای آزاد شدن به صورت خودکار توسط بازیافت حافظه، انتخاب می‌شوند.

 

جاوا از نوع اشاره‌گر ریاضی C و ++C پشتیبانی نمی‌کند. در جایی که آدرس اشیا و اعداد صحیح می‌توانند به جای هم استفاده شوند. همانند ++C و بعضی زبان‌های شی‌گرای دیگر، متغیرهای نوع‌های اولیه جاوا شی‌گرا نبودند. مقدار نوع‌های اولیه، مستقیماً در فیلدها ذخیره می‌شوند. در فیلدها (برای اشیا) و در پشته (برای توابع)، بیشتر از heap  استفاده می‌شود. این یک تصمیم هوشیارانه توسط طراح جاوا برای اجرا است. به همین دلیل جاوا یک زبان شی‌گرای خالص به حساب نمی‌آید.

توزیع های مختلف جاوا

منظور از توزیع جاوا پیاده‌سازی‌های مختلفی است که برای کامپایلر جاوا و همچنین مجموعه کتابخانه‌های استاندارد زبان جاوا (JDK) وجود دارد. در حال حاضر چهار توزیع‌کننده عمده جاوا وجود دارند:

سان مایکروسیستمز

GNU Classpath

این توزیع از سوی موسسه نرم‌افزارهای آزاد منتشر شده و تقریبا تمامی کتابخانه استاندارد زبان جاوا در آن بدون بهره‌گیری از توزیع شرکت سان از اول پیاده‌سازی شده است. یک کامپایلر به نام GNU Compiler for Java نیز برای کامپایل کردن کدهای جاوا توسط این موسسه ایجاد شده‌است.

مایکروسافت # J

این در حقیقت یک توزیع جاوا نیست. بلکه زبانی مشابه می‌باشد که توسط مایکروسافت و در چارچوب .net ارائه شده‌است. انتظار اینکه در سیستم‌عاملی غیر از ویندوز هم اجرا شود را نداشته باشید.

 AspectJ

این نیز یک زبان مجزا نیست. بلکه یک برنامه الحاقی می‌باشد که امکان برنامه نویسی Aspect Oriented را به جاوا می‌افزاید. این برنامه توسط بنیاد برنامه‌نویسی جلوه‌گرا و به صورت کدباز ارائه شده‌است.

جاوا در ایران

انجمن برنامه نویسان جاوا و مدیران اوراکل در سال ۲۰۰۵ توسط جمعی از نخبگان رشته مهندسی نرم افزار به سر پرستی مهندس امیر سام بهادر تشکیل شد. در حال حاضر این انجمن در دپارتمان جاوا و اوراکل مرکز تحقیقاتی فناوری اطلاعات و ارتباطات پیشرفته دانشگاه صنعتی شریف مشغول به فعالیت می باشد.

فریم ورک  Shine

این فریم ورک یکی از فریم ورک های محبوب جاوا می باشد که در سال ۲۰۰۹ رتبه اول سایت SourceForge را کسب نموده است. این فریم در حال حاضر در سایت Java.net قابل دسترسی است. این فریم ورک شامل ابزار های برنامه نویسی جهت تولید پروژه های عظیم می باشد. در حال حاضر ییش ۳۰ پروژه عظیم به وسیله این فریم ورک در کشور ایران پیاده سازی شده است که می شود به سیستم نوبت دهی بانکها اشاره نمود.