Trije izvedbeni modeli, ena resnica: Kako smo rešili problem 'Napiši enkrat, zaženi povsod'

Ista .orb datoteka se izvaja v browserju, na serverju in se prevede v native kodo. Tukaj je razlaga.
Java je obljubila "napiši enkrat, zaženi povsod." Mi dostavljamo "napiši enkrat, zaženi povsod primerno."
Oblačilo in neuspeh WORA
Leta 1995 je Java obljubila: "Napiši enkrat, zaženi povsod."
Realnost: "Napiši enkrat, debuggaj povsod."
Problem? Različna okolja potrebujejo različne kompromise:
- IDE/Razvoj — Potrebuje hitro iteracijo, interpretirano
- Produkcijski Web — Potrebuje performanco, prevedeno
- Desktop/Mobilno — Potrebuje native, povezano
Ena velikost ne ustreza vsem.
Almadarjeva rešitev: Trije izvedbeni modeli
Iz ene same .orb sheme Almadar podpira tri izvedbene modele:
.orb Schema
│
├─────────────────┬─────────────────┐
│ │ │
▼ ▼ ▼
TypeScript Rust Runtime Generated Code
Runtime (Native) (Compiled)
(Interpreted) (Production)
Vsak je optimiziran za svoje okolje.
Model 1: TypeScript Runtime
Najboljše za: Razvoj, IDE, hitra iteracija
# Zaženi razvojni server z live reload
almadar dev task-app.orb
# Odpre browser na localhost:3000
# Spremembe sheme se samodejno naložijo
Značilnosti:
- ⚡ Hiter zagon
- 🔄 Hot reload
- 🐛 Debugabilno
- 🌐 Browser/Node kompatibilno
Use Cases:
- Builder IDE preview
- Razvojno okolje
- Testiranje in debugging
- Izobraževalni demo
Model 2: Rust Runtime
Najboljše za: Native aplikacije, CLI orodja, visoka performansa
# Prevedi v native Rust binary
almadar compile task-app.orb --shell rust -o native/
# Zgradi in poženi native aplikacijo
cd native && cargo build --release && ./target/release/task-app
Almadar compiler generira popoln Rust projekt z Axum za backend in egui za UI. Rezultat je samostojna native aplikacija — brez runtime odvisnosti, brez Node.js.
Značilnosti:
- 🚀 Native performanca
- 📦 Majhni binaryji
