TinyJS: اپ دسکتاپ با جاوااسکریپت تو حدود ۶ مگابایت
خلاصهٔ کاملتر
Tarwin Stroh-Spijer یه runtime جاوااسکریپت به اسم TinyJS ساخته که باهاش میشه اپهای دسکتاپ خیلی کوچیک برای macOS، لینوکس و ویندوز نوشت. خیلی از این اپها حدود ۶ مگابایت یا کمتر جا میگیرن. به گفتهٔ The Register، این یه فریمورک no-code محدود نیست و کل قدرت جاوااسکریپت بهعلاوهٔ امکانات رندر و ارتباطی سیستمعامل در اختیارته.
راز کوچیک بودنش اینه که از WebView سیستمعامل استفاده میکنه، یعنی همون موتور مرورگری که از قبل روی سیستم هست و میتونه HTML رو تو یه پنجره نشون بده. روی macOS از WebKit، روی ویندوز از WebView2 و روی لینوکس از WebKitGTK کمک میگیره. Electron برعکس، Chromium رو با هر اپ بستهبندی میکنه و برای همین حتی سادهترین اپش میتونه ۱۵۰ مگابایت بشه. در عوض اپهای TinyJS روی هر سیستمعامل یه کم ظاهر متفاوتی دارن.
هستهٔ TinyJS، یعنی txiki.js، یه runtime جاوااسکریپت خیلی کمحجمه که Saúl Ibarra Corretgé نوشته و کنارش Deno و Bun غول به نظر میان. بستهٔ پایه حدود ۵.۶ مگابایته و launcher هم یه مگابایت دیگه، بقیهش کد خود توسعهدهندهست. برای جابهجایی داده هم بهجای اینکه یه HTTP server تو هر اپ بذاره، از IPC سیستمعامل (یعنی مکانیزم ارتباط بین پروسهها) استفاده میکنه. اینطوری دردسرهای امنیتی یه سرور جدا هم حذف میشه.
کدنویسی فقط با جاوااسکریپت، CSS و HTMLه و هیچ کامپایلی لازم نیست. Node.js هم وابستگی نیست، مگه اینکه بخوای از ابزاری مثل Vite استفاده کنی. React، Vue و Svelte هم پشتیبانی میشن. Tauri هم هدف مشابهی داره و اپ ۱۰ مگابایتی میسازه، ولی به گفتهٔ سازندهٔ TinyJS باید Rust یاد بگیری. تازه TinyJS دیالوگ، منو، tray، کلیپبورد و آپدیت خودکار رو به سیستمعامل میسپره، ولی تو Tauri هر کدوم یه پلاگین جداست.
سازنده یه «app store» دسکتاپی هم ساخته که موقع نوشتن مقاله ۲۵ اپ نمونهٔ رایگان داشت: ساعت جهانی (۳.۸ مگ)، تاریخچهٔ کلیپبورد (۳.۷ مگ)، ادیتور markdown (۴.۹ مگ)، مرورگر SQLite (۴.۱ مگ) و یه کلون از Winamp که فقط ۷.۴ مگ جا میگیره. تو تست نویسندهٔ مقاله روی ویندوز، اپ کلیپبورد که برای کلیدهای مک نوشته شده بود هنوز باگ داشت، ولی ساعت جهانی درست کار کرد و فقط ۱۵.۵ مگابایت RAM مصرف کرد.
یه نکتهٔ احتیاطی هم هست: launcher هش اپهای دانلودی رو چک میکنه، ولی در نهایت داری به خود سازنده اعتماد میکنی و اول هم باید Windows Defender رو راضی کنی. به گفتهٔ نویسنده، با اینکه کامپیوترها قوی شدن، اپهای تجاری و مرورگرها کلی RAM میخورن. پس ابزارهای ریزی که سریع باز میشن و احتمالاً باتری کمتری مصرف میکنن، هنوز به درد میخورن.
نکات کلیدی:
- اپهای TinyJS حدود ۶ مگابایت یا کمترن، در حالی که یه اپ ساده با Electron میتونه ۱۵۰ مگ باشه
- روی macOS از WebKit، روی ویندوز از WebView2 و روی لینوکس از WebKitGTK استفاده میکنه
- هستهش txiki.js هست و بستهٔ پایه حدود ۵.۶ مگابایته
- Tauri اپ ۱۰ مگابایتی میسازه ولی Rust لازم داره
- ساعت جهانی TinyJS روی ویندوز فقط ۱۵.۵ مگابایت RAM مصرف کرد




