جاوا اسکریپت با ورودش به دنیای زبان های برنامه نویسی، یک تحول بزرگ در طراحی سایت به وجود آورد. این تحول آنقدر مهم و بزرگ بود که مایکروسافت رو به رقابت با اون وادار کرد که البته پیروز این رقابت در نهایت همون جاوا اسکریپت بود. در بخش اول از این مطلب، به طور مفصل درباره تاریخچه شکل گیری این زبان برنامه نویسی و رشدش تا نسخه ۵ حرف زدیم. گفتیم که نسخه ۴ هیچ وقت وجود نداشته و به خاطر اختلاف نظرهایی که درباره موفقیت اون وجود داشته، هیچ کدوم از مرورگرها حاضر به پشتیبانی از اون نشدند. در ادامه، یعنی در بخش دوم، از نسخه ۴ بیشتر حرف می زنیم و بعد بحث رو به سمت مزایا، کارایی و آبجکت های JavaScript سوق میدیم. با ما همراه باشید.
چه بر سر نسخه ۴ اومد؟
هدف نسخه ۴، تولید اپلیکیشنهای بزرگ بود. بسیاری از این قابلیت ها در نسخه ۶ هم دوباره معرفی شدن. گروهی که برای توسعه نسخه ۴ کار می کردند از شرکتهای Adobe، Microsoft، Mozilla و Opera بودند. یاهو وقتی وارد این جمع شد که اکثر تصمیمات گرفته شده بود. نمایندهی یاهو مخالفت خودش رو با بسیاری از استانداردهای تصویب شده در نسخه ۴ ابراز کرد. نمایندهی مایکروسافت هم ازش حمایت کرد. با شروع این شک و تردیدها مایکروسافت محکم جلوی نسخه ۴ جاوا اسکریپت ایستاد، هیچکدوم از بخشهای اون رو قبول نکرد و تمام توان خودش رو به کار برد تا این استاندارد تصویب نشه. به هر حال این موضوع موجب یک جر و بحث حسابی بین اعضای گروه شد. نمایندهی مایکروسافت این پیشنهاد رو مطرح کرد که روی نسخهای از JavaScript کار شه که تغییرات کمی و بدون تغییر Syntax داشته باشه که ECMAScript 3.1 نامیده می شد.
تا مدّتی هر دوی این استانداردها با هم وجود داشتند. دو گروه تشکیل شد، یکی روی نسخه ۴ و دیگری روی ۳.۱ کار میکرد. نسخه ۴ پیچیدهتر از این بود که بتونه در صورت عدم توافق تمام بشه. امّا نسخه ۳.۱ بسیار سادهتر بود و در نهایت به خاطر لجبازی تمام شد. در نهایت سال ۲۰۰۸ پایان عمر نسخه ۴ بود. زمانی که برندن اریک اعلام کرد که تمرکز اصلی اون ها باید روی نسخه ۳.۱ باشه و تا یک سال دیگه باید روی نسخهای از ECMAScript کار شود که با نسخهی ۳.۱ سازگار و تغییرات اون نسبت به نسخهی قبلی کم باشه، به عبارتی، تغییرات اون از هر لحاظی نباید مثل نسخه ۴ اینقدر زیاد باشد. در مجموع توسعهی نسخه ۴ حدود ۸ سال طول کشید و در نهایت بدون هیچ نتیجه ای دور انداخته شد.
بعد از کشمکش های زیادی که سر نسخه ۴ پیش اومد، همه روی نسخه ۳.۱ تمرکز کردن. در سال ۲۰۰۹ نسخه ۳.۱ کامل شد و توسّط تمام اعضا مورد قبول واقع شد. گروه برای این که مردم گیج نشن نام این نسخه رو به ECMAScript 5 تغییر داد. درسته که نسخه ۴ مورد توافق واقع نشد، ولی به عنوان یک نسخهی خاص از ECMAScript باقی موند و در نتیجه این نسخه ECMAScript 5 نام گرفت.
نسخه ۵، از لحاظ پشتیبانی مرورگرها به بهترین نسخهی JavaScript تبدیل شد. نسخه ۵ به طور کامل توسّط فایرفاکس ۴ (Firefox 4) (سال ۲۰۱۱)، کروم ۱۹ (Chrome 19) (سال ۲۰۱۲)، سافاری ۶ (Safari 6) (سال ۲۰۱۲)، اُپرا ۱۲ (Opera 12) (سال ۲۰۱۲) و اینترنت اکسپلورر ۱۰ (IE 10) (سال ۲۰۱۲) پشتیبانی میشه.
خیلی از قابلیّتهایی که در نسخه ۴ مطرح شده بود حذف شد و خیلی از اون ها، این بار با یک دید تازه بازبینی شد و ECMAScript 6 که بعداً به ECMAScript 2015 تغییر نام پیدا کرد همراه با تغییراتی بزرگ ارائه شد. با اینکه این بار اعضای کمیته با هم متّحد بودن و در نهایت در سال ۲۰۱۵ اون را تصویب کردند، بعضی از سازندگان مرورگرها به دلیل زیاد بودن تغییرات هنوز که هنوزه کاملاً اون رو پیادهسازی نکردن.
انتشار ECMAScript 6 باعث جهشی بزرگ در استفاده از ترنسپایلرهایی مثل Babel شد. مردم با کمک این ترنسپایلرها می تونستن قابلیّتهای جدید نسخه ۶ رو تست کننن (ترنسپایلرها می تونن کد ES6 را به کد ES5 تبدیل کنند که در مرورگرها بدون مشکل اجرا بشه).
در مقالات بعدی به طور کامل در رابطه با امکانات ES6 و معماری جدید اپلیکیشن های JavaScript صحبت می کنیم.
مزایای جاوا اسکریپت
نمیشه به JavaScript فقط به عنوان یک زبان برنامه نویسی client side نگاه کرد. JavaScript یکی از پیشرفته ترین زبان های برنامه نویسیه که تا الان توسعه پیدا کرده. در بخش های بعدی به برخی از فیچرهای این زبان اشاره شده.
کارایی JavaScript
در مرورگرهای مدرن تقریبا تمام بخش های جاوا اسکریپت اجرا میشه و بهینه سازی میشه و پرفورمنس زمان runtime خیلی نزدیک به برنامه هاییه که در زبان های C و C++ نوشته شدن. البته هنوز از overhead مربوط به garbage collection و dynamic binding نمیشه داده گرفت، ولی راه هایی هست که بشه یک سری کارها رو سریع تر انجام داد. البته تا زمانی که بخش ها به درستی بهینه نشده باشند، تفاوت آنقدر ها هم قابل توجه نخواهد بود.
آبجکت های JavaScript
JavaScript فیچرهای کاملی در object oriented ارائه میده، مثل استاندارد JSON که تقریبا در تمام وب اپلیکیشن های مدرن از اون استفاده میشه. جاوا اسکریپت از مدل prototype inheritance استفاده می کنه. به جای کلاس، شما object prototype دارید. آبجکت جدید به صورت اتوماتیک متدها و خصوصیات آبجکت والد رو از طریق زنجیره prototype یا همون prototype chain به ارث می بره. اینکه میشه پروتوتایپ یک آبجکت رو در هر زمان، تغییر داد، JavaScript رو به یک زبان کاملا انعطاف پذیر و داینامیک تبدیل می کنه .
Object oriented با prototype بسیار انعطاف پذیرتر از مفهوم کلاسیک ارث بریه. در JavaScript این امکان وجود داره که ساختاری مشابه object oriented زبانی مثل java رو در بسیاری از موارد با کدهای کمتر در JavaScript پیاده کرد. البته عکس این مورد امکان پذیر نیست. در آِینده، در مقالاتی مجزا به طور کامل به ساختار شی گرایی JavaScript می پردازیم.
در نهایت نتیجه ای که از این مطلب (انقلاب جاوا اسکریپت ، بخش اول و دوم) میشه گرفت اینه که یکی از مهم ترین ابزارهای طراحی سایت، همین زبان برنامه نویسی جاوا اسکریپت و قابلیت های اونه. به طوری که اون رو به همراه HTML و CSS، یکی از سه هسته اصلی صفحات وب سایت می دونن. پس برای سپردن طراحی سایتتون به یک طراح، قبل از شروع کار، حتماً چند تا نمونه کار خوب و قوی از اون ببینید. برای اینکه بهتر بتونید اهمیت استفاده صحیح از JavaScript رو درک کنید، می تونید این نمونه کار طراحی سایت رو که در اون به خوبی از JavaScript استفاده شده، مشاهده کنید.
ممنون از مقاله کامل تون. لذت بردم.