برنامه‌نویسی

فراز و نشیب‌های JavaScript در سال ۲۰۲۰

فراز و نشیب‌های javascript در سال ۲۰۲۰

نتیجه نظرسنجی سامانه stateofjs که از ۱۳۷ کشور و ۲۳۷۶۵ توسعه‌دهنده به‌منظور بررسی اکوسیستم زبان JavaScript جمع‌آوری شده بود در تاریخ ۲۵ دی ماه سال ۱۳۹۹ منتشر شد. در این نظرسنجی به کاربردها و نظرات افراد درباره‌ی ویژگی‌ها، فناوری‌ها، ابزارها و موارد دیگر موجود در اکوسیستم زبان JavaScript پرداخته شده است و ما در این مقاله بخش‌های مهمی از آن را پوشش داده‌ایم تا بتوانید در سال جدید پروژه‌های خود را با متناسب‌ترین ابزارهای موجود توسعه دهید.

فناوری‌های محبوب اکوسیستم JavaScript در سال ۲۰۲۱

تکنولوژی‌های پراستفاده جایگاه خود را حفظ کرده‌اند. همچنان TypeScript پراستفاده‌ترین تکنولوژی گسترش یافته زبان JavaScript و در کنار آن React پراستفاده‌ترین کتابخانه فرانت‌اند و Express پراستفاده‌ترین فریم‌ورک بک‌اند است. بنابراین اگر شما یک توسعه‌دهنده تازه‌کار وب باشید می‌توانید روی این فناوری‌ها حساب باز کنید.

بااین‌حال فناوری‌هایی را می‌توانید در این نظر سنجی مشاهده کنید که در سال ۲۰۲۰ نیز مورد توجه زیادی قرار گرفته‌اند:

Svelte

Svelte از React به‌عنوان محبوب‌ترین کتابخانه فرانت‌اند پیشی گرفت. برخلاف React که بایستی کتابخانه‌ی آن را در ابتدای کدهای برنامه قرار دهیم، Svelte یک کامپایلر محسوب می‌شود که کدهای ما را به کدهای JavaScript کامپایل و بهینه‌سازی می‌کند.

درنتیجه bundle نرم‌افزاری سبک‌تر با عملکرد سریع‌تری در اختیار ما قرار داده می‌شود. همچنین Svelte با معرفی Sapper و Svelte Native به‌سرعت درحال بلوغ در اکوسیستم خود است و می‌توانیم آن را رقیب شایسته‌ای برای React، Vue و Angular بدانیم.

Next.js

اگرچه به‌طور کلی نباید این دو تکنولوژی با هم مقایسه شوند چونکه موارد استفاده‌ی مختلفی دارند اما Next.js از Express به‌عنوان محبوب‌ترین فریم‌ورک بک‌اند پیشی گرفته است. Next.js یک فریم‌ورک SSR است که یک سایت اساتیک را برای کاربر در سمت سرور رندر می‌کند.

esbuild و Snowpack

esbuild و Snowpack از webpack به‌عنوان محبوب‌ترین build tools پیشی گرفتند. esbuild یک پکیج نرم‌افزاری است که با Golang توسعه داده شده و از این رو عملکرد سریع‌تری نسبت به webpack خواهد داشت. از طرف دیگر Snowpack رویکردی جدید را معرفی کرده که فقط یک بار هر ES module را در صورت وجود تغییر build می‌کند اما webpack با با هر تغییر، کل پروژه را build می‌کند.

esbuild و Snowpack هر دو به‌طرز چشم‌گیری زمان توسعه و استقرار برنامه را با روش‌های مختلف کاهش داده‌اند.

قابلیت‌های جدید زبان JavaScript

در این نظرسنجی نیز میزان پذیرش قابلیت‌های جدید زبان JavaScript توسط توسعه‌دهندگان مورد بررسی قرار گرفته ‌است. قابلیت‌های nullish coalescing operator با ۴۵.۳%، optional chaining operators با ۶۶.۷% و Promise.allSettled() با ۱۴.۷% رای‌ها از ۲۳۷۶۵ نفری که در این نظرسنجی شرکت کرده بودند مورد پذیرش قرار گرفته‌ است.

همچنین به این دلیل که این قابلیت‌ها در همه‌ی مرورگرهای اصلی، Node.js 14 و نسخه‌های بعدی آن پشتیبانی می‌شوند بنابراین زمان خوبی است که از آن‌ها در پروژه‌های خود استفاده کنید.

Nullish coalescing operator

Nullish coalescing operator یک logical operator است که وقتی مقدار سمت چپ آن null یا undefined باشد مقدار سمت راست را return می‌کند. حال از این روش می‌توانید برای تنظیم مقادیر پیش‌فرض برای متغیرهایی که ممکن است مقدار آن‌ها null یا undefined باشد، استفاده کنید.

قابلیت nullish coalescing operator

Optional chaining operator

این قابلیت به توسعه‌دهندگان امکان می‌دهد تا بدون نیاز به بررسی موجودیت‌ها به nested objectها دسترسی پیدا کنند.

قابلیت optional chaining operator

Promise.allSettled

این فانکشن در زمانی که همه‌ی Promiseهای موجود resolve یا reject شده‌ باشند، یک Promise را return می‌کند. سپس توسعه‌دهنده می‌تواند بررسی کند آیا Promiseها با موفقیت اجرا شده‌اند یا خیر و به این صورت می‌توان عملکردهایی مانند transactionها را مورد بررسی قرار داد.

فانکشن promise.allSettled

جمع‌بندی

در سال گذشته تغییرهای زیادی در کتابخانه‌های JavaScript به‌وجود آمده است. تکنولوژی‌های تازه‌ای مانند esbuild به‌سرعت در حال رشد هستند و پروژه‌هایی مانند Svelte درنهایت مورد توجه توسعه‌دهندگان قرار گرفته است. علاوه‌براین‌ها در ES2020 شاهد اضافه شدن چندین قابلیت مختلف هستیم که بسیاری مشکل‌های توسعه‌دهندگان را برطرف کرده است.

منبع: https://medium.com/better-programming/the-state-of-javascript-in-2020-97b8bdfdfa20