تاریخچه جاوا


شرک sun microsystems،زبان زبان برنامه نویسی جاوا را در ژوئن سال ۱۹۹۵ معرفی کرد،قواعد و دستور زبان جاوا از c و C++‎ گرفته شده است.زبان جاوا ابتدا برای لوازم خانگی ،اسباب بازیها و وسایل الکترونیکی طراحی شد تا قبل از این زبان ،لوازم خانگی و الکترونیکی از زبانهایی مانند c استفاده می کردند.


چون لوازم خانگی،اسباب بازیها و وسایل الکترونیک کاملا متنوع بودند و سخت افزار متفاوتی داشتند،شرکتهای این تولید کننده این لوازم مجبور بودند برای هر کدام از آنها نرم افزار جداگانه ای بنویسند مثلا برنامه ای که به زبان c برای یک ماشین لباس شویی نوشته شده بود تا بعد از ۱۵ دقیقه یک آژیر تولید کند نمی توانست روی یک اسباب بازی به همان منظور استفاده شود زیرا اسباب بازی و ماشین لباسشویی سخت افزار متفاوتی داشتند این موضوع باعث افزایش هزینه تولید نرم افزار و سخت افزار شده بود در سال ۱۹۹۱ تیمی از مهندسان شرکت sun تصمیم گرفتند زبانی طراحی کنند که برای لوازم و وسایل الکترونیکی خانگی مورد استفاده قرار گیرد.تلاش این متخصصان منجر به طراحی زبانی مستقل از سخت افزار شد این زبان ابتدا oak نامگذاری شد اما بعدا در سال ۱۹۹۵ به (جاوا) تغییر نام داد.


مدتی کوتاه پس از ارایه این زبان،اینترنت توسعه یافت نکته جالب اینجا بود که کامپیوترهای اینترنت نیز همانند لوازم خانگی متفاوتو متنوع بودند بنابراین نیاز به زبانی بود که بتوان با استفاده از آن برنامه هایی نوشت که در تمام کامپیوترها با سخت افزارهای مختلف قابل اجرا باشد،این بار نیز جاوا گزینه مناسبی بود، به یکباره زبان جاوا به یکی از محبوبترین زبانهای برنامه نویسی اینترنت تبدیل شد و طراحی مناسب آن باعث فراگیر شدن آن گردید امروزه جاوا به عنوان یکی از زبانهای عمده برنامه نویسی،در دنیا طرفداران بسیار زیادی دارد.


جاوا و مزایای آن


جاوا یک زبان یک زبان برنامه نویسی است که دستور زبانی بسیار شبیه به C++‎ دارد در این زبان که در اصل از C++‎ گرفته شده است نقاط ضعف C++‎ در آن حذف شده است جاوا همانند C++‎ یک زبان شی گراست همه چیز در این زبان یک آبجکت است تمام اعمالی که با استفاده از زبانهای دیگر امکانپدیر هستند را نیز می توانید با استفاده از این زبان پیاده سازی کنید.


با استفاده از زبان جاوا چهار دسته عمده از برنامه ها را می توانید پیاده سازی کنید:


Desktop Application
Distributed Application
Web-based Application
Applets



Desktop Application: به برنامه هایی گفته می شوند که روی یک کامپیوتر اجرا می شوند و یک کاربر با آن کار می کند.مثلا برنامه Windows Media Player یک Desktop Applicatin است.


Distributed Application : به برنامه هایی گفته می شود که مجموعه ای از کاربران می توانند با کامپیوتر- های خود و از طریق شبکه از آن استفاده کنند. در این نوع برنامه ها، ممکن است هر قسمت از برنامه روی یک کامپیوتر اجرا شود.به عنوان نمونه،یک برنامه حسابداری تحت شبکه در این دسته قرار می گیرد.


Web-based Application:به برنامه هایی گفته می شود که کاربر از طریق جستجوگر با برنامه کار می کند.یک وب سایت اینترنتی که محصولات یک شرکت را معرفی و به مشتریان می فروشد،در این دسته قرار می گیرد.


Appletes: به برنامه هایی گفته می شود که داخل جستجوگر نمایش داده شده و اجرا می شوند امروزه اگر چه از اپلت ها کمتر استفاده می شوند اما هنوز در جاوا وجود دارند. اپلت‌ها امکانات فراوانی برای نوشتن برنامه‌های تحت وب در اختیار برنامه‌نویسان قرار می‌دهند که دیگر زبان‌های برنامه‌نویسی فاقد آن هستند. البته وجود ماشین مجازی جاوا برای اجرای اپلت لازم است. اپلت‌ها نظیر فناوری Activex شرکت مایکروسافت هستند که برنامه‌نویسان را قادر می‌سازد تا امکاناتی را به مرورگر کاربر بیافزایند.البته تفاوت این دو در امنیت می‌باشد به گونه‌ای که اپلت‌ها بدلیل اینکه در محیطی به نام جعبه شنی اجرا می‌شوند امن هستند ولی Activex ها فاقد چنین امنیتی هستند.سیستم عامل: هر چقدر زبانهای .net قوی باشند تنها بر روی پلت فرم ویندوز اجرا می‌شوند و برخی ویندوز را سیستم عامل غیر قابل اعتمادی در برنامه نویسی Enterprise می‌دانند. ولی جاوا از این نظر انتخابی خوب است.


زبانهای کامپایلی و زبانهای تفسیری


زبانهای کامپایلی به زبانهایی گفته می شود که شما باید از اجرای برنامه،آنرا کامپایل کنید.به عبارت بهتر،آنرا به زبان قابل فهم برای کامپیوتر تبدیل نمایید.برنامه هایی که به زبانهای کامپایلی نوشته می شوند توسط یک برنامه دیگر به نام کامپایلر به زبان کامپیوتر ترجمه می شود سپس برنامه ترجمه شده،توسط سیستم اجرا می شود.در این نوع زبانها شما باید:


۱. ابتدا برنامه خود را به آن زبان بنویسید


۲. برنامه نوشته شده را توسط کامپایلر (که خود یک برنامه کامپیوتری است) به زبان ماشین ترجمه کنید


۳. برنامه به زبان ماشین را اجرا کنید


زبانهای c و C++‎ و پاسکال مثالهایی از زبان کامپایلی هستند.


مثلا در سیستم عامل ویندوز، شما یک برنامه به زبان c می نویسید آنرا توسط کامپایلر، کامپایل می کنید و از روی آن یک فایل .exe می سازید(فایل .exe همان برنامه به زبان ماشین است) سپس با دابل کلیک کردن روی آن،آنرا اجرا می کنید.


در مقابل برنامه هایی که به زبانهای تفسیری نوشته می شود،برخلاف زبانهای کامپایلی ،نیاز به کامپایل ندارد و مستقیما توسط اجرا کننده آن اجرا می شود.


GW-Basic و زبانهای اسکریپتی مثل جاوا اسکریپت و مثالهایی از زبانهای تفسیری هستند.


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


در این میان، جاوا هم یک زبان تفسیری محسوب می شود و هم یک زبان کامپایلی.


برنامه ای که به زبان جاوا نوشته می شود ابتدا باید توسط کامپایلر جاوا به کدهای واسطه ای ترجمه شود که به آنها (بایت کد) گفته می شود سپس کدهای تولید شده،توسط ماشین مجازی جاوا یا همان JVM به زبان ماشین تفسیر شده و اجرا می شوند.JVM قسمتی از جاوا محسوب می شود که اجرا را بر عهده دارد.