Files
hakorune/docs/comparison/nyash-vs-others.md

27 lines
1.2 KiB
Markdown
Raw Normal View History

# Nyash vs Other Languages — Feature Comparison
Perspective
- Nyash emphasizes a unified Box model, hygienic AST macros with sandboxing, and multibackend execution (PyVM/LLVM/Cranelift/WASM).
Axes
- Control Flow & SSA
- Nyash: explicit observability (hints), PHI hygiene invariants.
- Rust/Swift/Kotlin: SSA is internal; limited direct observability.
- Exceptions
- Nyash: postfix `catch/cleanup` (scopefirst), zerocost lowering.
- Rust: Result/? idiom (no exceptions). Swift/Kotlin: try/catch/finally.
- Macros
- Nyash: AST JSON v0, hygienic by construction, isolated child with capabilities.
- C: text macro. Rust: macro_rules!/procmacros. Lisp/Julia: homoiconic AST.
- Scope
- Nyash: ScopeBox (compiletime metadata) and ScopeEnter/Leave hints; disappears at runtime.
- Go/Rust/Swift: lexical scopes (no explicit observability layer).
- Backends
- Nyash: PyVM (reference semantics), LLVM (AOT), Cranelift (JIT), WASM.
- Others: single backend or VM.
Takeaways
- Nyashs differentiator is “observability without cost” and macro safety by default.
- Where tradeoffs exist (e.g., temporary hygiene valves), theyre gated and documented.