نگاهی به State of JavaScript

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

نظرسنجی State of JavaScript چیست؟

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

چهار معیار اصلی امسال شامل Satisfaction, Interest, Usage, Awareness می شوند.

روش محاسبه‌ی هریک از معیارها:

Satisfaction: would use again / (would use again + would not use again)
Interest: want to learn / (want to learn + not interested)
Usage: (would use again + would not use again) / total
Awareness: (total - never heard) / total

این نظرسنجی در سال‌های مختلفی که انجام شده دسته‌بندی های متفاوتی را مدنظر گرفته است که از میان این دسته‌بندی‌ها می‌توان: ویژگی‌های جدید زبان جاوا‌اسکریپت، APIهای جدید مرورگرها، فریمورک‌های بکند و فرانت، بیلدرها، لایبرری و فریمورک‌های تستینگ اشاره کرد.

سال 2020؛ سال ثبات

در بازار فریورک‌ها و لایبرری‌ها در نگاه اول مهمترین چیزی که به چشم میاد ثبات نسبی فریمورک‌هاس که از این ثبات می توان برداشت که اکوسيستم جاوا‌اسکریپت مدرن از دوران تلاطم و آشفتگی سالهای پیشش به آرامی در حال عبور است و کم‌کم پرکتیس‌ها و متدها دارند به ثبات نسبی می‌رسند.

دسته‌ی JavaScript Flavors

که شامل زبان‌ها و سوپرست هایی است که به JS کامپایل میشوند.

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

از دیگر این نکات جالب این لیست فانکشنال بودن تمامی رقبای تایپ‌اسکریپت به غیر از ReasonML است.
رده بندی براساس رضایت برنامه‌نویسان
رده بندی براساس رضایت برنامه‌نویسان

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

دسته‌ی فریمورک‌های فرانت

در این دسته فریمورک React همچنان قدرت بلامنازعی است که بیشتر بازار را به دست آورده و با توجه روند نوآوری‌ها (مثل Server Side Components و Concurrency) و تغییرات جدید این فریمورک آینده باثباتی پیش بینی می شود.

رتبه بندی براساس استفاده
رتبه بندی براساس استفاده
در بخش رضایت دولوپرها فریمورک جوان Svelte با رشد یک درصدی از React پیشی گرفت اما مهمتر از آن رشد استفاده از Svelte است که از ۸٪ به ۱۵٪ که بیشترین مقدار رشد در بین فریمورک‌هاست رسیده.
احتمالا این رشد زا فراغ از نو و جذاب بودن این فریمورک؛ به کاهش رضایت دولوپران از تغییرات Vue در دو سال اخیر و حتی آینده‌ی نزدیک مرتبط دانست.
رتبه بندی براساس رضایت
رتبه بندی براساس رضایت

دسته‌ی فریمورک‌های بکند (سمت سرور)

فریمورک Express همچنان مهره اصلی این بخش از اکوسیستم جاوااسکریپت است و با توجه وفور پکیج‌ها و لایبرری‌های مربوط به این فریمورک، آینده‌ای به غیر استمرار این مسیر نمی توان تصور کرد

اما بخش جذاب و قابل توجه این دسته درخشش فریمورک NextJs است که به عنوان راهکاری فول‌استک که بر پایه‌ی React بنیان شده بسیار جالب است. این فریمورک موفق هم رضایت دولوپرها را جلب کند و هم با افزایش ۱۰٪ در معیار میزان استفاده مجدد در مقام دوم و پس از Express قرار بگیرد.

تراژدی این دسته در نگاه اول باید به Meteor تعلق یابد اما با توجه روند نزولی آن در سال‌های گذشته دیگر تبدیل به خبر کهنه شده است. به همین خاطر تراژدی واقعی را می توان متعلق به Gatsby دانست که زمانی در کنار NextJs قرار می گرفت اما با سقوط ۱۸٪ در رضایت توسعه‌دهندگان و ۱۰٪ در محبوبیت برای یادگیری، پیش بینی میشود که قرعه برنده به نام NextJs بیافتد.

کتابخانه‌های تستینگ

ثبات نسبی و محبوبیت کما فی السابق Jest همچنان برقرار است و به غیر ظهور کتابخانه‌ی قدرتمند Testing Library تحول عجیبی در این دسته اتفاق نیوفتاده است.

ابزارهای بیلد

امسال در این زمینه اتفاقات جالبی افتاده است که آن هم حضور بیلدرهای جدیدی است که مقدمه‌ی افزایش پرفورمنس بیلدرها و بهره‌گیری از مزایای esm خواهد بود. برای مثال هرکدام از بیلدرهای جدید Snowpack و esbuild وعده افزایش سرعت ۱۰ تا ۱۰۰برابری در زمان بیلد گرفتن می‌دهند.

استراتژی متفاوت snowpack در بیلد گرفتن
استراتژی متفاوت snowpack در بیلد گرفتن


بنچمارک سرعت esbuild برگرفته از سایت اصلی
بنچمارک سرعت esbuild برگرفته از سایت اصلی

به وقوع پیوستن این پیشرفت‌ها و کوتاه شدن فرآیند بیلد گرفتن کمک شایانی به تجربه کاربری توسعه‌دهندگان و درنهایت کاربران نهایی خواهد کرد.

دسته‌ی موبایل و دسکتاپ

دسته موبایل و دسکتاپ همچنان جزو دسته‌های داغی هست که حتی با وجود نمونه‌های موفق قدرتمندی مثل vsCode، Slack و Discord در بخش دسکتاپ و اپ‌هایی همچون Instagram, Pinterest و حتی بخشی از محصولات موبایلی مایکروسافت مورد شک و ظن تعداد گسترده‌ای از برنامه نویسان هست.

در این دسته React Native و Cordova و Electron به ترتیب در معیار استفاده مجدد توسط توسعه دهندگان مقام‌های برتر را مثل سال گذشته حفظ کردند ولی با کاهش شدید مقبولیت Cordova احتمال می رود که رفته رفته سهم این محصول کمتر و کمتر شود و بازار این پلتفرم موبایل و دسکتاپ بین React Native و Electron تقسیم شود.

جمع‌بندی

این مطلب بخش اول از مطلبی دو بخشی است که بخش دوم آن نگاهی اجمالی به سطح آشنایی توسعه دهندگان با ویژگی‌های جدید زبانی و APIها خواهد پرداخت. از آنجایی که بخش دوم میتواند جنبه آموزشی بیشتری داشته باشد و مثمر ثمرتر باشد ترجیح دادم که به وقت دیگری موکول شود تا تحت تاثیر خستگی قرار نگیرد.

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