نصب برنامههای ویندوز قبلاً حسی هیجانانگیز داشت. یک نصبکنندهٔ کوچک با حجم ۵ مگابایت میتوانست یک پخشکننده موسیقی فوقالعاده سریع، یک ویرایشگر متن محکم، یک نمایشگر تصویر قدرتمند که فوراً باز میشود و بهحداقل مقدار RAM شما را مصرف کند، به شما بدهد. دلیلی وجود دارد که یک پخشکننده MP3 که ۲۸ سال پیش محبوب بود، هنوز امروز هم پرطرفدار است.
نصب برنامههای ویندوز قبلاً احساس هیجان میداد. یک نصبکنندهٔ کوچک ۵ مگابایتی میتوانست یک پخشکنندهٔ موسیقی فوقسریع، یک ویرایشگر متن ثابت، یک نمایشگر تصویر قدرتمند که بلافاصله باز میشود، و بهندرت RAM شما را مصرف کند، به شما بدهد. دلیل این است که پخشکننده MP3 که ۲۸ سال پیش محبوب بود هنوز هم امروز جذاب است.
در طول مسیر، برنامههای بومی ویندوز بهصورت آرام در پسزمینه ناپدید شدند و جای خود را به Electron، PWAها و «رابطهای وب بستهبندیشده» دادند. حالا کاربران ویندوز در تعجب میمانند که چه اتفاقی افتاده است.
معنای واقعی «بومی» در ویندوز چه بود
Win32 کلاسیک و UWP ظاهر، حس و سرعتی که ما بهطور مسلم میدانستیم را تعریف کردند

در ویندوز، یک برنامه «بومی» به این معناست که مستقیماً بر پایه چارچوبهای بومی پلتفرم ساخته شده باشد؛ مانند Win32، MFC، .NET با WPF یا WinForms و اخیراً UWP (پلتفرم جهانی ویندوز) یا WinUI. این برنامهها به زبان سیستمعامل صحبت میکردند، از کنترلهای سیستم استفاده میکردند، قواعد آن را رعایت میکردند و APIها را به کارآمدترین شکل ممکن به کار میبردند.
به همین دلیل بسیاری از برنامههای کلاسیک ویندوز بهطور شگفتآوری سریع و سبک احساس میشوند. ابزارهایی مانند Notepad++، Winamp، Paint.NET، foobar2000، Everything Search و بسیاری دیگر میتوانستند بهراحتی روی سختافزارهای قدیمی اجرا شوند، در یک چشمبرگشت باز شوند و تنها چند مگابایت RAM مصرف کنند. آنها بر روی ویندوز خوب کار میکردند زیرا برای آن ساخته شده بودند.
امروز، بسیاری از نرمافزارهای دسکتاپ جدید عملاً یک وبسایت تکصفحهای هستند که در یک پوستهٔ دسکتاپ بستهبندی شدهاند.
Electron و ذهنیت «وب در همهجا»
چرا توسعهدهندگان به فناوری وب روی آوردند — و چه چیزی برای کاربران از دست رفت
بهجای نوشتن برنامهٔ جداگانه برای ویندوز، macOS و Linux، توسعهدهندگان حالا میتوانند یک برنامهٔ وب با HTML/CSS/JavaScript بسازند و بهواسطهٔ Electron به همهٔ پلتفرمها بفرستند. Electron یک موتور مرورگر Chromium و Node.js را در یک زماناجرای دسکتاپ میپیوندد و کد وب را به عنوان یک برنامه بومی اجرا میکند.
از منظر یک توسعهدهنده، این به دلایل متعددی عالی است. فقط لازم است یک پایهٔ کد برای هر سه پلتفرم دسکتاپ اصلی نگهداری کنید. میتوانید بهجای سه تیم تخصصی، توسعهدهندگان وب را استخدام کنید. تکرار سریعتر است، تغییرات UI آسانتر، و کتابخانههای وب موجود بهگونی کار را ساده میکند.
با در نظر گرفتن این مزایا، تعجبی نیست که بسیاری از برنامههای بزرگ نامدار این مسیر را انتخاب کردهاند. Slack، Discord، کلاینت دسکتاپ Figma، Obsidian، Notion و اخیراً WhatsApp همه به Electron یا فناوریهای وب مشابه تکیه دارند.
پس مشکل چیست؟ راحتی برای توسعهدهندگان باید به این معنی باشد که زمانشان صرف ویژگیهای با ارزش میشود، نه اطمینان از سازگاری سیستم. اما این راحتی هزینهٔ مستقیمی برای کاربران دارد.
مالیات عملکردی که کاربران میپردازند
نوسان RAM، UI کند، خالی شدن باتری: هزینهٔ ساکت برنامههای وبپوشیده
هر برنامهٔ Electron بهنوعی مرورگر خود را حمل میکند. اگر همزمان چند برنامهٔ Electron باز کنید، چندین نمونهٔ Chromium در حافظهٔ کامپیوتر شما مینشینند. روی یک ماشین قوی با RAM فراوان شاید تفاوتی حس نکنید، اما روی لپتاپ اقتصادی یا رایانهٔ قدیمی، این ضربهٔ عملکردی میتواند دردناک باشد.
علاوه بر مصرف بالای حافظه، برنامهها برای باز شدن صبر میکنند تا زماناجرایشان بارگذاری شود، عناصر UI همیشه شبیه یا رفتار مشابه کنترلهای بومی ندارند، تمها و مقیاسبندی سیستم میتواند نامتناسب باشد، میانبرهای صفحهکلید ممکن است ناسازگار باشند و نگهداری چندین مرورگر توکار در حافظه، به باتری لپتاپ ضربه میزند.

همهٔ برنامههای Electron یا وب بد نیستند. یک مثال کلاسیک Visual Studio Code است. این یک برنامهٔ Electron و یکی از بهترین ویرایشگرهای کد موجود است و حتی برنامهٔ نوشتاری کاملی است که میتوانید از آن استفاده کنید. بسیار توانمند است و برای کاری که انجام میدهد بهطور معقولی بهینهسازی شده است. هدف اینجا نه این است که بگوییم Electron بد است؛ بلکه این است که این رویکرد باعث شده توسعهدهندگان کمتر به بهینهسازی اهمیت بدهند.
ممکن است ویندوز این تغییر را تشویق کند
ابزارهایی که بهطور زیرکانه برنامههای وبمحور را ترجیح میدهند
مایکروسافت هم برای جلوگیری از این تغییر کار خاصی انجام نداده است. در واقع، فناوریهای خودش به سمت رویکردهای وبمحور میروند. WebView2 در Edge به توسعهدهندگان اجازه میدهد موتور Edge را مستقیماً در برنامههای دسکتاپ تعبیه کنند. فروشگاه Microsoft تعداد زیادی برنامهٔ وب و Electron را در خود دارد. حتی محصولات خود مایکروسافت مانند Teams و بخشهایی از اکوسیستم Office نیز بر پایهٔ فناوری وب ساخته شدهاند.

بدتر از آن، چارچوبهای سنتی UI ویندوز بهتدریج پخشپذیری پیدا میکنند و گیجکننده میشوند. چارچوبهایی مانند Win32، WPF، UWP، WinUI 3 و MAUI بهصورت مداوم تغییر میکنند تا برای توسعهدهندگان کوچک سخت شود تا یک پایهٔ کد جداگانهٔ ویندوز را نگهداری کنند. اگر قبلاً React را میشناسید، چرا برای مبارزه با XAML وقت صرف کنید؟ و اگر فروشگاه با خوشحالی برنامههای Electron را میپذیرد، چرا به پلتفرم بومی بپیوندید وقتی میتوانید یکبار برای سه پلتفرم برنامهتان را منتشر کنید؟
برنامههای بومی ویندوز اغلب دارای ظرافتی بودند که در دنیای رابطهای وب عمومی بهسختی میتوان از آن نسخهبرداری کرد. آنها برای پلتفرم بهخصوص بهینهسازی شده بودند، حداکثر عملکرد را صرفنظر از سختافزار استخراج میکردند و بهخوبی با ویژگیهای سیستمعامل مانند افزونههای شل، میانبرهای جهانی، ارتباطات فایل، قابلیت کشیدن و رها کردن، سیستم اعلانها و حتی نوار وظیفه یکپارچه میشدند.
بهمحض مقایسهٔ هر برنامهٔ بومی ویندوز خوبساخته با همتای Electron یا وب، بلافاصله تفاوت چشمگیری در عملکرد، بهویژه روی سختافزارهای کمقوه، مشهود میشود.

بهیاد میآورید Control Panel؟ بله، من هم دلم برای آن تنگ شده.
امروزه هنوز برنامههای بومی ویندوز عالی ساخته و نگهداری میشوند. ابزارهایی مانند Everything Search، ShareX، AutoHotKey، EarTrumpet و بسیاری دیگر از ابزارهای متنباز شهادتی هستند که نرمافزار بومی مدرن همچنان سریع، متمرکز و بهخوبی با سیستمعامل یکپارچه است.
آیا برنامههای بومی ویندوز میتوانند دوباره به صحنه برگردند؟
فقط اگر کاربران شروع به اولویتدادن به آنچه مهم است کنند
برنامههای بومی ویندوز کاملاً ناپدید نشدهاند. آنها بهتدریج توسط اقتصاد توسعهٔ نرمافزار سرکوب میشوند. صرفنظر از اینکه یک فرد یا یک تیم با مهارتهای بالا باشد، نگهداری کمتر پایهٔ کد سادهتر، پایدارتر و امنتر است. این باعث میشود اشکالزدایی و انتشار سریعتر شود و برای شرکتها هزینهٔ استخدام متخصصان بومی کاهش یابد.
سختافزاری که در اختیار داریم نیز هر روز قویتر میشود و در نقطهای رسیده که امکان اجرای این برنامهها بدون آسیب به تجربهٔ کاربری وجود دارد. علاوه بر این، وقتی صاحب پلتفرم خود به ابزارهای مبتنی بر وب روی میآورد، چرا توسعهدهندگان خارجی باید متفاوت عمل کنند؟
با این حال برای کاربران نتیجه یک دسکتاپ پر از برنامههایی است که شبیه هم هستند، RAM زیادی میخورند، برای راهاندازی زمان میبرند و مثل تبهای مرورگر رفتار میکنند که فراموش کردهاند بر روی یک PC زندگی میکنند.
بازگرداندن برنامههای بومی به این معنی نیست که بر Electron فشار آورده یا تکنولوژیهای وب را هین میکنیم؛ بلکه دربارهٔ تعادل است، دربارهٔ اینکه بیشتر توسعهدهندگان در مواردی که واقعا نیاز است از رویکرد بومی یا ترکیبی استفاده کنند و برای عملکرد ارزش قائل شوند. برای نرمافزاری که تمام روز روی دسکتاپ زندگی میکند یا برای کاربران پیشرفته هدف دارد، عملکرد و یکپارچگی خوب با سیستمعامل همچنان مهم است.