بينما ينشغل العالم بتطوير حلول الذكاء الاصطناعي التي تتطلب بنى تحتية ضخمة، يبرز اتجاه مختلف تمامًا يركز على الكفاءة والخفة في بناء تطبيقات سطح المكتب. يقدم لنا المطور Tarwin Stroh-Spijer حلاً جديدًا باسم TinyJS، وهو بيئة تشغيل JavaScript تسمح بإنشاء تطبيقات صغيرة جدًا لأجهزة الكمبيوتر المكتبية، وكأننا عدنا إلى زمن التطبيقات الرشيقة.
يهدف TinyJS إلى تمكين المطورين من بناء تطبيقات لـ macOS وLinux وWindows لا يتجاوز حجمها عادةً 6 ميجابايت على القرص. على عكس بعض الأطر، لا يمثل TinyJS حلاً «بدون كود»، بل يوفر قوة البرمجة الكاملة لـ JavaScript مع قدرات العرض المرئي والتواصل التي توفرها أنظمة التشغيل الأصلية.
كيف يعمل TinyJS؟
يكمن سر خفة TinyJS في استخدامه لنوافذ WebView الأصلية لكل نظام تشغيل. يعتمد على محرك المتصفح المدمج لعرض التطبيق بصريًا بدلًا من تنفيذ طبقة واجهة مستخدم من الصفر. يستخدم WebKit لـ macOS، وWebView2 لـ Windows، وWebKitGTK لـ Linux.
هذا النهج يتناقض بشكل صارخ مع إطار عمل Electron الشهير، الذي يقوم بتضمين نواة متصفح Chromium مفتوحة المصدر مع كل تطبيق سطح مكتب. نتيجة لذلك، حتى أبسط تطبيق Electron يمكن أن يصل حجمه إلى 150 ميجابايت. في المقابل، قد تظهر تطبيقات TinyJS اختلافات بصرية طفيفة بين المنصات بسبب الفروقات في محركات العرض الأصلية، ولكنها تتفوق في الحجم والأداء.
يتكون جوهر TinyJS من txiki.js، وهو بيئة تشغيل JavaScript فائقة الصغر كتبها Saúl Ibarra Corretgé. يبلغ حجم حزمة البداية حوالي 5.6 ميجابايت، ويستهلك المشغل حوالي ميجابايت أخرى. كما بسّط Stroh-Spijer عملية التطوير باستخدام آليات الاتصال بين العمليات لنظام التشغيل، مما يلغي الحاجة إلى تضمين خادم HTTP لكل تطبيق.
تطوير تطبيقاتك باستخدام TinyJS
يتم الترميز في TinyJS بالكامل باستخدام JavaScript وCSS وHTML، دون الحاجة إلى تجميع. هذا يفتح المجال للإبداع مع الاستفادة من التطورات الكبيرة في قدرات تصميم الويب. لا يحتاج المطورون إلى Node.js كاعتمادية إلا إذا أرادوا تشغيل إطار عمل يتطلبه، ويدعم TinyJS أطر عمل JavaScript أخرى مثل React وVue وSvelte، أو يمكن أن يعمل بدون أي اعتماديات على الإطلاق.
يتشابه مشروع Tauri في هدفه لإنشاء تطبيقات صغيرة، ويمكنه تسليم تطبيق سطح مكتب بحجم 10 ميجابايت، ولكنه يتطلب كتابة التطبيقات بلغة Rust. على عكس Tauri الذي يتطلب استيراد المكونات الإضافية، يسلم TinyJS الكثير من أساسيات التطبيق لنظام التشغيل مباشرةً، مثل مربعات الحوار والقوائم ودرج النظام والحافظة والتحديثات التلقائية.
لإظهار الإمكانيات، أنشأ Stroh-Spijer «متجر تطبيقات» خاصًا به يمكن تشغيله من سطح المكتب، ويحتوي حاليًا على 25 تطبيقًا نموذجيًا. تتنوع هذه التطبيقات المجانية بين الأدوات العملية والترفيهية، مثل ساعة عالمية (3.8 ميجابايت)، وتطبيق لسجل الحافظة (3.7 ميجابايت)، ومحرر Markdown (4.9 ميجابايت)، وحتى نسخة مطابقة لمشغل الموسيقى Winamp الشهير الذي يطلب 7.4 ميجابايت فقط من مساحة القرص.
برأينا، يوفر TinyJS حلاً قيّمًا للمطورين الذين يرغبون في بناء أدوات مساعدة بسيطة أو تطبيقات متخصصة لا تحتاج إلى موارد ضخمة. فمع تزايد استهلاك التطبيقات والمتصفحات الحديثة للذاكرة، يمثل إضافة أدوات مكتبية بحد أدنى من النفقات العامة خطوة إيجابية. هذه التطبيقات المتناهية الصغر تبدأ بسرعة وتستهلك طاقة أقل على أجهزة الكمبيوتر المحمولة، مما يعزز تجربة المستخدم.
المصدر: theregister.com