چرا همگان از فرسودگی جاوااسکریپت صحبت می‌کنند ؟

گردآوری و تالیف : ارسطو عباسی
تاریخ انتشار : 11 فروردین 1397
دسته بندی ها : جاوا اسکریپت

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

هرکسی که وارد دنیای تکنولوژی شده باشد این موضوع را می‌داند که جاوااسکریپت، بعد از سال ۲۰۰۹ و با انتشار نودجی‌اس تغییرات عظیمی و گام‌های بزرگی برداشته است. مطمئنا جاوااسکریپت در آن سال مبحث تازه و جدیدی نبود. در آن زمان بدلیل آنکه جاوااسکریپت در انحصار وب و تنها مرورگر بود، محدودیت‌های ساختاری داشت و نمی‌شد در جاهای دیگری از آن استفاده کرد، اما با روی کار آمدن نودجی‌اس تمام این ماجرا تفاوت پیدا کرد و جاوااسکریپت به بخش مهمی از دنیای موبایل و دسکتاپ تبدیل شد. بعد از این ماجرا پشته MEAN ایجاد شد که یک معماری اپلیکیشن‌های وب به شمار می‌رفت و با آن می‌شد به صورت کامل یک وبسایت را اجرا کرد، ابزارهای دیگری نیز مانند PhoneGap و ری‌اکت نیتیو نیز باعث شدند که از جاوااسکریپت در توسعه اپلیکیشن‌های موبایل استفاده شود و این روند برای بخش‌های دیگری نیز به همین شکل بود.

من به سوال ابتدای این ماجرا اینگونه نیز می‌نگرم: آیا ما باید در رابطه با ضرورت ایجاد تکنولوژی‌های جدید مبتنی بر یک زبان اسکریپتی که از ۳۰ سال از عمر آن می‌گذرد، هیجان زده باشیم؟ 

چگونه فرسودگی جاوااسکریپت اتفاق افتاد ؟

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

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

آیا منصفانه‌ است که جاوااسکریپت را سرزنش کنیم ؟

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

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

استفاده از تکنولوژی برای حل مشکلات

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

منبع

مقالات پیشنهادی

چرا Async؟ جاوااسکریپت و دنیای واقعی

در واقع، ممکن است که قبلا عبارت «callback hell» را شنیده باشید. این عبارت بی دلیل ساخته نشده بود: کدی که بر پایه callback باشد، به ناچار در جایی ختم م...

چگونه فایل‌های جاوااسکریپتی را ساختاربندی کنیم؟

افرادی وجود دارند که از من می‌پرسند که چگونه فایل‌های جاوااسکریپتی‌ام را می‌نویسم - خب این موضوع یک دروغ بود، کسی از من این سوال را نپرسیده است اما اگ...

چرا پایتون برای مبتدیان انتخاب خوبی است؟

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

نکات مثبت، اشتباهات و نحوه استفاده async/await در جاوااسکریپت

async/await که در ES7 معرفی شد، بهبود شگفت‌انگیزی در برنامه‌نویسی ناهمگام با JavaScript است. این نوع تابع، گزینه‌ای برای استفاده از کد همگام برای دستر...