جاوا JAVA یک زبان برنامه نویسی است که درسال 1994 توسط یکی از مهندسین شرکت سان (sun) به نام جیمز گوسلینگ نوشته شد، جیمز از نوشتن برنامه با ++C خسته شده بود و جاوا را برای رفع نیازهای خود طراحی کرد. مثل لینوکس ترودلز که لینوکس (Linux) را برای استفاده خود پدید آورد.
جیمز ابتدا نام این برنامه را oak گذاشت. در آنزمان شرکت sun از توسعه oak منصرف شد ولی با پیشرفت و گسترش اینترنت و مشخص شدن قابلیت های برنامه و تطابق بعضی ویژگی های آن با نیازهای اینترنت شرکت sun پروژه oak را فعال نمود و نام جاوا را برای آن برگزید.
نام جاوا از Jsut Another Vague Acronym گرفته شده است و دلیل آن این بود که تیم برنامه نویسان جاوا به قهوه خیلی علاقه داشتند. این موضوع در لوگوی جاوا هم مشهود است!!
نگارش نسخه اول جاوا در سال 95 آغاز شد و در سال 97 نسخه 1/1 و در سال 98 نسخه 1/2 به بازار ارایه شد. البته تا کنون نسخه های متفاوت با قابلیت های متفاوت به بازار ارایه شده است. جاوا زبان مادر برای سیستم عامل سولاریس است، مثل بیسیک برای سیستم عامل ویندوز و زبان سی برای یونیکس.
مهم ترین ویژگی جاوا این است که اساسا شی گراست به این معنی که توانایی استفاده مجدد و مکرر از کدهای از پیش نوشته شده را دارد.
ویژگی دیگر جاوا این است که بر روی سیستم های مختلف کار می کند مثلا برنامه ای که شما با یک سیستم اینتل نوشته اید به راحتی روی یک سیستم مکینتاش و یونیکس اجرا می شود و این عامل اصلی موفقیت جاوا است.
سادگی، قابل انتقال بودن، کارایی بالا، استحکام، پویایی و ایمنی بالا از دیگر قابلیت های جاوا است.
معمول ترین برنامه هایی که با جاوا نوشته می شود Applet ها هستند. Applet برنامه ای پویا است که در یک صفحه وب اجرا می شود و برای دیدن آن به مرورگری نیاز است که جاوا را پشتیبانی کند. علاوه بر این شما می توانید با جاوا برنامه های کاربردی، چند منظوره وسطح بالا بنویسید مثل نرم افزارهای سرویس دهی شبکه یا سرویس دهنده پست الکترونیک.
جاوا در واقع یک زبان برنامه نویسی شی گرا وبسیار قدرتمند است و تمام خصوصیت های ++C و C را داراست. البته خصوصیت های مشکل ساز آن مثل وراثت و اشاره گرها را کنار گذاشته است. برنامه نویسانی که با C++ آشنا هستند خیلی راحت و سریع می توانند JAVA را یاد بگیرند. با جاوا کد نویسی بسیار آسان تر است و کدها و کلاس ها و کتابخانه های آماده جاوا باعث می گردد نوشتن یک برنامه با جاوا از نظر تعداد خطوط و زمان لازم تقریبا یک سوم یک برنامه ++C است.
.NET رقیب JAVA؟
.NET فرمی است که به وسیله مایکروسافت MicroSoft برای ساخت سایت ها با قابلیت های زیاد و متفاوت ایجاد شده است به طوری که قسمتی از یک پروژه را می توان با ++CV و بخش دیگر را با برنامه ای دیگر نوشت و در نهایت کل آن توسط یک واسطه به نام MSIL ترجمه شده و در محیط .NET قابل اجرا است.
J2EE (نسخه جدید JAVA) به وسیله شرکت SUN و با همکاری شرکت های IBM و HP تهیه شده است. در این قالب تنها زبانی که مورد استفاده قرار می گیرد جاوا است، و بر خلاف .NET که فقط روی محیط های سازگار با ویندوز عمل می کند، مستقل از سخت افزار است.
بین .NET و JAVA کدام را انتخاب کنیمًـ؟
- قابلیت انتقال برنامه ها روی سیستم های مختلف و شعار اصلی جاوا یعنی: "یک بار بنویس و هر جا استفاده کن" (Writeonce-Run anywhere) موضوعی بسیار حایض اهمیت است که بسته به نیاز شما و نوع برنامه شما می تواند خیلی مهم باشد.
- در محیط هایی که چند نوع سیستم سخت افزاری وجود دارد قطعا برنامه های تحت جاوا مناسب تر است ولی اگر در محیط مورد نظر شما از سیستم عامل ویندوز استفاده می شود استفاده از .NET هزینه کمتری در برخواهد داشت.
- .NET ویژگی هایی دارد که با آن می توان سایت های جذاب و زیباتری ساخت اما در سایت های پیچیده و بزرگ و جایی که کارایی مهمتر از ظاهر است بهتر است از جاوا استفاده کنیم.
- تصور کنید نیاز به برنامه ای دارید که در آن چیزهایی به صورت دینامیک ایجاد می شوند و پس از طی یک سری عملیات بر روی آنها از بین می روند، در این نوع برنامه ها تعقیب اشیایی که در برنامه ساخته می شوند، تخصیص و مدیریت حافظه تماما بر عهده برنامه نویس است. اما جاوا دارای یک سیستم خودکار مدیریت و پاکسازی حافظه است که بسیاری از مشکلات را آسان کرده است.
هر تکنولوژی که ایجاد می شود؛ هر برنامه ای که مورد توجه عموم قرار می گیرد قطعا مورد توجه نفوذگران هم واقع می شود، هر سیستمی که بخواهد بماند و پیشرفت کند نیاز به ایمنی دارد و اینجاست که سدهای حفاظتی جاوا و مدل های امنیتی آن که حاصل تلاش زبردست ترین برنامه نویسان دنیاست مورد توجه قرار می گیرد. مدل چهار لایه امنیتی جاوا جلوی خیلی از اقدامات خرابکارانه و نفوذی را می گیرد، ولی هیچ سدی 100درصد غیر قابل نفوذ نیست!!
در هر حال انتخاب بین این دو نیاز به بررسی دقیق، آینده نگری و مشخص شدن اهداف دراز مدت و میزان سرمایه گذاری شما دارد زیرا هزینه هایی که یک برنامه جاوا دربر دارد در اکثر موارد چندین برابر یک برنامه .NET خواهد بود.