چندین سال پیش، از جاوااسکریپت به عنوان یک زبان سخت و نا کارآمد یاد می شد. زبانی با کاربرد اندک و ناسازگاری زیاد با مرورگر ها که تا به امروز برای بسیاری از برنامه نویسان آن دوره خاطره نه چندان خوبی را به همراه داشته است.
اما در ده سال گذشته شاهد تغییرات چشمگیری بودیم. به دلیل ساختار منعطف و کارآمد این زبان استفاده از آن بسیار آسان است، به شکل گسترده ای استاندارد سازی شده و برروی تمامی مرورگر های معمول قابل اجراست و کارآمدی آن بسیار بیشتر از قبل شده است. اگر از علاقه مندان به جاوااسکریپت هستید ادامه مطلب را از دست ندهید. تا بدانید که چرا لازم است در کنار یادگیری بسیاری فناوری های وب، به دنبال جاوااسکریپت هم باشیم. چیزی که خیلی اوقات فراموش می شود.
۱ - یادگیری آسان:
جاوااسکریپت محبوب ما به دلیل ساختار اسکریپتی و عدم نیاز به کامپایل توسط برنامه نویس، سیستم مدیریت حافظه ندارد و جایی برای نگرانی در مورد لود شدن و یا نشدن محتوا نیست. تمامی این وظایف سنگین برعهده مرورگر بوده و به همین خاطر این زبان یکی از بهترین گزینه ها برای یادگیری مبانی برنامه نویسی است.
۲ - ویرایش ساده:
شروع به برنامه نویسی جاوااسکریپت بسیار ساده است. زیرا استفاده از آن نیاز به یادگیری جزئیات و ابزار زیادی ندارد و کد نوشته شده به راحتی قابل تغییر است.
به دلیل ساختار اسکریپتی و عدم نیاز به کامپایلر و دیگر نرم افزار های کمکی، نباید برای استفاده از آن هزینه زیادی متقبل شد. (البته کاربران ایرانی از مواردی از این قبیل مستثنی هستند!). جاوااسکریپت یک متن ساده است که در notepad و دیگر ادیتورهای ساده قابل نوشتن است.
کاربران ویندوزی می توانند از نرم افزار notepad++ استفاده کنند. اگر به یاد داشته باشید قبلا در نردبان ادیتور براکتز را معرفی کرده ایم که توسط شرکت ادوبی توسعه یافته و خودش هم با جاوااسکریپت نوشته شده است.
۳ - جاوااسکریپت یک زبان قابل مدل سازی (language prototypal) است:
prototype-based programming یک شیوه برنامه نویسی شی گرا است که در آن آبجکت های موجود به عنوان یک مدل در نظر گرفته شده و با انجام عمل شبیه سازی به صورت وراثتی استفاده می شوند. در حیطه برنامه نویسی هر شی یک ساختار داده ای است که برای هدف مشخصی طراحی شده است.
در یک زبان قابل مدل سازی هر شی توسط یک کلاس شناسایی می شود. این بدان معنی است که شی مورد نظر بسته به نیاز برنامه نویس می تواند به کرار توسط کلاس تعیین شده فراخوانی و مورد استفاده قرار گیرد.
این ویژگی بنیان و اساس انعطاف پذیری بی نظیر جاوااسکریپت در بحث مهندسی نرم افزار است. در شاخه مهندسی نرم افزار design pattern عبارت است از هنر و مهارت برنامه نویس جهت انتخاب بهترین راه برای حل یک مساله و نوشتن نرم افزار. جاوااسکریپت با ساختار objective و قدرتمند خود به شخص برنامه نویس این امکان را می دهد تا بتواند بهترین استراتژی را برای طراحی الگوریتم های گوناگون (با پیچیدگی کم و کارآیی زیاد) به کار گیرد. یادمان نرود که همیشه بهترین کد از سریع ترین کامپیوترها سریع تر است. پیچیدگی الگوریتم طراحی شده بسته به هنر برنامه نویس متغیر و قابل اندازه گیری و محاسبه است که خارج از موضوع بحث ما در این مقاله است.
۴ - در دسترس بودن ابزارهای متنوع:
اجرا شدن جاوااسکریپت توسط مرورگر زمینه ساز به وجود آمدن ابزار های بسیار قوی و متنوعی از جمله فایرباگ و web developer toolbar شده است. ابزاری که برای بررسی عملکرد و دنبال کردن رفتار کد جاوااسکریپت استفاده می شود. با فشردن کلید F12 می توانید اجرای کد خود را به صورت آنی در کنسول باز شده مشاهده نمایید و تغییرات مورد نظر خود را در آن اعمال کنید.
۵ - عیب یابی و دیباگ آسان:
ابزارهای معرفی شده در بالا علاوه بر نوشتن کد، در عیب یابی آن نیز بسیار کارآمد هستند. هر پیام خطایی که در هنگام کد نویسی با آن مواجه می شوید با آدرس دقیق در کنسول فایرباگ قابل مشاهده است.
۶ - شی گرا بودن جاوااسکریپت:
با اینکه جاوااسکریپت اولین زبانی نیست که با شنیدن کلمه شی گرا به ذهن ما می رسد ولی به بهترین شکل از طراحی نرم افزار به شکل objective پشتیبانی می کند. مزیت جاوااسکریپت نسبت به دیگر زبان های برنامه نویسی این است که شما قادر هستید در صورت تمایل برای پروژه های کوچک تر و اسکریپت های کوچک آن را به صورت معمولی و بدون ساختار O.O.P به کار بگیرید.
۷ - توسعه پذیری آسان:
جاوااسکریپت زبانی است با ساختار بسیار سریع و قدرتمند، اما این همه اش نیست! در صورت استفاده از کتاب خانه های از پیش نوشته شده برای آن، شما قادر به انجام عملیات بسیار پیچیده، بدون صرف وقت اضافه و به وجود آمدن خطاهای احتمالی در کد خود خواهید بود.
شاید بتوان jQuery را به عنوان شاخص ترین آن ها معرفی کرد. تنها با اضافه کردن یک خط می توانید آن را در کد خود قرار دهید و بعد به جادوگری بپردازید:
علاوه بر این ScriptsSrc.net را به عنوان یک منبع بسیار عالی برای دریافت کتابخانه های مورد نیازتان به شما پیشنهاد می دهیم.
۸ - AJAX :
مدت ها وب ساختاری استاتیک و انعطاف ناپذیر داشت که صرفا برای ارائه اطلاعات ذخیره شده به کار گرفته می شد. پس از آن تصاویر متحرک با فرمت GIF و در نهایت فلش به صفحات بی جان وب پویایی بخشیدند. اما مساله اینجا بود که حتی برای ایجاد کوچک ترین تغییر مانند وارد کردن اطلاعات در فیلد های یک فرم ساده نیاز به بارگذاری مجدد صفحه بود که چنین چیزی به هیچ وجه خوشایند نیست.
اینجا بود که AJAX متولد شد. آژاکس توانایی ارسال درخواست به سرور، برای دریافت اطلاعات، بدون بارگذاری مجدد صفحه را ایجاد کرده است.
برای مشاهده نمونه هایی از کاربرد آژاکس، می توانید به AJAX DADDY مراجعه کنید.
۹ - سازگاری بی نظیر جاوااسکریپت با دیگر ابزارهای توسعه وب:
درست است که جاوااسکریپت شروع خوبی نداشت، اما رشد نجومی یک دهه اخیر آن در اپلیکیشن ها، پشتیبانی کامل تمامی مرورگر های مدرن و پیوستگی منحصر به فرد آن با HTML/DHTML و CSS3، ایجاد سرویس های مخفی با استفاده از آژاکس دال بر موفقیت و محبوبیت روز افزون آن است.
۱۰ - Node.js:
node.js چیست؟ قبل از هر چیز برای پاسخ دادن به این سوال می خواهیم شما را با مفهوم server side & client side programming آشنا کنیم.
client side به معنی آن چیزی است که بر روی کامپیوتر کاربر و در مرورگر وی اجرا می شود و هیچ ارتباطی با سرور مبنی بر ارسال درخواست و به کارگیری آن برای خواندن اطلاعات از پایگاه داده ندارد.
server side به معنی به کارگیری سرور برای پردازش دستورات است. اسکریپت و یا قطعه کدی که بر روی سرور اجرا می شود در صفحه وب ای که برای کاربر نمایش داده می شود قابل مشاهده نیست و تنها نتیجه آن اسکریپت مبنی بر ایجاد ارتباط با دیتابیس و یا... در مرورگر قابل مشاهده است.
جاوا اسکریپت را بیشتر به عنوان یک فناوری سمت کاربر می شناسیم اما Node.js داستان را عوض کرده و یک پلتفرم است برای توسعه نرم افزارهای سمت سرور. Node.js از جاوااسکریپت به عنوان زبان پیاده سازی اسکریپت های خود استفاده می کند.
علاوه بر این Node.js از یک HTTP server library که در ساختار آن تعبیه شده است، جهت برقراری ارتباط با وب سرور بهره می برد و برای این کار نیازی به نرم افزارهای جانبی ندارد. با وجود Node.js به تدریج از وابستگی جاوااسکریپت به زبان های سمت سرور مثل php و .Net کاسته شده و امکان پیاده سازی تمامی بخش های یک وب اپلیکیشن (یعنی هم بخش های طرف سرور و هم بخش های طرف کاربر) برای برنامه نویس فراهم شده است.
می بینید که جاوااسکریپت زبانی نیست که بتوان آن را نادیده گرفت. این زبان در حال حاضر یکی از ستون های قدرتمند و مهم اینترنت به حساب می آید. با این حساب بد نیست که یادگیری آن را در لیست کارهای آینده قرار دهید.