در سال ۲۰۱۹ آیا هنوز jQuery زنده است؟

فک کنم اکثر کسایی که این نوشته رو باز کردن بدونن jQuery یا به فارسی جی‌کوئری چیه. کتابخونه جاوااسکریپتی که با اومدنش توی سال ۲۰۰۶ کلی سرو صدا کرد و ترکوند. و واقعا هم توی اون سال‌ها جادویی بود و البته الانم هست.جی‌کوئری به قدری بین کتابخونه‌های جاوا اسکریپت معروفه که کاربرای آماتور اونو با جاوا اسکریپت یکی میدونن. در ادامه میخوایم ببینیم با گذشت ۱۳ سال از انتشار جی کوئری و با وجود کتابخونه‌های دیگه(angularJs, Vue JS, React,...) آیا هنوز برنامه‌نویس ها و دولوپرها برای پروژه جدیدشون باید سراغش برن؟ یا کلاً منسوخ شده بدونیمش و طرفش نریم.چرا جی‌کوئری از نظر توسعه‌دهندگان تقریباً منسوخ شدهشاید الان خیلی از توسعه‌دهندگان خجالت بکشن تو جمع رفقای همکارشون بگن که توی پروژه جدیدشون از جی‌کوئری هم استفاده کردن. چون به نظرشون یه کتابخونه قدیمی و نالازمه و برای این نظرشون دلایلی هم دارن که با هم برسی میکنیم ما در سال ۲۰۱۹ هستیم!خیلی سادس. نسخه اولیه جی‌کوئری سال ۲۰۰۶ اومد یعنی ۱۳ سال پیش! و طبعاً برای حل مشکلات همون موقع طراحی شد. درسته که جی‌کوئری توسعه داده شد و ورژن‌های بعدیشم منتشر شد ولی در واقع امکانات همون موقع رو هنوز در خودش داره.به عنوان مثال بسیاری از امکانات جی‌کوئری به حل کردن مشکلات در بین مرورگرای مختلف و قدیمی مربوط میشد. که الان با منسوخ شدن Internet Explorer 6 و مرورگرای مشابهش خیلی از اون مشکلات دیگه وجود ندارند و جاوا اسکریپت تقریبا همه جا یکسان اجرا میشه.جی‌کوئری دیگر بهترین راه برای انیمیشن نیستبه یاد دارم اولین بار که از جی‌کوئری در کارام استفاده کردم از انیمیشن‌هاش به شدت هیجان زده میشدم و لذت میبردم. این انیمیشن‌ها در اینترنت اکسپلورر ۶ هم به درستی اجرا میشد.تقریبا میشه تمام انیمیشن های جیکوئری رو با CSS3 پیاده سازی کردولی با اومدن CSS3 و ساپورت خوب مرورگرها ازش دیگه جیکوئری بهترین راه برای انیمیشن دادن به المانهای صفحه نیست. با CSS انیمیشن های خیلی پیچیده تری هم میشه اجرا کرد.با امکانات جدید جاوا اسکریپت شاید دیگه نیازی به جیکوئری نباشدبا اضافه شدن querySelector/querySelectorAll به جاوا اسکریپت یکی از دلایل اصلی که باعث میشد من از جیکوئری استفاده کنم(سلکت کردن المان‌های صفحه) کمرنگ شد.علاوه بر این این به نظر من یکی کارهای اصلی که جی‌کوئری میکرد مدیریت کردن ‌‌‌Class ها Event ها و ‌Data بود که الان با classList & dataset اینکار میتونه انجام شه. البته این امکانات توی IE11 و بالاتر فقط اجرا میشه. که البته به نظر من زیاد مهم نیست مگه اینکه شما بخواین ۸۴ کیلوبایت جاوا اسکریپت فشرده شده رو فقط به خاطر IE8 و IE9 به صفحتون اضافه کنید.توی این لینک میتونین لیست کامل جایگزین‌ها برای فانکشن‌های جی‌کوئری با جاوااسکریپت خالص(بدون جی‌کوئری) رو ببینیدانتخاب‌های بهتری وجود دارنداگه الان قصد ساخت یک وب اپلیکیشن رو داشته باشم قطعا جی‌کوئری رو به عنوان فریمورک اصلی جاوا اسکریپت پروژه انتخاب نمیکنم. دلیلشم اینه که جی‌کوئری هیچ نوع معماری‌ای رو پیشنهاد نمیکنه و مدیریت فایل‌های جاوااسکریپت برای پروژه‌های بزرگ مثل جهنم میمونه. برای اسمارتفون‌ها هم مناسب نیست چون پردازش زیادی انجام میده.جی‌کوئری برای اپلیکیشن‌های بزرگ مناسب نیست و مدیریت کد رو بسیار سخت میکنه.انتخاب‌های بهتری نظیر ‌VueJS 2, React, Angular 2, Meteor و خیلی گزینه‌های دیگه که هر روز داغ میشن وجود داره. که امکانات خیلی زیادی برای وب اپلیکیشن‌های بزرگ ارائه میدن و ایجکس‌هارو هم خیلی بهتر مدیریت میکنند و تقریباً همه نیازای توسعه دهنده رو برطرف میکنند. ولی آیا واقعا دیگه کسی از جی‌کوئری استفاده نمیکنه؟نمودار استفاده از کتابخونه‌های جاوااسکریپت از سایت: https://trends.builtwith.com/javascript/javascript-libraryهمونطور که در نمودار بالا برگرفته از پلاگین Builtwith میبینید از بین ۱۰ هزار سایت برتر ۶۵ درصدشون جی‌کوئری رو تو صفحه لود کردند. و حتی تو خیلی از اگهی‌های شغلی برای برنامه نویس فرانت‌اند هنوز جی‌کوئری دیده میشه دلیلش اینه که محبوبیت جی‌کوئری به حدی بود که ناگهانی و سریع منسوخ نمیشه.پس چرا هنوز جیکوئری استفاده میشه؟دلیلش اینه جی‌کوئری به شدت کار راه اندازه، خیلیا اونو بلدن، هزاران پلاگین و تکه کد براش نوشته شده. یادگیریش آسونه، و خیلی دلایل دیگه.نکته پایانیبه طور خلاصه میشه گفت که اگه قصد شروع به ساخت یه وب اپلیکیشن تقریبا بزرگ رو دارید جیکوئری انتخاب مناسبی برای شما نیست و سعی کنین گزینه بهتری مثل VueJS یا React یا حتی Angular رو انتخاب کنین.ولی اگه قصد ساخت یه لندینگ پیج ساده یا یک وبلاگ ساده رو دارید و نمیخواین درگیر پیچیدگی‌های تکنولوژی‌های جدید بشین به نظر من جی‌کوئری این یار قدیمی میتونه کمک زیادی به شما بکنه.نظر شما چیه؟