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

27 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.