جاوا
از ویکیپدیا، دانشنامهٔ آزاد.
جاوا یک زبان برنامهنویسی شیءگرا است که توسط شرکت سان میکرو سیستمزپدید آمده است.
فهرست مندرجات |
[ویرایش] جاوا
جاوا، امروزه یکی از متداول ترین زبان های برنامه نویسی جهان است. این زبان از لحاظ ظاهری شباهت های زیادی به ++C دارد ولی در اصل می توان تفاوت های بنیادین زیادی را برای آنها بر شمرد. بر خلاف بسیاری دیگر از زبان های کامپایلری که سورس کد آنها پس از کامپایل شدن به باینری یک ماشین حقیقی ترجمه می شود، برنامه های جاوا پس از کامپایل شدن به باینری ماشینی به نام ماشین مجازی جاوا یا JVM ترجمه می شود. این کد باینری را بایت کد می گویند. ماشین مجازی جاوا عمدتا بصورت نرم افزاری پیاده سازی می شود ولی پیاده سازی های سخت افزاری یا ترکیبی (بیشتر به صورت کمک پردازنده) از آن نیز وجود دارد. استفاده از ماشین مجازی یک روش مدرن در زبان های برنامه نویسی محسوب می شود و مزایای زیادی دارد. ماشین مجازی جاوا می تواند امنیت اجرای برنامه ها را تضمین کند و حق دسترسی های مختلفی برای برنامه ها در نظر بگیرد. همچنین ماشین مجازی جاوا سازگاری اجرای برنامه های جاوا را تحت سیستم عامل های مختلف حفظ می کند. یک باور غلط در بین بسیاری از مردم این است که برنامه های نوشته شده به زبان جاوا کندتر از برنامه های نوشته شده به زبان های کامپایلری اجرا می شود، در حالی که سرعت اجرای یک برنامه جاوا کاملا بستگی به نحوه پیاده سازی ماشین مجازی دارد. ماشین های مجازی جدید جاوا معمولا از تکنیکی به نام کامپایل در زمان لازم یا JIT استفاده می کنند. در این روش در هنگام اجرای برنامه بایت کد ابتدا به کد باینری ماشینی حقیقی که بر روی آن اجرا می شود ترجمه می شود و سپس باینری ترجمه شده بر روی ماشین اصلی اجرا می شود. در این فرآیند ماشین مجازی می تواند بهینه سازی های خاص ماشین حقیقی را بر روی کد انجام دهد که در برخی موارد باعث می شود برنامه های جاوا حتی سریع تر دیگر زبان های کامپایلری اجرا شود.
[ویرایش] تاریخچه
جاوا در مقایسه با سایر زبانها همچون ++C یا Basic یا Fortran زبان نسبتاً جدیدی است. شرکت سان میکروسیستمز (یا به اختصار سان) در سال 1991 یک پروژه تحقیقاتی به نام Green را آغاز کرد. هدف این پروژه ایجاد یک زبان جدید شبیه به ++C بود که نویسنده اصلی آن، جیمز گاسلینگ، آن را بلوط Oak می نامید. اما بعدها به دلایل مشکلات حقوقی نام آن به جاوا تغییر کرد. پروژه گرین به دلیل مشکلات بازاریابی در شرف لغو شدن بود تا اینکه گسترش وب در سال 1993 باعث نمایش تواناییهای وافر جاوا در این عرصه گشت. و به اینگونه بود که سان در می 1995 جاوا را رسما افتتاح کرد.
[ویرایش] برنامههای جاوا و اپلتها
جاوا برای نوشتن انواع برنامههای کاربردی مناسب است. با جاوا میتوان انواع برنامههای زیر را نوشت:
- برنامههای تحت وب؛
- برنامهنویسی سیستمهای کوچک مانند موبایل، پاکت پیسی و ...؛
- برنامههای کاربردی بزرگ (Enterprise)؛
- برنامههای رومیزی (Desktop)؛
- و غیره.
قابلیت خاصی در جاوا وجود دارد بنام اپلت. اپلتها امکانات فراوانی برای نوشتن برنامههای تحت وب در اختیار برنامه نویسان قرار میدهند که دیگر زبانهای برنامه نویسی فاقد آن هستند.[نیاز به ذکر منبع] البته وجود ماشین مجازی جاوا برای اجرای اپلت لازم است.
از برتریهای جاوا نسبت به زبانهای مایکروسافتی مثل سیشارپ که بسیار شبیه این زبان هست میتوان موارد زیر را نام برد:[نیاز به ذکر منبع]
1 - سیستم عامل: هر چقدر زبانهای .net قوی باشند تنها بر روی پلت فرم ویندوز اجرا میشوند و برخی ویندوز را سیستم عامل غیر قابل اعتمادی در برنامه نویسی Enterprise می دانند.[نیاز به ذکر منبع] ولی جاوا از این نظر انتخابی خوب است. (هنوز پروژه mono به نتایج پایانی خود نرسیده)
2- قابلیت حمل: جاوا بر روی پلتفرمهای گوناگونی قابل اجرا است، از ATM و ماشین رختشویی گرفته تا سرورهای سولاریس با قابلیت پشتیبانی از 1024 cpu برای پردازش.
3- جاوا بیشتر از یک زبان است: جاوا فقط یک زبان نیست و انجمنهایی متشکل از بزرگان صنایع و برنامهنویسان زیادی مشغول به توسعه و ایجاد استانداردهای جدید و به روز هستند.
[ویرایش] تکنولوژیهای اصلی جاوا در حال حاضر
- برنامهنویسی برای سیستمهای رومیزی (J2SE)
- برنامهنویسی سمت سرور (J2EE) که به تازگی به JAVA EE 5 تغییر نام داده است.
- برنامهنویسی برای سیستمهای موبایل و رایانههای کوچک (J2ME)
[ویرایش] توزیعهای جاوا
در حال حاضر چهار توزیع کننده عمده جاوا وجود دارند:
سان میکروسیستمز: توزیع کننده اصلی جاوا و مبدع آن می باشد. در اکثر موارد هنگامی که گفته میشود جاوا منظور توزیع سان می باشد. تاکنون 7 توزیع از این شرکت ارائه شده اند. جاوا 1.0 - 1.1 - که به جاوا 1 مشهورند. جاوا 1.2 – 1.3. 1.4 و 1.5 که به جاوا 2 مشهورند اخیرا نیز توزیع 1.6 از جاوا با کدرمز ماستانگ به صورت آزمایشی منتشر شده است. قابل ذکر است توزیعهای جاوا بر روی اکثر سیستم عاملها مانند ویندوز، یونیکس و سولاریس، لینوکس و موارد مشابه عرضه شده است.
GNU Java یا gcj کمپایلر کدباز جاوا می باشد. این توزیع از سوی موسسه نرم افزارهای آزاد منتشر شده و فعلا تنها در سیستم عاملهای لینوکس قابل استفاده است. این کمپایلر توانایی ایجاد کد اجرایی (در مقابل بایت کد توزیع سان) را داراست.
مایکروسافت J# این در حقیقت یک توزیع جاوا نیست. بلکه زبانی مشابه می باشد که توسط مایکروسافت و در چارچوب .net ارائه شده است. انتظار اینکه در سیستم عاملی غیر از ویندوز هم اجرا شود را نداشته باشید.
AspectJ این نیز یک زبان مجزا نیست. بلکه یک برنامه الحاقی می باشد که امکان برنامه نویسی Aspect Oriented را به جاوا می افزاید. این برنامه توسط بنیاد برنامه نویسی جلوه گرا و به صورت کد باز ارائه شده است.
[ویرایش] نقاط ضعف
مهمترین ایرادی که برنامه نویسان سایر زبانها به زبان جاوا می گیرند سرعت اجرایی بسیار پایین جاوا است. یک برنامه جاوا به صورت بایتکد می باشد و باید در ماشین مجازی جاوا اجرا گردد. به همین دلیل سرعت اجرای پایینی را در مقابل زبانهای قدرتمندی همچون ++C دارد. به صورت دیگر یک برنامه C به طور متوسط تا 10 برابر سریعتر از برنامه مشابه جاوا اجرا میگردد. جاوا علی رغم شیء گرا بودن در بخشی از قسمتها برای ایجاد انعطاف بیشتر یا بازاریابی بهتر برخی اصول شی گرایی را نادیده گرفته است. از جمله این قسمتها قابلیت بازتابش Reflection می باشد. هدف اصلی بازتابش این است که استفاده مجدد از کدها و گسترش کدهای موجود و مهمتر از همه نوشتن برنامههای الحاقی آسان گردد ولی این مهم با زیر پا گذاشتن بعضی اصول ممکن شده است. برای نمونه با کمک بازتابش به راحتی میتوان متدهای خصوصی دیگر کلاسها را فراخوانی کرد! زبان جاوا در مقابل زبانی مثل ++C ساده تر و یادگیری ان آسانتر است. این آسانتر بودن به سادگی به دست نیامده است بلکه با حذف بسیاری از موارد که باعث قدرتمند تر بودن زبان ++C بودهاند ایجاد شده است. مهمترین این موارد اشاره گرها و وراثت چندگانه بودهاند که در زبان جاوا یافت نمی شوند. از آنجایی که جاوا زبانی با عدم وابستگی به بستر می باشد پس استفاده از توابع سیستم عامل را در برنامه نمی پذیرد. به همین صورت نمیتوان از واسطهای برنامه نویسی غیر از جاوا در آن استفاده نمود.
[ویرایش] یک اشتباه متداول
برخی مردم به علت شباهت اسمی، جاوا و جاوااسکریپت را با هم اشتباه میگیرند. در حالیکه این دو زبان گرچه در ظاهر و کلمات شبیهند ولی بطور ساختاری با یکدیگر متفاوتند. جاوا اسکریپت محصول شرکت نت اسکیپ است.
[ویرایش] منابع
- Sun MicroSystems Documentation on JDK 1.5
- Dietell & Dietell , Java How to Program, 6th Ed. Prentice Hall, 2005
- Bruce Eckel, Thinking in Java, 3rd Edition, www.BruceEckel.com
زبانهای اصلی برنامهنویسی (ویرایش) | |||
صنعتی-تجاری: آباپ | آدا | اسمالتاک | اسمبلی | ایدبلیوکی | ایفل | بیسپ معمولی | پاسکال | پاوربیلدر | پایتون | پرل | پیاچپی | پیال/اسکیوال | تیاسکیوال | تیسیال | جاوا | جاوااسکریپت | دلفی | روبی | ساس | سی | سی شیءگرا | سیپلاسپلاس | سیشارپ | فرترن | کوبول | کولدفیوژن | لیسپ | ویژوال بیسیک.نت | ویژوال بیسیک | ویژوال سی نهفته | ویژوال سی.نت | ویژوال سی شارپ دات نت | ویژوال سی | ویژوال فاکس پرو
|