تاریخچه زبان برنامه نویسی جاوا
با مقایسه با زبانهای دیگر نظیر C++ یا بیسیک، جاوا به عنوان یک زبان نسبتاً جدید در نظر گرفته میشود. در سال ۱۹۹۱، شرکت سان مایکروسیستمز یک پروژه تحقیقاتی به نام “گرین” (Green) را آغاز کرد. هدف اصلی این پروژه ایجاد یک زبان برنامهنویسی شبیه به C++ بود که توسط جیمز گاسلینگ با نام “بلوط” (Oak) توسعه داده شد. با این حال، به دلیل مشکلات حقوقی، نام زبان به جاوا تغییر یافت.
پروژه گرین در ابتدا با مشکلات بازاریابی روبهرو شد و تا سال ۱۹۹۳ تا حدی به لغو نزدیک بود. اما با گسترش وب در همان سال، جاوا نشان داد که در این عرصه قابلیتهای بسیاری دارد. در نتیجه، شرکت سان مایکروسیستمز در سال ۱۹۹۵ رسماً جاوا را به بازار عرضه کرد.
جاوا به سرعت محبوبیت یافت، به خصوص زمانی که مرورگرهای وب اصلی قادر به اجرای “java applet” بدون نیاز به صفحات وب شدند. با معرفی نسخه جاوا ۲ (Java 2)، امکانات جدیدی برای پلتفرمهای مختلف ارائه شدند. به عنوان مثال، نسخههای J2EE برای کاربردهای تجاری و J2ME برای دستگاههای موبایل منتشر شدند. در سال ۲۰۰۶، جاوا با نامهای JavaEE، JavaME و JavaSE به بازار عرضه شد.
در سال ۱۹۹۷، شرکت سان مایکروسیستمز نرمافزار جاوا را به عنوان استاندارد ISO/IEC JTC1 و Ecma International تایید کرد. همچنین، این شرکت بسیاری از کاربردهای جاوا را به صورت رایگان و با مجوز عمومی برای عموم افراد فراهم آورد. در تاریخ ۱۳ نوامبر ۲۰۰۶، شرکت سان مایکروسیستمز نرمافزار جاوا را به صورت رایگان و با مجوز عمومی عرضه کرد.
برنامه های جاوا و اپلت ها
جاوا برای نوشتن انواع برنامههای کاربردی مناسب است. با جاوا میتوان انواع
برنامههای تحت وب
برنامهنویسی سیستمهای کوچک مانند موبایل، پاکت پیسی و …
برنامههای کاربردی بزرگ (Enterprise) را نوشت.
Applets
قابلیت خاصی در جاوا وجود دارد بنام اپلت. اپلتها امکانات فراوانی برای نوشتن برنامههای تحت وب در اختیار برنامهنویسان قرار میدهند که دیگر زبانهای برنامهنویسی فاقد آن هستند. البته وجود ماشین مجازی جاوا برای اجرای اپلت لازم است. اپلتها نظیر فناوری ActiveX شرکت مایکروسافت هستند که برنامهنویسان را قادر میسازد تا امکاناتی را به مرورگر کاربر بیفزایند.البته تفاوت این دو در امنیت میباشد به گونهای که اپلتها بدلیل اینکه در محیطی به نام جعبه شنی اجرا میشوند امن هستند ولی ActiveX ها فاقد چنین امنیتی هستند.
JAVA
از نظر سیستمعامل هر چقدر زبانهایnet . قوی باشند تنها بر روی پلت فرم ویندوز اجرا میشوند و برخی ویندوز را سیستمعامل غیر قابل اعتمادی در برنامه نویسی Enterprise میدانند. ولی جاوا از این نظر انتخاب خوبی است.
از دیدگاه قابلیت حمل؛ جاوا بر روی پلتفرمهای گوناگونی قابل اجرا است، از ATM و ماشین رختشویی گرفته تا سرورهای سولاریس با قابلیت پشتیبانی از 1024 cpu برای پردازش.
قابلیت حمل :
یکی از ویژگیهای جاوا، قابل حمل بودن آن است. یعنی برنامه نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سختافزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شده جاوا را ذخیره میکند، اما نه بهصورت کد ماشین بلکه بهصورت بایت کد جاوا. كامپايلر جاوا به جاي ايجاد كد محلي ماشين ، كد بايتي براي ماشين مجازي جاوا ايجاد ميكند . براي اجراي دقيق برنامه ، از مفسر جاوا براي اجراي كد هاي بايتي كامپايل شده استفاده ميشود . به دليل اينكه كد هاي بايتي جاوا به نوع كامپيوتر بستگي ندارند ، برنامه هاي جاوا ميتوانند روي هر نوع كامپيوتري كه JVM (Java Virtual Machine) را دارند ، اجرا شوند.
پويا و توزيع شده :
جاوا يك زبان پويا است . هر كلاس جاوا ميتواند در هر زماني روي مفسر جاوا بارگذاري شود . سپس اين كلاس هاي بارگذاري شده ي پويا ميتوانند به صورت پويا معرفي شوند . حتي كتابخانه كد هاي محلي ميتواند به طور پويا بارگذاري شود . اين خصوصيت در جاوا 1-1 به طور درستي موجود است . با وجود بازتاب API اضافه شده (Application Program Interface ) كه به برنامه ساز امكان ميدهد كه با برنامه از طريق يك برنامه كاربردي ديگر ارتباط برقرار كند .
جاوا حتي با نام زبان توزيع شده نيز خوانده ميشود . به طور ساده اين به اين معنا است كه اين زبان پشتيباني سطح بالايي براي شبكه به وجود مي آورد . براي مثال كلاس URL و كلاس هاي مرتبط با آن در بسته ي Java.net ، خواندن فايل هاي دوردست را به همان سادگي خواندن فايل هاي محلي كرده است . به طور مشابه در جاوا 1-1 ، احضار روش كنترلي RMI (Remote Method Invocation ) ، API به يك برنامه جاوا اجازه ميدهد كه روش هايي از اشياء دور دست جاوا را به همان صورتي كه اگر آن اشياء محلي بدند آنها را ميخواند ، بخواند.
فهرست مطالب
تاریخچه زبان برنامه نویسی جاوا
برنامه های جاوا و اپلت ها
قابلیت حمل
پویایی و توزیع شدگی
اداره خودکار حافظه
توزیع های مختلف جاوا
زبان جاوا در ایران