Electron انتصر في حروب تطبيقات سطح المكتب — ومنافسوه يعيدون الآن تشكيل طريقة بناء المطورين للتطبيقات

في عام 2013، أصدر GitHub محرر النصوص Atom، الذي بُني على إطار عمل يُضمّن متصفح Chromium كاملًا ومُشغّل Node.js داخل تطبيق سطح مكتب. بدا هذا الإطار — والذي أُطلق لاحقًا باسم Electron — أمرًا عبثيًا للمطورين المهتمين بالأداء: لماذا تُضمّن متصفح ويب بالكامل لتشغيل محرر نصوص؟
بعد ثلاثة عشر عامًا، يُشغّل Electron أكثر أدوات المطورين استخدامًا على وجه الأرض. فـ Visual Studio Code وSlack وDiscord وعميل Figma لسطح المكتب وNotion و1Password وعشرات التطبيقات الأخرى التي تُحدّد فئاتها مبنية جميعها على Electron. ومهما كانت الاعتراضات النظرية، فقد انتصر Electron. والسؤال الآن هو ما إذا كان سيتمسك بتلك الهيمنة في مواجهة جيل جديد من أُطر العمل التي تهاجم نقاط ضعفه.
لماذا انتصر Electron
قيمة Electron الأساسية بسيطة: اكتب مرة واحدة بلغة HTML وCSS وJavaScript، وانشر على Windows وmacOS وLinux دون الحاجة إلى صيانة قواعد كود منفصلة. بالنسبة للفرق التي تبني تطبيقات ويب بالفعل، فإن نقل المهارات يكاد يكون معدومًا. وتوفّر منظومة npm ملايين الحزم. وتعمل أدوات DevTools الخاصة بـ Chrome في التصحيح. وسلوك العرض متوقع تمامًا عبر المنصات لأنه دائمًا نفس محرك المتصفح.
حُسمت الجدوى الاقتصادية من تلقاء نفسها. فمقارنة بتوظيف متخصصين في المنصات الأصلية لكل من macOS (لغات Swift وObjective-C) وWindows (لغات C# وWinRT) بشكل منفصل، كان فريق JavaScript واحد يدير قاعدة كود واحدة أرخص بكثير. وأعاد Slack بناء عميله على macOS بشكل مشهور من تطبيق أصلي إلى Electron، وقلّل عدد مهندسي فريق سطح المكتب. وقد اعتُبرت المقايضة في الأداء مقبولة نظرًا للانخفاض في التعقيد.
التكاليف الحقيقية
الشكاوى حول Electron حقيقية وموثّقة جيدًا. فالتطبيق النموذجي المبني على Electron يُضمّن تقريبًا 150–200 ميغابايت من Chromium وNode.js، مما يعني أن كل تطبيق يُرسل نسخته الخاصة من المتصفح. يتجاوز حجم مُثبّت Discord 90 ميغابايت. وVS Code بحجم يقارب 100 ميغابايت. اضرب هذا في 15 أو 20 تطبيقًا يعمل على Electron يستخدمها المطور عادة، وستجد أنك أضفت غيغابايت من تثبيتات المتصفح المكررة إلى جهازك.
استهلاك الذاكرة هو المشكلة الأكثر إلحاحًا. يستهلك Discord بشكل روتيني 600–900 ميغابايت من ذاكرة الوصول العشوائي في حالة الخمول. واستهلك Slack تاريخيًا كميات مماثلة. على جهاز MacBook بذاكرة موحدة سعتها 8 غيغابايت، يعني تشغيل ثلاثة تطبيقات Electron في وقت واحد تخصيص جزء كبير من ذاكرة الوصول العشوائي المتاحة لتطبيقات تنتظرك فقط لتنظر إليها.
وقت بدء التشغيل أبطأ من البدائل الأصلية. فالوقت اللازم لإطلاق VS Code عند بدء التشغيل البارد أطول بشكل ملحوظ من إطلاق محرر أصلي. بالنسبة للمستخدمين المحترفين الذين يُشغّلون التطبيقات طوال اليوم، هذا إزعاج بسيط. أما بالنسبة للمستخدمين الذين يعتادون إغلاق التطبيقات وإعادة فتحها، فإن الوقت يتراكم.
Tauri: المنافس خفيف الوزن
يتبنى Tauri، الذي أُصدر لأول مرة في 2021 ووصل إلى الإصدار 2.0 في 2024، نهجًا معماريًا مختلفًا. فبدلًا من تضمين Chromium، يستخدم WebView المدمج في نظام التشغيل — WebKit على macOS وLinux، وWebView2 (محرك عرض Edge) على Windows. ويعمل الواجهة الخلفية على Rust بدلًا من Node.js.
النتيجة هي تطبيقات أصغر بكثير. يُنتج تطبيق Tauri بسيط مُثبّتًا بحجم أقل من 4 ميغابايت. ويمكن أن ينخفض استهلاك الذاكرة في حالة الخمول إلى أقل من 50 ميغابايت للتطبيقات البسيطة. تجعل ضمانات الأمان في Rust وخصائص أدائه الواجهة الخلفية أكثر كفاءة من Node.js في العمليات الكثيفة الاستخدام لوحدة المعالجة المركزية.
المقايضة هي اتساق العرض. نظرًا لأن Tauri يستخدم WebView الخاص بالنظام، يمكن أن يختلف العرض بين المنصات — فيتصرف WebKit بشكل مختلف عن WebView2 في الحالات الحدية. وعلى المطورون المعتادون على ضمان Electron بأنه "يبدو دائمًا مثل Chrome" إجراء المزيد من اختبارات التوافق بين المنصات. فقد يعمل CSS أو JavaScript بشكل مثالي على macOS لكن بفروقات دقيقة على Windows.
ورغم ذلك، جذب Tauri اعتمادًا جديًا. فقد نقلت Bitwarden عميلها لسطح المكتب من Electron إلى Tauri في 2023، مُبلّغة عن انخفاضات كبيرة في استهلاك الذاكرة وحجم المُثبّت. وتستفيد التطبيقات الحساسة للأمان بشكل خاص: فسطح الهجوم الأصغر في Tauri — بدون مُشغّل Node.js مُضمّن، بدون محرك متصفح كامل — ذو أهمية للتطبيقات التي تتعامل مع بيانات حساسة.
منافسون آخرون
يجلب Wails لغة Go إلى نفس بنية WebView التي ابتكرها Tauri، مما يجذب الفرق المستثمرة بالفعل في منظومة Go. وFlutter، الذي كان في الأصل إطار عمل للهواتف المحمولة، وصل إلى جودة الإنتاج على سطح المكتب ويوفّر محرك عرض مخصصًا بالكامل — بدون WebView على الإطلاق — مع اتساق مثالي بالبكسل عبر المنصات، لكن على حساب منحنى تعلّم أكبر.
تبقى تطبيقات الويب التقدمية (PWAs) خيارًا viable للتطبيقات التي لا تحتاج إلى تكامل عميق مع النظام. يدعم كل من Chrome وEdge تثبيت تطبيقات PWA كتطبيقات سطح مكتب، وقد تقلّصت الفجوة في الوظائف بين تطبيقات PWA وتطبيقات Electron بشكل كبير على مدار السنوات الماضية. بالنسبة للتطبيقات التي تعرض المحتوى بشكل أساسي ولا تحتاج إلى الوصول إلى نظام الملفات أو المنافذ المحلية أو إشعارات النظام، غالبًا ما تكون تطبيقات PWA الخيار المعقول.
لن يذهب Electron إلى أي مكان
رغم منافسيه، فإن خندق Electron الدفاعي عميق. فمنظومة الحزم المتوافقة مع Electron والأدلة والشروحات ضخمة. والفرق التي تمتلك قواعد كود قائمة على Electron لديها حافز ضئيل لإعادة كتابة تطبيقات تعمل بشكل جيد. وشكاوى الأداء، رغم مشروعيتها، أثبتت أنها محتملة بما يكفي لاستمرار المستخدمين في تثبيت تطبيقات Electron بعشرات الملايين.
واستثمار Microsoft المستمر في VS Code — أكثر بيئات التطوير المتكاملة استخدامًا في العالم والمبني على Electron — يشير إلى أن الإطار سيحظى بصيانة نشطة في المستقبل المنظور. كما أن فريق Electron الأساسي حسّن الأداء بشكل ملحوظ على مر السنين: فمحرك JavaScript في V8 أسرع بكثير مما كان عليه في 2013، وتحسنت إدارة الذاكرة في Chromium.
مشهد 2026
تبدو منظومة تطبيقات سطح المكتب في 2026 أكثر تنوعًا منها في أي نقطة في تاريخ Electron. لا يزال Electron مهيمنًا للتطبيقات التي يهم فيها اتساق العرض والتوافق الواسع مع npm وألفة المطورين أكثر من غيرها. ويفوز Tauri في التطبيقات التي يُشكّل فيها الأمان وحجم الملف الثنائي وأداء بدء التشغيل قيودًا حرجة. وي carve Flutter مساحة للتطبيقات ذات متطلبات واجهة المستخدم المخصصة. وتواصل تطبيقات PWA قضم حالات الاستخدام التي لا تحتاج إلى تكامل مع النظام.
التحول الحقيقي هو في كيفية بناء التطبيقات الجديدة. فالفرق التي تبدأ مشاريع سطح مكتب في 2026 تفكر بجدية أكبر في المقايضات مما كانت عليه في 2018. لم يعد Electron الخيار الافتراضي — بل أصبح خيارًا من بين عدة خيارات، لكل منها ملف أداء وتعقيد مختلف. هذه منظومة أكثر صحة من العصر الذي كان فيه "بناء تطبيق سطح مكتب" يعني "بناء تطبيق Electron" سواء كان مناسبًا أم لا.