سال 2009 به راحتی می‌شد با یک ویرایشگر متن ساده، وب‌سایتی ساخت و حس کرد که بر اینترنت مسلط هستید. اما هفت سال بعد، نمایش یک متن ساده روی صفحه نیازمند دانستن مفاهیمی بود که قبلا فقط در رشته‌های مهندسی کامپیوتر تدریس می‌شد. این پرش ناگهانی، روایتگر یک پدیده شناخته‌شده در صنعت برنامه‌نویسی است: خستگی از فریمورک‌های جاوااسکریپت. حسی شناخته‌شده که سرعت بی‌پایان تغییرات در اکوسیستم وب، توسعه‌دهندگان را با ابهام و فرسایش ذهنی مواجه کرده است.

عصر طلایی جی‌کوئری و سادگی فراموش‌شده

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

نمای مفهومی از تغییر ساختار کدنویسی از روش‌های ساده به معماری‌های مدرن

آغاز جنگ‌های داخلی فریمورک‌ها

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

اثر پروانه‌ای نود.جی‌اس و انفجار وابستگی‌ها

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

تصویر گرافیکی نمایشگر شبکه گسترده و وابسته پکیج‌های نی‌پی‌ام

هزینه پنهان خستگی فریمورک‌ها

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

آینده توسعه وب به سمت سادگی

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