تاریخچه جاوااسکریپت

مقدمه

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

اولین مرورگر

اولین مرورگر وب محبوب با رابط کاربری گرافیکی، Mosaic، در سال 1993 منتشر شد. این مرورگر که برای افراد غیر فنی قابل دسترسی بود، نقش برجسته ای در رشد سریع وب جهانی اولیه ایفا کرد.توسعه دهندگان اصلی Mosaic سپس شرکت Netscape را تأسیس کردند که یک مرورگر پیشرفته تر به نام Netscape Navigator را در سال 1994 منتشر کرد. این مرورگر به سرعت به پرمصرف ترین تبدیل شد.

در طول این سال‌های شکل‌گیری وب، صفحات وب فقط می‌توانستند ثابت باشند و پس از بارگذاری صفحه در مرورگر، فاقد قابلیت رفتار پویا باشند. در صحنه شکوفایی توسعه وب میل به حذف این محدودیت وجود داشت، بنابراین در سال 1995، Netscape تصمیم گرفت یک زبان برنامه نویسی را به Navigator اضافه کند. آنها دو مسیر را برای دستیابی به این هدف دنبال کردند: همکاری با Sun Microsystems برای تعبیه زبان برنامه نویسی جاوا، در حالی که برندن ایچ را برای تعبیه زبان Scheme نیز استخدام کردند.

مدیریت Netscape به زودی تصمیم گرفت که بهترین گزینه برای Eich ابداع یک زبان جدید، با نحوی شبیه به جاوا و کمتر شبیه به Scheme یا دیگر زبان‌های برنامه‌نویسی موجود است. اگرچه زبان جدید و اجرای مفسر آن در اولین بار به عنوان بخشی از نسخه بتا در سپتامبر 1995، LiveScript نامیده شد، نام آن برای انتشار رسمی در دسامبر به جاوا اسکریپت تغییر کرد.

انتخاب نام جاوا اسکریپت باعث سردرگمی شده است و به این معنی است که مستقیماً با جاوا مرتبط است. در آن زمان، رونق دات کام آغاز شده بود و جاوا یک زبان جدید محبوب بود، بنابراین ایچ نام جاوا اسکریپت را یک ترفند بازاریابی توسط نت اسکیپ در نظر گرفت. اما هدف اصلی طراحی در واقع یک “زبان برای توده ها” کاملا مجزا بود یا “برای کمک به غیربرنامه نویسان برای ایجاد وب سایت های پویا و تعاملی”. بدیهی است که به زودی با ظهور محیط‌های اجرای جاوا اسکریپت مستقل مانند ابزار توسعه وب LiveWire Pro Netscape و Ajax، ServerJS، asm.js و node.js دیگر چنین نبود.

تصویب توسط مایکروسافت

مایکروسافت اینترنت اکسپلورر را در سال 1995 معرفی کرد که منجر به جنگ مرورگر با نت اسکیپ شد. در جبهه جاوا اسکریپت، مایکروسافت مفسر Navigator را مهندسی معکوس کرد تا مفسر خود را به نام JScript ایجاد کند.

جاوا اسکریپت اولین بار در سال 1996 همراه با پشتیبانی اولیه از CSS و پسوندهای HTML منتشر شد. هر یک از این پیاده سازی ها به طور قابل توجهی با همتایان خود در Navigator متفاوت بود. این تفاوت‌ها باعث شد تا توسعه‌دهندگان نتوانند وب‌سایت‌هایشان را در هر دو مرورگر به خوبی کار کنند، که منجر به استفاده گسترده از آرم‌های «بهترین مشاهده شده در Netscape» و «بهترین مشاهده شده در اینترنت اکسپلورر» برای چندین سال شد.

ظهور JScript

در نوامبر 1996، نت اسکیپ جاوا اسکریپت را به Ecma International ارسال کرد، به عنوان نقطه شروع برای مشخصات استانداردی که همه فروشندگان مرورگر می توانستند با آن مطابقت داشته باشند. این منجر به انتشار رسمی اولین مشخصات زبان ECMAScript در ژوئن 1997 شد.

روند استانداردها برای چند سال ادامه یافت، با انتشار ECMAScript 2 در ژوئن 1998 و ECMAScript 3 در دسامبر 1999. کار بر روی ECMAScript 4 در سال 2000 آغاز شد.

در همین حال، مایکروسافت به طور فزاینده ای موقعیت غالب در بازار مرورگرها را به دست آورد. در اوایل دهه 2000، سهم بازار اینترنت اکسپلورر به 95 درصد رسید. این بدان معناست که JScript به استاندارد واقعی برای اسکریپت نویسی سمت مشتری در وب تبدیل شد.

مایکروسافت ابتدا در فرآیند استانداردها شرکت کرد و برخی از پیشنهادات را به زبان JScript خود پیاده سازی کرد، اما در نهایت همکاری خود را در کار Ecma متوقف کرد. به این ترتیب ECMAScript 4 متوقف شد.

رشد و استانداردسازی

در طول دوره تسلط اینترنت اکسپلورر در اوایل دهه 2000، برنامه نویسی سمت کاربر راکد بود. این تغییر در سال 2004 شروع شد، زمانی که جانشین نت اسکیپ، موزیلا، مرورگر فایرفاکس را منتشر کرد. فایرفاکس به خوبی مورد استقبال بسیاری قرار گرفت و سهم بازار قابل توجهی را از اینترنت اکسپلورر گرفت.

در سال 2005، موزیلا به ECMA International پیوست و کار بر روی استاندارد ECMAScript برای XML (E4X) آغاز شد. این باعث شد که موزیلا به طور مشترک با Macromedia (که بعداً توسط Adobe Systems خریداری شد) کار کند که E4X را در زبان ActionScript 3 خود پیاده‌سازی می‌کردند که بر اساس پیش‌نویس ECMAScript 4 بود. هدف استانداردسازی ActionScript 3 به عنوان ECMAScript 4 جدید شد. برای این منظور، Adobe Systems پیاده سازی Tamarin را به عنوان یک پروژه منبع باز منتشر کرد. با این حال، تامارین و اکشن اسکریپت 3 بسیار متفاوت از اسکریپت نویسی سمت کاربر ثابت بودند، و بدون همکاری مایکروسافت، ECMAScript 4 هرگز به نتیجه نرسید.

در همین حال، تحولات بسیار مهمی در جوامع منبع باز که به کار ECMA وابسته نیستند رخ می داد. در سال 2005، جسی جیمز گرت کاغذ سفیدی را منتشر کرد که در آن اصطلاح آژاکس را ابداع کرد و مجموعه‌ای از فناوری‌ها را که جاوا اسکریپت ستون فقرات آن بود، برای ایجاد برنامه‌های کاربردی وب که در آن داده‌ها را می‌توان در پس‌زمینه بارگذاری کرد، توصیف کرد، بدون نیاز به بارگذاری مجدد صفحه کامل.این جرقه یک دوره رنسانس جاوا اسکریپت را آغاز کرد که توسط کتابخانه های منبع باز و جوامعی که در اطراف آنها شکل گرفته بودند رهبری می شد. بسیاری از کتابخانه های جدید از جمله jQuery، Prototype، Dojo Toolkit و MooTools ایجاد شدند.

Google مرورگر کروم خود را در سال 2008 با موتور V8 جاوا اسکریپت که سریعتر از رقبای خود بود، معرفی کرد. نوآوری کلیدی، جمع‌آوری به‌موقع (JIT) بود، بنابراین سایر فروشندگان مرورگر نیاز داشتند تا موتورهای خود را برای JIT بازسازی کنند.

در جولای 2008، این احزاب نامتجانس برای کنفرانسی در اسلو گرد هم آمدند. این منجر به توافق نهایی در اوایل سال 2009 برای ترکیب تمام کارهای مرتبط و پیشبرد زبان شد. نتیجه استاندارد ECMAScript 5 بود که در دسامبر 2009 منتشر شد.

رسیدن به بلوغ

کار بلندپروازانه بر روی این زبان برای چندین سال ادامه یافت و با انتشار ECMAScript 6 در سال 2015، به مجموعه گسترده‌ای از اضافات و اصلاحات رسمی رسید.

ایجاد Node.js در سال 2009 توسط رایان دال باعث افزایش قابل توجهی در استفاده از جاوا اسکریپت خارج از مرورگرهای وب شد. Node موتور V8، یک حلقه رویداد و APIهای ورودی/خروجی را ترکیب می‌کند و در نتیجه یک سیستم زمان اجرا جاوا اسکریپت مستقل ارائه می‌کند. از سال 2018، Node توسط میلیون‌ها توسعه‌دهنده استفاده شده بود، و npm بیشترین ماژول‌ها را در بین هر بسته مدیریتی در جهان داشت.

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

اکوسیستم جاوا اسکریپت کنونی دارای کتابخانه ها و چارچوب های بسیاری، شیوه های برنامه نویسی تثبیت شده و استفاده قابل توجهی از جاوا اسکریپت خارج از مرورگرهای وب است. به علاوه، با ظهور برنامه های کاربردی تک صفحه ای و سایر وب سایت های سنگین جاوا اسکریپت، چندین transpiler برای کمک به فرآیند توسعه ایجاد شده است.

علامت تجاری

“JavaScript” یک علامت تجاری Oracle Corporation در ایالات متحده است. این علامت تجاری در ابتدا برای Sun Microsystems در 6 مه 1997 صادر شد و زمانی که آنها Sun را در سال 2009 خریداری کردند به Oracle منتقل شد.

استفاده از سمت کاربر وب سایت

جاوا اسکریپت زبان اسکریپت نویسی سمت کاربر غالب وب است که 98٪ از تمام وب سایت ها (اواسط سال 2022) از آن برای این منظور استفاده می کنند. اسکریپت ها در اسناد HTML تعبیه شده یا از آن ها استفاده می شود و با DOM تعامل دارند.

همه مرورگرهای وب اصلی یک موتور جاوا اسکریپت داخلی دارند که کد را روی دستگاه کاربر اجرا می کند.

نمونه هایی از رفتار اسکریپت شده
  • بارگیری محتوای جدید صفحه وب بدون بارگیری مجدد صفحه، از طریق Ajax یا WebSocket. به عنوان مثال، کاربران شبکه های اجتماعی می توانند بدون خروج از صفحه فعلی پیام ارسال و دریافت کنند.
  • انیمیشن های صفحه وب، مانند محو کردن اشیا به داخل و خارج، تغییر اندازه و جابجایی آنها.
  • انجام بازی های مرورگر.
  • کنترل پخش رسانه های جریانی.
  • ایجاد تبلیغات پاپ آپ یا جعبه های هشدار.
  • اعتبارسنجی مقادیر ورودی یک فرم وب قبل از ارسال داده ها به یک وب سرور.
  • ثبت اطلاعات مربوط به رفتار کاربر و سپس ارسال آن به سرور. مالک وب سایت می تواند از این داده ها برای تجزیه و تحلیل، ردیابی تبلیغات و شخصی سازی استفاده کند.
  • هدایت کاربر به صفحه دیگری.
  • ذخیره و بازیابی داده ها در دستگاه کاربر، از طریق ذخیره سازی یا استانداردهای IndexedDB.

کتابخانه ها و چارچوب های وب

تا سال 2012، بیش از 80 درصد از وب سایت ها از کتابخانه جاوا اسکریپت شخص ثالث یا چارچوب وب برای اسکریپت نویسی سمت کاربر خود استفاده می کردند.

React

React (همچنین به عنوان React.js یا ReactJS شناخته می‌شود) یک کتابخانه جاوا اسکریپت فرانت‌اند رایگان و منبع باز[41][42] برای ساخت رابط‌های کاربری بر اساس مؤلفه‌ها است. این توسط متا (فیسبوک سابق) و جامعه ای از توسعه دهندگان و شرکت ها نگهداری می شود.

React می تواند برای توسعه برنامه های تک صفحه ای، تلفن همراه یا رندر شده توسط سرور با چارچوب هایی مانند Next.js استفاده شود. از آنجایی که React فقط به رابط کاربری و ارائه مؤلفه‌ها به DOM مربوط می‌شود، برنامه‌های React اغلب برای مسیریابی و سایر عملکردهای سمت کلاینت به کتابخانه‌ها متکی هستند. یک مزیت کلیدی React این است که فقط آن قسمت‌هایی از صفحه را که تغییر کرده‌اند دوباره رندر می‌کند و از رندر غیرضروری عناصر DOM بدون تغییر جلوگیری می‌کند.

angular

Angular (همچنین به عنوان “Angular 2+” نامیده می شود)[48] یک چارچوب برنامه وب تک صفحه ای مبتنی بر TypeScript، رایگان و منبع باز است که توسط تیم Angular در Google و توسط جامعه ای از افراد و شرکت ها رهبری می شود. Angular یک بازنویسی کامل از همان تیم سازنده AngularJS است.

jQuery

در سال 2012، jQuery محبوب‌ترین کتابخانه سمت کاربر بود که بیش از 75 درصد از وب‌سایت‌ها از آن استفاده می‌کردند. در حالی که هنوز در حال استفاده گسترده است، محبوبیت آن توسط کتابخانه ها و چارچوب های جدیدتر پیشی گرفته است.

Vanilla JS

نام فریمورک مانند “Vanilla JS” فقط نام دیگری برای جاوا اسکریپت قدیمی است. این برای وب‌سایت‌هایی ابداع شده است که اصلاً از هیچ کتابخانه یا چارچوبی استفاده نمی‌کنند، در عوض کاملاً بر عملکرد استاندارد جاوا اسکریپت تکیه می‌کنند.

استفاده های دیگر

استفاده از جاوا اسکریپت فراتر از ریشه های مرورگر وب آن گسترش یافته است. موتورهای جاوا اسکریپت اکنون در انواع سیستم های نرم افزاری دیگر، هم برای استقرار وب سایت سمت سرور و هم برای برنامه های غیر مرورگر تعبیه شده اند.

تلاش‌های اولیه برای ترویج استفاده از جاوا اسکریپت سمت سرور، Netscape Enterprise Server و سرویس‌های اطلاعات اینترنتی مایکروسافت بود،  اما آنها جایگاه‌های کوچکی بودند. استفاده از سمت سرور سرانجام در اواخر دهه 2000 با ایجاد Node.js و سایر رویکردها شروع به رشد کرد.

فریم ورک های Electron، Cordova، React Native و سایر فریم ورک های کاربردی برای ایجاد بسیاری از برنامه های کاربردی با رفتار پیاده سازی شده در جاوا اسکریپت استفاده شده اند. سایر برنامه های غیر مرورگر شامل پشتیبانی Adobe Acrobat برای اسکریپت کردن اسناد PD و پسوندهای GNOME Shell نوشته شده در جاوا اسکریپت است.

جاوا اسکریپت اخیراً در برخی از سیستم‌های جاسازی شده ظاهر شده است، معمولاً با استفاده از Node.js.

محیط اجرا

جاوا اسکریپت معمولاً به یک محیط اجرا شده (مثلاً مرورگر وب) برای ارائه اشیاء و روش هایی که اسکریپت ها می توانند با محیط تعامل داشته باشند (مثلاً یک صفحه وب DOM) متکی است. این محیط ها تک رشته ای هستند. جاوا اسکریپت همچنین به محیط اجرا متکی است تا توانایی گنجاندن/وارد کردن اسکریپت ها (به عنوان مثال، عناصر <script> HTML) را فراهم کند. این به خودی خود یک ویژگی زبان نیست، اما در اکثر پیاده سازی های جاوا اسکریپت رایج است. جاوا اسکریپت پیام های یک صف را در یک زمان پردازش می کند. جاوا اسکریپت یک تابع مرتبط با هر پیام جدید را فراخوانی می کند و یک فریم پشته تماس با آرگومان های تابع و متغیرهای محلی ایجاد می کند. پشته تماس بر اساس نیازهای تابع کوچک شده و رشد می کند. هنگامی که پشته تماس پس از تکمیل تابع خالی است، جاوا اسکریپت به پیام بعدی در صف ادامه می‌دهد. این حلقه رویداد نامیده می شود که به عنوان “اجرا تا تکمیل” توصیف می شود زیرا هر پیام قبل از در نظر گرفتن پیام بعدی به طور کامل پردازش می شود. با این حال، مدل همزمانی زبان، حلقه رویداد را غیر مسدودکننده توصیف می‌کند: ورودی/خروجی برنامه با استفاده از رویدادها و توابع پاسخ به تماس انجام می‌شود. این بدان معناست که، برای مثال، جاوا اسکریپت می‌تواند یک کلیک ماوس را در حالی که منتظر یک پرس و جو پایگاه داده برای بازگرداندن اطلاعات است، پردازش کند.

نتیجه

امروزه می توانیم از جاوا اسکریپت برای نوشتن انواع برنامه ها از جمله برنامه های مرورگر، سرور، موبایل و دسکتاپ استفاده کنیم.امیدواریم این مقاله به شما درک خوبی از تاریخچه محبوب ترین زبان برنامه نویسی در اینترنت امروز داده باشد.

[تعداد: 1   میانگین: 5/5]
دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شاید دوست داشته باشید

تنسورفلو

تنسورفلو تنسرفلو یک کتاب خانه یادگیری ماشین و یادگیری عمیق است که توسط گوگل منتشر شده است و…