سکوی جاوا: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Reza.sajadian (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
FreshmanBot (بحث | مشارکت‌ها)
جز اصلاح فاصله مجازی + اصلاح نویسه با استفاده از AWB
خط ۱۷:
|وب‌گاه = /http://www.java.com
}}
'''پلتفرم جاوا''' به مجموعه‌ای از محصولات نرم‌افزاری و مشخصه‌ها از شرکت [[سان میکروسیستمز]]، یک زیر مجموعه از شرکت [[اوراکل]]، اطلاق می‌شود که به منظور ایجاد محیطی برای نوشتن نرم‌افزار هایی که به صورت [[چندسکویی]] اجرا می‌شوند به کار می‌رود. جاوا در محدوده وسیعی از کاربردها، مورد استفاده قرار می گیردمی‌گیرد. کاربردهایی را محدوده ی وسیعی از [[سکوی رایانش|سکوهای محاسباتی]]، [[سامانه توکار|سامانه‌های توکار]]، [[تلفن همراه|تلفن‌های همراه]] که کاربردهایی در دستگاه‌های معمولی هستند تا دستگاه هایی از قبیل [[ابررایانه|ابررایانه ها]] و [[سرور (رایانه)|رایانه‌های خدمتگزار]] را شامل می شودمی‌شود. البته گستردگی جاوا به اندازه ایاندازه‌ای که در [[کارساز وب|خدمتگزاران وب]] و [[رایانه رومیزی]] استفاده می گردد، نیست. [[جاوا اپلت]]، به عنوان بخشی از سکوی جاوا، برای فراهم آوردن عملیاتی توسعه یافته و ایمن، در وب استفاده می گردد.{{سخ}}
نوشتن برنامه به زبان [[جاوا (زبان برنامه‌نویسی)|جاوا]]، راهی برای تولید کد این زبان است که در نهایت منجر به تولید [[بایت کد]] می گردد. هرچند [[مترجم]] زبان هایی مانند [[جاوا اسکریپت]]، [[روبی]]، [[پایتون]] نیز قادر به تولید بایت کد می باشندمی‌باشند. امروزه تعدادی از زبانزبان‌های های برنامه نویسیبرنامه‌نویسی به گونه ایگونه‌ای طراحی شده اند که قابل اجرا روی [[ماشین مجازی جاوا]] باشند. از این میان می توانمی‌توان به [[اسکالا]]، [[کلوژر]] اشاره نمود. [[نحو جاوا]]، بسیار شبیه به نحو زبان هایزبان‌های [[سی]] و [[سی++]] است. ولی [[برنامه‌نویسی شیء گرا|شیء گرایی]] بکار رفته در آن مدل شده ی [[اسمال‌تاک]] و [[آبجکتیو-سی]] است.<ref>[http://virtualschool.edu/objectivec/influenceOnJava.html Java Was Strongly Influenced by Objective-C<!-- عنوان تصحیح شده توسط ربات -->]</ref> جاوا با ساده سازی استفاده از تملک حافظه (با روش قرار گیری روی [[هیپ]]) و نیز حذف عناصر سطح پایینی چون [[اشاره گر]] و جایگزینی آن‌ها با [[مراجع (نرم‌افزار)|مراجع]] ساده سازی در زبان صورت پذیرفته استپذیرفته‌است. از سویی دیگر مدیریت حافظه با استفاده از بخش یکپارچه و خودکار با نام [[زباله‌روب (علوم رایانه)|زباله‌روب]] {{انگلیسی|Garbage Collection}}، وسیله ماشین مجازی جاوا صورت می پذیرد.{{سخ}}
در ۱۳ [[نوامبر]] سال ۲۰۰۶(۲۲ آبان ۱۳۸۵)، شرکت [[سان میکروسیستم]] بخش عظیمی از جاوا را تحت [[پروانه عمومی همگانی گنو]] منشر نمود.<ref>[http://web.archive.org/web/20080513023707/http://www.sun.com/2006-1113/feature/story.jsp Sun Opens Java<!-- عنوان تصحیح شده توسط ربات -->]</ref> اگرچه بخش هایی از جاوا، هرچند اندک، هنوز به دلیل مسایل [[کپی رایت]] با مجوز سان و به صورت بایت کد هایی از پیش کامپایل شده، منتشر گردید؛ چرا که این بخش‌های متعلق به شرکت سان نیست.<ref>[http://www.sun.com/software/opensource/java/faq.jsp#g10_1 Related Technologies | Oracle<!-- عنوان تصحیح شده توسط ربات -->]</ref>{{پیوند مرده}}
 
== سکو ==
سکوی جاوا{{انگلیسی|Java Platform}}، نامی برای نرم‌افزارهای یا سکو مرتبطی استکه از سوی شرکت سان، برای توسعه و اجرای برنامه‌های نوشته شده به زبان جاوا منتشر شده. عبارت [[سکو]]، بیانگر پردازنده یا سیستم عامل خاصی برای اجرا برنامه‌های جاوا نیست، بلکه بیانگر موتور اجرایی این زبان ( که با نام [[ماشین مجازی جاوا]] معرفی می گردد) است. همچنین بیانگر [[مترجم|مترجمی]] با مجموعه ایمجموعه‌ای از کتابخانه هاست که قابلیت اجرایی فارغ از [[سخت افزار]] و [[سیستم عامل|سیستم عامل های]] مختلف، را داراست. بنابراین جاوا به صورت مشخصی بر روی هر دستگاهی که ماشین محازی داشته باشد اجرا می گردد.
* [[جاوا کارت]] : به فناوری ایی اطلاق می گردد که به برنامه هایبرنامه‌های مبتنی بر جاوا([[جاوااپلت|اپلت ها]]) اجازه اجرایی امن بر روی [[کارت هوشمند|کارت‌های هوشمند]] و دستگاه‌های مشابه، را می دهدمی‌دهد.
* جاوا نگارش ریز{{انگلیسی|Micro Edition}}: مجموعه از چندین کتابخانه را مشخص می نماید که برای دستگاه هایی است که توانایی پشتیبانی کامل از کل مجموعه کتابخانه‌های جاوا را ندارند. چراکه که در صورت استفاده از تمام کتابخانه ها، بخش عظیمی از فضای ذخیره سازی را شامل می گردد.
* جاوا نگارش استاندارد{{انگلیسی|Standard Edition}} : برای اهداف عمومی که قابل استفاده در [[رایانه رومیزی]]، [[کارساز (رایانه)|کارگزار]] و ابزارها و دستگاه‌های مشابه است.
* جاوا نگارش سازمانی {{انگلیسی|Enterprise Edition}}: در واقع همان نگارش استاندارد جاوا به همراه [[رابط برنامه‌نویسی نرم‌افزار]] متنوع و مفیدی برای [[مدل کارخواه-کارساز|مشتری خدمتگزار]] و [[معماری چندلایه]] و [[کارساز کاربردی|خدومت گزار کاربردیاست]].
در ماه سپتامبر۲۰۰۹، نگارش سابق سکوی جاوا با شماره ۱.۶.۰، که به صورت تجاری نگارش ۶ خوانده می‌شود منتشر شد. نمایش این نگارش به صورت ۱.۶.۰ برای [[توسعه دهندگان]] است.{{سخ}}
اوارکل که پس از خرید سان، عنوان توسعه‌دهندۀ رسمی جاوابه جای این شرکت بر عهده گرفته استگرفته‌است در تاریخ ۲۸ ژوئیه ۲۰۱۱(۶ مرداد ۱۳۹۰) نگارش هفتم جاوا را با کد ۱.۷.۰ را منتشر ساخت<ref>{{یادکرد وب | نشانی = http://www.theinquirer.net/inquirer/news/2097921/oracle-releases-java-standard-edition | عنوان = اوراکل نگارش استاندارد جاوا ۷ را منتشر نمود| تاریخ بازدید = ۱۰ مرداد ۱۳۹۰| نویسنده = لاورنس لطیف| تاریخ = ۲۹ ژوئیه ۲۰۱۱| قالب = اچ‌تی‌ام‌آل| ناشر = دِ انکویرر| زبان = انگلیسی}}</ref>. اگرچه این انتشار با اعلام امکان بروز برخی خطاها در کامپایل برنامه‌ای ارایهارائه شده از سوی بنیاد آپاچی، مانند لوسنه و سولار همراه بوده‌است<ref>{{یادکرد وب
| نشانی = http://www.infoworld.com/t/java-programming/apache-and-oracle-warn-serious-java-7-compiler-bugs-168516
| عنوان = اوراکل و آپاچی امکان بروز خطاهای جدی‌ای را در کامپایل با جاوای ۷ اعلام نمودند.| تاریخ بازدید = ۱۰ مرداد ۱۳۹۰| نویسنده = تد سامسون| تاریخ = ۲۹ ژوئیه ۲۰۱۱| قالب = اچ‌تی‌ام‌آل| ناشر = اینفو ورلد| زبان = انگلیسی}}</ref>. این سکوی جاوا شامل مجموعه ایمجموعه‌ای چندین برنامه است. هر یک از این برنامه‌ها بخش مشخص و یکتایی از قابلیت‌های کلی را پوشش می دهدمی‌دهد. برای مثال، مترجم جاوا، که وظیفه اش تبدیل کد جاوا به بایت کد جاواست (که زبانی واسط برای ماشین مجازی جاواست) به عنوان بخشی از [[کیت توسعه جاوا|کیت توسعه جاواست]]. [[محیط زمان اجرای جاوا]] به عنوان مکمل ماشین مجازی جاو عمل می نماید. این محیط با اجرای [[کامپایل درجا]]، بایت کدهای تولید در واسط رابه زبان بومی ماشینی که برنامه در آن در حال اجراست، تبدیل می نماید. همچنین کتابخانه هایی گسترده ایگسترده‌ای وجود دارند که به صورت از پیش ترجمه شده که شامل مولفه هایی هستند که بعضی از آنهاآن‌ها فقط در نگارش‌های خاص استفاده می شوندمی‌شوند.{{سخ}}[[پرونده:سکوی جاوا.png|frame|وسط|دیاگرام سکوی جاوا منتشر شده از سوی سان]]
=== ماشین مجازی جاوا ===
قلب تپنده سکوی جاوا، مفهوم "ماشین مجازی" است. ماشیت مجازی اجراکننده ی [[بایت کد|بایت کدهای]] برنامه است. بایت کد فارغ از نوع سخت افزار و سیستم عاملی که برنامه در آن در حال اجرا می شود،می‌شود، یکسان است. در این ماشین مجازی، کامپایلری به نام '''جی ای تی''' وجود دارد. این کامپایلر، بایت کدهای جاوا را به صورت دستورات بومی همان پردازنده ی مجری برنامه، به شکل زمان اجرا، تبدیل می نماید. این کامپایلر همچنین، کد اصلی را به صورت بومی شده برای زمان اجرا، در حافظه مقیم می سازد.این شکل استفاده از بایت کد، به عنوان یک واسط، جاوا قادر به اجرا در هر سکویی که دارای ماشین مجازی باشد، است. '''جی ای تی''' با این امکانات، زمینه را به نحوی فراهم می سازد که برنامه بعد از اجرا، تقریباً با سرعتی معادل با برنامه بومی همان سیستم قابل اجراست. البته این اجرا با تاخیری اولیه برای بارگذاری و اصطلاحاً '''گرم شدن''' همراه است. از زمان ارائه نگارش 1.2 محیط اجرای جاوا، مفسر این زبان جایش را به پیاده سازیپیاده‌سازی دیگری از شرکت سان داد. در واقع مفسر به [[کامپایل درجا]] تبدیل گردید.{{سخ}}
اگرچه برنامه‌های جاوا، فارغ از نوع سکوست، ولی فاغ بودن شامل کد ماشین مجازی جاوا مجری نمی‌شود. در واقع هر سیستم عامل، ماشین مجازی ویژه ی خود را دارد.
=== سکوهای مشابه ===
موفقیت و گسترش جاوا و این تفکر و مفهوم [[نوشتن یکبا، اجرا همجا]]، باعث گردید تا تلاشهای مشابهی برای ایجاد سکوهای همسان شروع شود. یکی از این تلاش ها، [[چارچوب دات‌نت|دات نت مایکروسافت]] بود که در سال ۲۰۰۲ رو نمایی شد، که بسیاری از جنبه‌های عالی جاوا را پیاده سازیپیاده‌سازی نموده بود. دات نت، با پایان پیاده سازیپیاده‌سازی اش از سوی [[مایکروسافت]]، تنها قادر به اجرا تحت ویندوز این شرکت است. این درحالی است که جاوا قادر به اجرا در تمام سیستم عامل هاست. دات نت از ابتدا برای پشتیبانی از چندین زبان برنامه نویسبرنامه‌نویس طراحی گردیده بود، در حالی که سکوی جاوا، تنها یک هدف با نام زبان برنامه نویسبرنامه‌نویس جاوا داشت.(اگرچه امروزه بسیاری از زبانه‌ها قادر به اجرا در ماشین مجازی جاوا هستند).{{سخ}}
دات نت، زبان جاوا مانندی با نام [[جی‌شارپ]] ([[جی++]] سابق) را طراحی نمود که با خصوصیات جاوا همخوانی کامل را ندارد و بسیاری از کلاسهای منتشر شده ی آن مربوط به نگارش ۱.۱ جاواست. به همین دلیل، به عنوان یک زبان برای انتقالی از جاوا به سمت سکوی دات نت، و نه یک زبان از دات نت، در نظر گرفته می شودمی‌شود. توسعه ویژوال جی شارپ، از نگارش ۲۰۰۸ ویژوال استودیو، متوقف شد. نگارش موجود، که با بسته [[مایکروسافت ویژوال استودیو]] ارایهارائه می گردد و تنها تا سال ۲۰۱۵، در طی استراتژی چرخه زمانی، باقی خواهد ماند
 
== زبان‌های مورد استفاده ==
کلمه جاوا معمولاً برای اشاره به [[جاوا (زبان برنامه‌نویسی)|زبان برنامه نویسیبرنامه‌نویسی جاوا]] استفاده می گردد. این زبان برای استفاده از سکوی جاوا مورد استفاده قرار می گیردمی‌گیرد. زبان‌های برنامه نویس، در واقع بحثی خارج از بحث [[سکو|سکوست]]. اگرچه زبان برنامه نویسیبرنامه‌نویسی جاوا، به عنوان بخشی از هسته جاواست.{{سخ}}
زبان و زمان اجرا معمولاً به صورت واحد در نظر گرفته می شوندمی‌شوند. با این وجود، افراد و شرکت‌های ثالث برخی از [[مترجم]] و [[مفسر|مفسرهایی]] را با هدف استفاده از امکانات ماشین مجازی جاوا، طراحی و پیاده سازی نمودهپیاده‌سازی اندنموده‌اند. بعضی از آنهاآن‌ها برای زبان هایی طراحی شده اند که در حال حاضر نیز موجود هستند، در حالی که بعضی دیگر برای گشترش به نگارش از زبان جاوای خود هستند. این‌ها شامل :
* [[کلوژر]]
* [[جی روبی]]، مفسر [[روبی]]
خط ۴۸:
* [[رهینو]]، مفسر [[جاوا اسکریپت]]
=== کیت نوسعه جاوا ===
'''کیت توسعه جاوا'''، محصولی از سان برای توسعه دهندگان جاواست که از زمان پیدایش جاوا، بسیار مورد توجه قرار گرفته استگرفته‌است. این بسته شامل یک مترجم و تعداد دیگر از ابزارهای مهم برای توسعه جاواست، ازجمله یک کپی کامل از [[ماشین مجازی جاوا]].
 
== جستارهای وابسته ==