جاوااسکریپت زبانی برای نوشتن برنامههای سادهایست که در مرورگر کاربر اجرا میشوند و ظاهر و امکانات وبسایتها را متحول میکنند.
در ادامه با تاریخچه، کاربردها و خصوصیات جاوااسکریپت بیشتر آشنا میشویم.
جاوااسکریپت تقریباً در هر وبسایتی کاربرد دارد و در عین حال کمتر نامش را شنیدهایم. سالها پیش در دورانی که صفحات وب به صورت HTML و بسیار ساده طراحی میشدند، متن و عکس در کنار هم قرار میگرفت و حالت پویا نداشت. همه چیز حالت ایستا داشت. اما این روزها موضوع برعکس شده، کمتر سایتی را سراغ داریم که همه چیز آن ایستا باشد. ولی صفحهی شبکههای اجتماعی مثل فیسبوک و توییتر را باز میکنید، جاوااسکریپت روی مرورگر شما اجرا میشود. به همین علت است که وقتی از موس استفاده میکنید و سراغ بخشهای مختلف صفحه میروید، برخی عناصر عوض میشوند.
یک مثال ساده بزنیم که اهمیت و مزیت اصلی جاوااسکریپت را روشن سازد. فرض کنید میخواهیم وبسایتی برای تبدیل آحاد داشته باشید. کاربر وزن را به پوند وارد کرده و آن را به گرم تبدیل کند. برای این کار میتوان عدد وارد شده در سمت کلاینت یا همان کامپیوتر کاربر را به سرور ارسال کرد. سرور محاسبه را انجام دهد و نتیجه را به کلاینت بفرستد. این مسیر طولانی علاوه بر اینکه زمانبر است، فشار بیشتری به سرور میآورد.
جاوااسکریپت همین محاسبات ساده را در سمت کاربر اجرا میکند. عدد دریافت شده را میگیرد و محاسبه میکند و نتیجه را در کادری که میتواند ساده و در عین حال زیبا و سریع ظاهر شود، به کاربر نمایش میدهد. نیازی به ارتباط با سرور و استفاده از پردازندهی سرور نیست، در زمان هم صرفهجویی شده است.
جاوااسکریپت و تاریخچهی آن
در سال 1995 دو مرورگر اصلی در دنیای وب وجود داشت. مرورگر معروف اینترنت اکسپلورر که تازه کارش را شروع کرده بود و مرورگر دیگری به نام Netscape. کمپانی نتاسکیپ علاوه بر معرفی یک مرورگر کامل و محبوب، به دنبال ایجاد یک زبان برنامهنویسی بود که هم ساده باشد و هم برای توسعهدهندگان و حرفهایها، مفید واقع شود و در ادامه دنیای وب و وبسایتها را متحول کند.
جاوااسکریپت زبانی بود که پس از 10 سال کار Brendan Eich متولد شد، کسی که بعدها برای مدتی کوتاه به عنوان رهبر بنیاد موزیلا فعالیت کرد. زبانی که او ابداع کرده بود برای انواع برنامهنویسی شیءگرا یا آبجکتیو، دستوری و تابعی کاربرد داشت و از طرفی به زبانهای متداول روز مثل C و C++ شبیه است.
اما یک اشتباه متداول، ممکن است فکر کنید جاوا که در دوران گوشیهای غیرهوشمند در بسیاری از گوشیها متداول بود، همان جاوااسکریپت است، اما این تصور کاملاً اشتباه است. جاوا زبانی است که توسط کمپانی Sun Microsystems توسعه داده شده است. جاوااسکریپ در روزهای ابتدایی با نام LiveScript و حتی Mocha که نام اصلی آن در کمپانی نتاسکیپ است، معروف شده بود و بعدها برای محبوبیت هر چه بیشتر، از نام جاوا به اضافهی اسکریپت اضافه شد.
جاوااسکریپت اولین زبان نوشتن اسکریپتنویسی برای وب نبود، قبل از آن در مرورگری به اسم ViolaWWW از زبان ناقصی برای اسکریپتنویسی پشتیبانی میشد ولی به تدریج کنار گذاشته شد و البته برخی جنبههای آن در CSS دیده میشود.
یک سال پس از تولد جاوااسکریپت مایکروسافت هم آن را به اینترنت اکسپلورر خود اضافه کرد. از آن سال تا به امروز، یکی از اساسیترین بخشهای وب و هر وبسایت تحت وب، جاوااسکریپت است که تقریباً تمام مرورگرها هم به طور کامل از آن پشتیبانی میکنند.
جاوااسکریپت تدریجاً به پیشرفتهای بیشتری رسیده است. در ادامه به یکی از پروژههای اساسی وب به اسم jQuery میپردازم.
پروژهی jQuery و استاندارد کردن اسکریپتنویسی
جاوااسکریپت به کمک موتور اجرای آن در مرورگرهای مختلف اجرا میشود. موتور اجرایی هم متفاوت است و طرز کار یکسانی ندارد. موزیلا فایرفاکس، گوگل کروم، سافاری اپل، آپرا و اینترنت اکسپلورر مایکروسافت از نظر اجرای جاوااسکریپت و تکتک دستورات آن یکسان نیستند. ممکن است کدی در یکی از این مرورگرها به درستی اجرا شود و در دیگری به شکلی ناقص یا نامطلوب اجرا شود.
اینجاست که jQuery وارد گود میشود. در سال 2006 شخصی به نام John Resig راه حلی را طرح کرد که شیوهی نوشتن کدهای جاوااسکریپت را تغییر داده و آن را ساده و استاندارد میکند. بدین ترتیب نوشتن کدهای جاوااسکریپت سادهتر، زیباتر و از همه مهمتر برای اجرای صحیح روی مرورگرهای مختلف، استاندارد شد.
با Node.js قلمرو جاوااسکریپت به سرورها و اینترنت اشیاء گسترش مییابد
تا اینجای کار دیدیم که جاوااسکریپت در سمت کاربر یا کلاینت اجرا میشود و دنیای وب را زیبا و کاربردیتر میکند. اما جاوااسکریپت پیشرفت کرده و به محدودههای فرامرورگری هم رسیده که Node.js هم یکی از نمونههای جالب آن است.
Node.js بستهی نرمافزاری متنبازی برای پلتفرمهای مختلف است تا بتوان اپلیکیشنهایی را برای سمت سرور نوشت. در این سالها کمپانیها و توسعهدهندگان بزرگی از Node.js استفاده کردهاند که از آن میان میتوان به Groupon، LinkedIn و PayPal اشاره کرد.
مزیت و قدرت Node.js سرعت آن و همینطور مجموعهی رو به گسترش کاربران و توسعهدهندگانی است که ماژولهای جدید و کدهای مفید خود را در اختیار دیگران میگذارند.
جالب است که موتور Google V8 در Node.js هم نقش اساسی دارد، همان موتور سریعی که مرورگر موفق کروم از آن استفاده میکند. سرعت V8 موجب اجرای کدهای جاوااسکریپت با سرعتی فوقالعاده بالا میشود و این یکی از مزایای اساسی Node.js است.
هزاران ماژول مختلف توسط Node.js و اکوسیستم بزرگ توسعهدهندگان آن عرضه شده که کاربردهای سادهی آن را به کاربردهایی پیچیده و پیشرفته تبدیل میکند. برای استفاده از این ماژولها میتوان از NPM یا Node Package Manager استفاده کرد که اپلیکیشن رایگانی است که به خوبی با رانتایم (محیط زمان اجرا) Node.js یکپارچه میشود و به سرعت میتوان کتابخانههای جاوااسکریپت را به کدهای خاص خود اضافه کرد.
Node.js یک کاربرد جالب توجه دیگر هم دارد، برد الکتریکی شبیه آردوینوی معروف به اسم Tessel از جاوااسکریپت بهره میبرد و یکی از گامهای ابتدایی برای گسترش اینترنت اشیاء است.
جاوااسکریپت در خدمت برنامهنویسان موبایل
اپهای موبایل این روزها بسیار پرکاربرد شدهاند و یکی از منابع اصلی درآمد برنامهنویسان تلقی میشوند.
وقتی نتیجهی بازی سادهای به اسم پرندگان خشمگین با میلیونها دلار سود به نفع سازندهی آن تمام میشود! باید در مورد اپهای موبایل فکری جدی کرد.
جاوااسکریپت از درون مرورگرها کارش را شروع کرده اما این روزها در تولید اپهای موبایل هم کاربرد دارد!
اندروید، iOS، بلکبری و ویندوز فون همگی میتوانند اپهای ساخته شده با جاوااسکریپت را اجرا کنند. درست مثل این است که اپلیکیشنی با جاوا برای اندروید یا Swift برای iOS ساخته شده باشد.
مزیت برنامهنویسی با استفاده از جاوااسکریپت این است که توسعهی اپ سادهتر است و حتی سرعت اجرای آن هم نسبت به اپهای بومی بیشتر است.
مسیر جاوااسکریپت از این هم پیشتر رفته است به طوری که نرمافزارهای جانبی دیگری مثل PhoneGap، Titanium و Sencha عرضه شدهاند تا اپلیکیشن و کدهای آن یک بار نوشته شود و بتوان برای اجرای اپ روی دیگر پلتفرمهای موبایل، خروجی مناسب را دریافت کرد.
اسکریپتنویسی به زبانهایی که در نهایت به جاوااسکریپت تبدیل میشوند
CoffeeScript یکی از این زبانهاست. این زبان برنامهنویسی ظاهری سادهتر و کاربردیتر دارد و در نهایت به جاوااسکریپت استانداردی که میشناسیم، تبدیل میشود.
برخی زبانهای برنامهنویسی دیگر هم وجود دارد که در نهایت به جاوااسکریپت تبدیل میشود. مزیت این زبانها، ساده کردن استفاده از جاوااسکریپ است. در واقع جاوااسکریپتی که طی 10 سال فعالیت سازندهاش شکل گرفته، ظاهر چندان سادهای ندارد و انتقاداتی نسبت به آن وجود دارد. زبانهایی مثل کافیاسکریپت برای ساده کردن دستورات معرفی شدهاند و جاوااسکریپت به به دو زبان سادهتر به نامهای Python و Ruby شبیه میکنند. زبانهایی که به سادگی و خوانایی معروف هستند.
کافیاسکریپت استانداردهایی را طرح کرده که خوانایی کد توسط دیگر برنامهنویسان را تضمین میکند. جالب است بدانید که از کافیاسکریپت برای ایجاد Dropbox معروف استفاده شده است.
Typescript مایکروسافت و Haxe هم دو زبان دیگر در این عرصه هستند.
اینتوتک