تفاوت های JavaScript و ECMAScript

تصویر شاخص تفاوت های JavaScript و ECMAScript

خب سلام و ارادت خدمت دوستان عزیز، توی این پست قصد داریم به تفاوت‌های بین جاوا اسکریپت و اکما اسکریپت بپردازیم و هر دو رو به‌صورت کامل و مجزا تعریف کنیم و بعدش تفاوت‌های بین‌شون رو واضح کنیم، از اونجایی که این دو اسم به‌اشتباه در جاهای زیادی به‌جای هم به‌کار برده می‌شن

اول از ES شروع می‌کنیم و بعد به‌سمت JS می‌ریم، همچنین سعی می‌کنم این پست هم بیش از حد طولانی نباشه و سر راست بریم سر اصل مطلب و حاشیه نریم

سازمان ECMA International چیست ؟

سازمان ECMA مخفف European Computer Manufacturers Association هست که به معنی سازمان تولیدکنندگان کامپیوتر اروپا هست و هدف اون استانداردسازی فناوری اطلاعات و ارتباطات و لوازم الکترونیکی هست

به‌عبارت ساده‌تر، یک سازمان اروپایی هست که سعی می‌کنه به‌صورت بین‌المللی قواعد و استاندارد‌هایی رو وضع کنه که کل دنیا از اون تبعیت کنند و لوازم الکترونیکی یک‌دست و با استاندارد‌های یک‌پارچه‌ای رو تولید کنند

کاری که این سازمان انجام میده، در واقع یک‌پارچه‌سازی این حوزه در کل جهان هست، که هر کشور یا منطقه یا ... ای به‌صورت سر خودی اقدام به ایجاد استاندارد‌های خودش نکنه، چرا که با این کار ناسازگاری‌های زیادی ایجاد می‌شه،‌ چرا که همین الان هم لوازم الکترونیکی متعددی در دنیا به‌شکل‌های مختلف تولید می‌شن که با ولتاژ برق خانگی کشور‌های مختلف سازگاری داشته باشند و این یعنی هزینه اضافه در تولید محصول، که باعث عدم یک‌پارچگی محصول می‌شه و سازمان ECMA با هدف حل این‌گونه مشکلات، از سال 1961 شروع به فعالیت کرده

اکما اسکریپت (ES) چیست ؟

زبان ECMA Script یا همون ES در واقع یک زبان استاندارد برای اسکریپت‌نویسی هست که توسط سازمان ECMA تعیین و استانداردسازی شده و همچنان هم توسعه پیدا می‌کنه و استاندار‌دهای اون روز به روز اضافه یا کاسته می‌شن و همچنین می‌تونند دچار تغییرات یا بهبود بشن

به‌عبارت ساده‌تر، اکما اسکریپت در واقع یک‌سری استاندارد‌های تعیین شده توسط ECMA هست که با استفاده از اون استاندارد، هرکسی می‌تونه زبان اسکریپتینگ خودش رو پیاده کنه

یا به‌عبارت دیگه، شما هم می‌تونید یک زبان اسکریپتینگ ایجاد کنید و داخل اون استاندارد‌های ECMA Script رو رعایت کنید و با این کار، یک زبان اسکریپتینگ اختصاصی برای خودتون مطابق ECMAScript بسازید که به‌اصطلاح ECMAScript Compliant گفته می‌شه

جاوا اسکریپت (JS) چیست ؟

جاوا اسکریپت در ابتدا پروژه‌ای بود که در سال 1995 توسط Brendan Eich در شرکت Netscape توسعه پیدا کرد و اسم ابتدایی اون موکا (Mocha) بود و بعد ها به لایو اسکریپت (Live Script) تغییر پیدا کرد و بعد از اینکه زبان Java در اون زمان محبوبیت بالایی پیدا کرد، این زبان هم برای بار سوم و نهایی اقدام به تغییر اسم خود برای بازارایابی کرد و از لایو اسکریپت به جاوا اسکریپت (JavaScript) تغییر نام پیدا کرد

در حدود سال 1997 بود که مرورگر‌های مختلفی در بین کاربران شروع به توزیع کرده بودند و مبحث استفاده از مرورگرهای مختلف در بین کاربران داشت جا می‌افتاد، برای همین مرورگرها نیازمند به این بودند که سر اجرای JavaScript و ساختار صحیح اون به یک توافق بین‌المللی و استاندارد برسن

همین حوالی بود که جاوا اسکریپت تصمیم گرفت که از استاندارد ECMAScript استفاده کنه و همچنین با وجود گسترده شدن، علاوه بر استفاده از ECMAScript، اون رو توسعه بده و Specification های اون رو دچار تغییرات متعدد کنه، به‌عبارتی، هم از ES استفاده کرد و هم ویژگی‌های مختلف خودش رو هم به کل استاندارد ES اضافه کرد

کمی بیشتر درمورد ECMAScript

تا به الان باید متوجه شده باشید که ES یک ساختار برای یک زبان اسکریپت‌نویسی هست و ارتباط خاصی با JS نداره، جاوا اسکریپت در واقع صرفا یک زبان اسکریپت‌نویسی هست که از استاندارد ES استفاده می‌کنه، درست مثل JScript یا ActionScript یا ... که از ES استفاده می‌کنند

تفاوت عمده JS با سایر زبان های مثل JScript یا ActionScript یا ... در این هست که JavaScript استفاده خیلی گسترده‌تری در حوزه وب داره و انجین‌های متعددی از جمله V8 و SpiderMonkey و Chakra و ... برای اجرای این زبان در مرورگر‌های مختلف توسعه داده شدند و همچنان هم توسعه داده می‌شن،‌ این انجین‌ها برای اینکه بتونند کد‌های JS رو به‌صورت یک‌پارچه و یک‌دست اجرا کنند، مجبور هستند که از استاندارد ES تبعیت کنند و خودشون رو با اون استاندارد سازگار کنند

البته این تغییرات و آپدیت‌ها معمولا آنی نیست و برای یک تغییر کوچک در ES، به‌طوری که کاربر عادی بتونه از اون استفاده کنه با خیال راحت، سال‌ها زمان نیاز هست، برای مثال در سال 2015 اکما اسکریپت نسخه ES6 رو با تغییرات گسترده‌ای استانداردسازی و عرضه کرد، اما هنوز هم در سالی که این پست رو می‌نویسم، تعداد زیادی دیوایس و مرورگر‌های قدیمی در دنیا وجود دارند که از استاندارد ES6 در JS پشتیبانی نمی‌کنند و برای تبدیل کردن نسخه‌های جدیدتر ES به استاندارد های قدیمی‌تر از ابزار هایی مثل Babel یا ... استفاده می‌شه

نتیجه‌گیری

به‌صورت خلاصه، زبان اسکریپت‌نویسی ECMA یا همون ES، یک استاندارد بین‌المللی برای ایجاد یک زبان اسکریپتینگ هست که توسط ECMA استانداردسازی میشه و توسعه پیدا می‌کنه، و زبان جاوا اسکریپت یا همون JS هم صرفا یک زبان اسکریپتینگی هست که از استاندارد ES تبعیت می‌کنه و سعی می‌کنه ساختار خودش رو با استاندارد های ES پیش ببره و آپدیت کنه

امیدوارم که این پست براتون مفید بوده باشه، ممنون از وقتی که بابت خوندن این پست صرف کردید

پیروز و سربلند باشید