Język programowania do prawdziwej automatyzacji.

Znajomy jak JavaScript i Python. Jawny tam, gdzie ma to znaczenie, jak Rust. Jeden czytelny język do skryptów, narzędzi i zadań.

Automatyzacja, którą można uruchomićbuild.orvi
build.orvi
1task build -> Result<string, string> {2    let output = path.join([context.project_dir, "dist/app"])3    fs.create_dir_all("dist")?4    fs.write_text(output, "built by OrviScript")?5    return Ok(output)6}
SkładniaCelowo znajoma
AutomatyzacjaWbudowane zadania
RuntimeNapisany w Rust
orviscript task run build

Język, nie zbiór przypadkowych skryptów

Zapisz pomysł.
Zachowaj kontrolę.

Zacznij od dziesięciu linii. Dodaj typy, gdy program urośnie. Zamień powtarzalne polecenia w zadania z zależnościami bez przechodzenia do osobnego systemu budowania.

Porównaj z
01
JavaScript

Wywołania async i zasady przepływu są zapisane w kodzie aplikacji.

release.js
1async function release() {2  const output = await build()3  await test(output)4  if (!existsSync(output)) {5    throw new Error("artifact missing")6  }7}
Ten sam celMniej kodu organizacyjnego. Jawny przepływ zadania.
Jeden językJeden runtimeJeden model zadań

Prosty od początku

Czytelny pierwszego dnia. Bezpieczniejszy, gdy rośnie.

Używaj dynamicznych wartości do szybkich skryptów albo dodaj adnotacje typów. Błędy operacyjne wykorzystują Result<T, E> i operator ?, dzięki czemu nie znikają w kodach wyjścia.

Zobacz model języka

Znajoma składnia

Bloki i wyrażenia są naturalne dla osób znających JavaScript, Python lub Rust.

Typy wtedy, gdy pomagają

Zmienna może pozostać dynamiczna albo egzekwować typ, strukturę, Option lub Result.

Przewidywalne sprzątanie

defer i using wykonują cleanup także przy return, błędzie i propagacji ?.

Automatyzacja jest częścią języka

Zadania wiedzą, od czego zależą.

Zadeklaruj budowanie, testowanie lub wdrożenie w tym samym języku. OrviScript sprawdza graf zależności, zatrzymuje zależne zadania po błędzie i jawnie przekazuje wyniki.

01buildtworzy artefakt
02testsprawdza wynik
03releaserusza po sukcesie obu

Pomiar OrviScript 0.6.2

Milion iteracji w czasie bliskim Node.js.

OrviScript wykonał zadanie w 115,9 ms. Na tej samej maszynie z Ryzen 9 9950X3D Node.js osiągnął 102,3 ms, a Python 384,8 ms w 30 próbach.

Zobacz wyniki i metodologię
115,9 msOrviScript 0.6.2 · milion iteracji
1,13×przewaga Node.js nad OrviScript
3,32×przewaga OrviScript nad Pythonem

Pełna pętla pracy

Edytor i runtime rozumieją ten sam język.

CLI, formatter, analiza semantyczna, serwer językowy i interpreter korzystają ze wspólnego parsera w Rust. Aktualne wydanie ma diagnostykę między plikami, podpowiedzi, definicje, referencje, rename i formatowanie.

Zobacz aktualne narzędzia
Terminal
$ orviscript check✓ sprawdzono 8 modułów$ orviscript test✓ 12 zaliczonych · 0 błędów

Dokąd zmierza język

Od czytelnego kodu do przenośnego programu.

Dziś OrviScript działa przez interpreter. Samodzielne bundlowanie, maszyna bytecode i eksperymentalna kompilacja natywna będą osobnymi ścieżkami wykonania. Interpreter pozostanie pełnoprawnym wyborem.

InterpreterdostępnySamodzielny pakietplanowanyMaszyna bytecodeplanowanaNatywne AOTkierunek eksperymentalny

Zacznij od skryptu. Zostań przy języku, gdy projekt urośnie.

OrviScript jest open source, działa i nadal możesz wpłynąć na jego kierunek.