جاوا اسکریپت باشیم!

سال ۱۹۹۵ بود که برندان آیک تو ده روز یک زبان اسکریپت نویسی برای مرورگر Netscape نوشت تا صفحات وب پویاتری بشه خلق کرد و حقیقتا اصلا دنبال این نبود که یک زبان برنامه نویسی جدی توسعه داده بشه و اسمش رو گذاشت موکا (mocha) که قهوه خورا با این نام آشنا هستن. برندان فکرشم نمی‌کرد روزی موکا به این غول نفوذ کرده در همه جا تبدیل بشه.

موکا مدتی در این شرکت توسعه پیدا کرد و بعد اسمش شد LiveScript و مدتی بعدتر هم از شهرت Java که در اون زمان ترکونده بود خواستن سو‌استفاده/استفاده کنن و گذاشتنش JavaScript که از لحاظ نگارشی املایی درست هست که بگیم جاواسکریپت نه جاوااسکریپت ولی بیخیال چه فرقی داره چطور بنویسیم.

خلاصه، این کوچولو خنگ ساده که قرار بودن اندک پویایی به سمت کاربر بده جذاب شدن و سال بعدش مایکروسافت بیل گیتس مسلک هم امد یه کپی ازش زد و واسه این که نخواست به مشکل حقوقی بخوره اسمشو گذاشت JScript ولی تفاوت در برخی دستورات باعث می‌شد الزاما یک کد جاواسکریپت در همه مرورگرها درست کار نکنه و این بعدها منجر به این شد که هر دسته کاربر و برنامه نویس روی یک مجموعه مرورگر توصیه شده کار کنن که واضح در فضای اینترنتی که قراره جهانی و همه جا دردسترس باشه چنین شرط خیلی مسخرست که بگی برای استفاده از سایت من فقط با IE بیا!

سال 1996 نت‌اسکیپ نسخه خودش رو فرستاد اتحادیه سازندگان کامپیوتر اروپا (ECMA) تا استانداردسازیش کنه و همه از یک استاندارد استفاده کنن ولی تا سال ۲۰۰۵ اتفاقی که همه دنبالش بودن نیفتاد و این بساط شیر تو شیر که هر کدی هر جا یه جور اجرا می‌شد یا خطا می‌داد ادامه داشت و از اون طرفم مایکروسافت که سهم کاربر بالاتری در مرورگرها هم داشت راضی نمی‌شد به این عضویت ECMA در بیاد و لیستی از اراجیف رو همیشه در توجیه رفتارش لیست می‌کرد و همین باعث عدم پیشرفت و جدی گرفته شدن جاوااسکریپت به عنوان یک زبان برنامه نویس سطح بالا می‌شد و همیشه مسخره کردن ناتوانی‌هاش نقل مجلس توسعه دهنده‌های وب بود و همین باعث دست کم گرفته شدن توسعه دهنده‌های Front-End هم می‌شد که در نهایت منجر به دریافت حقوق پایین‌تر از توسعه دهنده‌های Back-End هم واسشون می‌شد.

نهایتا با قدرت گرفتن مرورگرهایی مثل firefox و مشکلات زیاد IE کم کم این توازن تغییر کرد و مایکروسافتم از خر شیطون پایین امد و سال 2006 پذیرفت که عضوی از این انجمن استانداردسازی بشه.

ولی خب واضح راه درازی در پیش بود و کلی مرورگر با موتورهای جاوااسکریپت مختلف دست ملت بود و تا استاندارد صادر بشه و توسعه داده بشه و مرورگرها تغییر بکنه خودش مثنوی هفتاد من کاغذ بود. تا سال ۲۰۱۱ طراحی و توسعه و استانداردسازی نسخه جدید javascript با عضویت مایکروسافت ادامه داشت و نهایتا سال ۲۰۱۵ این استاندارد نهایی و اجرایی شد.

یادم هست اون روزها خیلی تیترهای جاوااسکریپتی با اسم نسخه جدیدش یعنی ECMAscript 2015 که به اختصار ES6 و ECMAscript 6 تو چشم می‌خورد. این تغییر واقعا جدی، عمیق و شگفت انگیز بود و باعث شد جاوااسکریپتی که همیشه مسخرش می‌کردن با سرعتی بالا نرخ مجبوبیت و استفاده ازش در توسعه صفحات وب بالا بره و با آمدن فریم ورک‌هایی مثل React / Angular و ... سمت کاربر کاملا از لایه Back-End پر مدعا جدا بشه و حتی با آمدن Node JS که بر پایه موتور V8 گوگل توسعه داده شده بود وب‌سایت‌هایی کاملا بر پایه جاوااسکریپت توسعه پیدا کنه.

جاواسکریپتی که تا دیروز نهایتا برای تغییر ایکون موس و مسخره بازی تو سمت کلاینت استفاده می‌شد امروز از فرانت اند پاش رو فراتر گذاشته بود و وارد تقریبا همه حوزه‌ها شده بود و کاری کرده بود که کسی که توسعه دهنده جاوااسکریپت هست با صرف زمان کوتاهی بتونه برای محیط‌های مختلف هم کد بزنه یعنی عملا بتونه هم برای وب در سمت کلاینت هم سمت بک‌اند هم موبایل هم Desktop و حتی برای حوزه‌های تخصصی‌تری مثل IOT کد بزنه.

این مسیر پر فراز و نشیب و این حجم زیاد اختلافات و خطا‌ها از یک طرف و اون هدف کوچک اولیه صرفا اندک پویایی بخشیدن به صفحه وب باعث شد تا از سال ۱۹۹۵ تا ۲۰۱۵ جاوااسکریپت یک زبان توسری خور کم کاربرد باشه که نهایتا مبتدی‌های توسعه وب باش برای ژینگولک بازی کار کنن ولی در نهایت این اوج رو تجربه کنه تا امروز که ما می‌بینم توسعه‌دهنده‌های فرانت‌اندی که بیش از بک‌اند دولوپرها به لطف همین جاوااسکریپت درآمد دارن.

مثل جاوااسکریپت دنبال آرام آرام رشد کردن باشید حتی اگر سال‌ها قدرت‌ها جلوی پیشرفتتون رو بگیرن بالاخره یه روزی صبح میشه این شب. موفقیت از اثر مرکب میاد و رسوب می‌کنه موفقیت یک شبه رو من برای دوستم که جای خود داره، برای دشمنم هم نمی‌خوام. جاوااسکریپت می‌تونست یک پروژه شکست خورده باشه اگر اون تیمی که دنبال موفقیتش بودن با گذشت ۱۰ سال و کارشکنی مایکروسافت قبول می‌کردن که شدنی نیست و باید به مایکروسافت ببازیم! من به شانس هم اعتقاد دارم و این رو هم می‌پذیرم که این احتمال هم وجود داشت که حتی با گذشت ۲۰ سال هم ممکن بود در نهایت این پروژه شکست بخوره ولی وقتی هیچ کس نمی‌دونه آخرش چی میشه چرا موفقیت یا شکست رو پیش بینی کنیم بهتره پیش بریم شاید خوش شانس بعد از بار هزارم نصیب ما شد.

جاوااسکریپتی زندگی کنیم‌:)