تاریخچه جاوا 1
[ویرایش]
جاوا در مقایسه با سایر زبانها همچون سیپلاسپلاس یا Basic یا Fortran زبان نسبتاً جدیدی است. شرکت سان میکروسیستمز (یا به اختصار سان) در سال 1991 یک پروژه تحقیقاتی به نام Green را شروع کرد. هدف این پروژه ایجاد یک زبان جدید شبیه به C++ بود که نویسنده اصلی آن، جیمز گاسلینگ، آن را بلوط Oak می نامید. اما بعدها به دلایل مشکلات حقوقی نام آن به جاوا تغییر کرد. پروژه گرین به دلیل مشکلات بازاریابی در شرف لغو شدن بود تا اینکه گسترش وب در سال 1993 باعث نمایش تواناییهای وافر جاوا در این عرصه گشت. و به اینگونه بود که سان در می 1995 جاوا را رسما افتتاح کرد.
جاوا برای نوشتن انواع برنامههای کاربردی مناسب است. با جاوا میتوان انواع برنامههای زیر را نوشت:
· برنامههای تحت وب
· برنامهنویسی سیستمهای کوچک مانند موبایل، Pocket PC و ...
· برنامههای کاربردی بزرگ (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
مهندسی نرم افزار کامپیوتر