فرض کن میخوای یه ابزار داخلی ساده بسازی؛ مثلاً یه پنل کوچک برای تیم عملیات که فایل JSON تراکنشها رو باز کنه، سرچ کنه، خطاها رو هایلایت کنه و خروجی بده.
چند تا راه داری :
یا با React وب میسازی و توی مرورگر بازش میکنی.
یا با Electron میسازی که بشه اپ دسکتاپ، ولی حجمش زیاد میشه چون با خودش runtime و مرورگر داره.
یا با زبانهای Native مثل Swift/Kotlin/C#/C++ میسازی که خروجی سبکتره، ولی تیم فرانت/JS باید وارد فضای جدیدی بشه.
ولی Perry میخواد بگه: همون TypeScript رو نگه دار، ولی خروجی رو Native بده. مثلاً یه چیزی شبیه این مینویسی:
import { App, VStack, Text, Button, State } from "perry/ui"
const count = State(0)
App({
title: "Counter",
width: 400,
height: 300,
body: VStack(16, [
Text(`Count: ${count.value}`),
Button("Increment", () => count.set(count.value + 1)),
]),
})بعد با یه دستور مثل perry counter.ts -o counter تبدیلش میکنی به برنامهای که روی سیستم اجرا میشه. طبق داکیومنت خود Perry، همین مثال یک پنجره Native روی مک/ویندوز/لینوکس باز میکنه !
چی میخوای دیگ :))))))))
Easy peasy lemon squeezy
@codehalics | کدهالیک