موضوع مقاله: اکما اسکریپت | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # اکما اسکریپت | مقدمه: اکما اسکریپت برای استانداردسازی جاوا اسکریپت ایجاد شده‌است تا بتواند پیاده‌سازی چندگانه مستقل را تقویت کند. | ## بخش 1: اکما اسکریپت | از زمان انتشار اولین استاندارد، جاوا اسکریپت به عنوان معروف‌ترین پیاده‌سازی اکما اسکریپت، باقی مانده است. اکما اسکریپت به‌طور معمول برای اسکریپ نویسی سمت کلاینت در وب جهان گستر و به‌طور فزاینده‌ای برای نوشتن برنامه‌های سرور و سرویس‌هایی که از نود جی‌اس استفاده می‌کنند، استفاده می‌شود. تاریخ مشخصات اکما یک ویژگی استاندارد شده از یک زبان اسکریپتی است که توسط برندان آیک از نت اسکیپ طراحی شده‌است. در دسامبر ۱۹۹۵ سان مایکروسیستمز و نت اسکیپ جاوا اسکریپت را در مطبوعات اعلام کردند. نام «اکما اسکریپت» بین سازمان‌های مربوط به استانداردسازی زبان با سازش انتخاب شد، به خصوص نت اسکیپ و مایکروسافت، که اختلافات آنها در جلسات اولیه استانداردها جلسات را تحت سلطه خود درمی‌آورد. آیک اظهار داشت که «اکما اسکریپت همیشه یک نام تجاری نامناسب است که به نظر می‌رسد مانند یک بیماری پوستی است.» در حالی که هر دوی جاوا اسکریپت و جی اسکریپت با اکما اسکریپت سازگار هستند، آنها همچنین ویژگی‌های اضافی را که در مشخصات اکما مشخص نشده‌اند، ارائه می‌دهند. با وجود اینکه جاوااسکریپت در ابتدا به‌عنوان یک زبان اسکریپت‌نویسی ساده برای افزودن تعاملات کوچک به صفحات وب طراحی شده بود، اما به‌مرور زمان مسیر تکامل آن به سمتی رفت که از ماهیت اولیه خود فاصله گرفت و به یک زبان برنامه‌نویسی چندمنظوره و قدرتمند برای توسعه نرم‌افزارهای پیچیده تحت وب تبدیل شد. نام جاوااسکریپت که در زمان معرفی، برای بهره‌بردن از محبوبیت زبان جاوا انتخاب شده بود، باعث بروز سوءتفاهم‌هایی درباره ماهیت این زبان شد؛ در حالی که جاوااسکریپت از لحاظ مفهومی و ساختاری تفاوت‌های بسیاری با جاوا دارد و تنها شباهت ظاهری گرامری میان آن‌ها وجود دارد. | ## بخش 2: اکما اسکریپت | جدول زیر لیست نسخه‌های استاندارد ES را به همراه سال انتشار و تعدادی از مهمترین ویژگی‌های هر نسخه ارائه می‌دهد. طبق قوانین استانداردسازی، هر پیاده‌سازی باید تمام قابلیت‌های تعریف‌شده در ES را پیاده‌سازی کند، ولی می‌تواند قابلیت‌های اضافی نیز ارائه دهد. همین موضوع در سال‌های نخستین باعث اختلافاتی بین مرورگرها شد که به «دوران جنگ اول مرورگرها» شهرت دارد از نسخهٔ ES5 به بعد، امکان استفاده از «حالت سخت‌گیرانه» یا Strict Mode برای محدودسازی ویژگی‌های قدیمی و غیراستاندارد فراهم شد. این امکان به توسعه‌دهندگان کمک می‌کند تا از نوشتن کدهای ناسازگار با نسخه‌های جدید خودداری کنند. تاریخچه نسخه‌ها امکانات زبان اکما اسکریپت شامل ویژگی‌های ساختاری، پویا، برنامه‌نویسی تابعی و مبتنی بر پیش نمونه است. سینتکس مختصر ES6 با خود امکان استفاده از یک حالت جدید از تعریف توابع، به نام «توابع فلش» را آورده‌است. ترنسپایل کردن از اکما اسکریپت ۲۰۱۵ تاکنون، ترنسپایل جاوا اسکریپت بسیار رایج شده‌است. به‌طور تکنیکی، امکانات جدید اکما اسکریپت در ورژن های جدید نوعی سینتکس قندی هستند. | ## بخش 3: اکما اسکریپت | ترنسپایل یک تلفیق متن به متن است که در آن نسخه‌های جدیدتر جاوااسکریپت در کد اصلی کاربر مورد استفاده قرار می‌گیرند و ترنسپایل کننده آنها را بازنویسی می‌کند تا با مشخصات فعلی سازگاری داشته باشند. معمولاً ترنسپایل کننده‌ها به نسخه ES3 برای حفظ سازگاری با تمام نسخه‌های مرورگر ترنسپایل می‌کنند. ترنسپایل کردن یک گام برای فرایند ساخت اضافه می‌کند و گاهی برای جلوگیری از استفاده از پولی فیلز (polyfills) نیز می‌تواند استفاده شود. Polyfills اجازه می‌دهد به وسیلهٔ یک فایل جاوا اسکریپتی که ویژگی‌های خاصی را اضافه می‌کند ویژگی‌های اضافی، اضافه شود. Test262 یک مجموعه آزمون سازگاری اکما اسکریپت است که می‌تواند مورد استفاده قرار گیرد تا مقدار نزدیک پیاده‌سازی یک جاوا اسکریپت به مشخصات اکما اسکریپت ۵ را بررسی کند. مجموعه تست شامل هزاران تست اختصاصی است که هر کدام از آنها یک مشخصهٔ خاص از مشخصات اکما اسکریپت را آزمایش می‌کند. چارچوب تست‌ها و آزمایش‌های اختصاصی توسط اعضای سازمان‌های TC39 ایجاد شده و به اکما برای استفاده در Test262 کمک می‌کنند. مجموعه آزمون Test262 در حال حاضر شامل بیش از ۱۱٬۰۰۰ آزمون است و توسعه آن فراتر رفته‌است. | ## جمع‌بندی | جدول زیر نشان دهنده نرخ سازگاری نسخه‌های فعلی نرم‌افزارهای مرورگرهای وب با توجه به آخرین نسخه‌های اخیر اکما اسکریپت است.