Skip to content

Instantly share code, notes, and snippets.

@CryZe
Created September 1, 2026 19:59
Show Gist options
  • Select an option

  • Save CryZe/d84d4a3585e71d2ad77c187940cd1667 to your computer and use it in GitHub Desktop.

Select an option

Save CryZe/d84d4a3585e71d2ad77c187940cd1667 to your computer and use it in GitHub Desktop.
SplitScript vs Jai

SplitScript vs Jai

Feature SplitScript Jai
Development time 1 month 12 years
Static strong typing
Local type inference
Whole-program / bidirectional type inference ✅ Extensive ◐ Limited/different model
Generic functions
Generic data types
Trait/interface-like constraints ✅ Structural capabilities ✅ Structural + metaprogramming
Records / structs record struct
Enums
Payload enums / ADT-style sum types ◐ Different model
Pattern matching match if ... case
Optional values ✅ built-in T? ❌ compiler-level
Result/fallible values ✅ built-in T! ❌ compiler-level
First-class functions
Lexical closures
Async functions / values async T
await
First-class iterator abstraction ❌, by design
Custom for iteration ✅ via Iterable ✅ via macros
Generator / yield functions
Arrays ✅ dynamic + fixed ✅ dynamic + fixed + views
Sets / higher-level collections ✅ via shipped modules
Type-directed methods / dot-call APIs ❌ language-level member functions
Operator overloading
Macros ❌ general-purpose user macros
Arbitrary compile-time execution ✅, major feature
Compiler AST accessible to programs ❌ as a language feature
Runtime/type reflection ◐ compiler/tooling semantics Type / type_info
Standard library modules/
Build system ✅ CLI/build/watch ✅ Very sophisticated compiler metaprogram
Syntax highlighting ✅ bundled VS Code grammar ❌ no first-party editor highlighter I can find
Semantic highlighting ❌ first-party editor UI
Language server / LSP ✅ bundled ❌ first-party
Live diagnostics ❌ without external editor integration
Structured diagnostic codes SSxxxx ◐ normal compiler diagnostics
Related diagnostic locations ◐ compiler-side
Quick fixes / code actions ❌ first-party editor actions
Autocomplete ✅ context-sensitive ❌ first-party editor completion
Signature help
Hover/type info ❌ editor UI
Inferred-type inlay hints
Go to definition ❌ first-party
Find references ❌ first-party
Rename symbol ✅ semantic rename ❌ first-party
Document symbols / outline ❌ first-party
Selection ranges ❌ first-party
Formatter ✅ compiler-owned, CLI + LSP + Format on Save ❌ no official formatter I can find
Built-in language documentation ✅ compiler-owned README, how_to/, examples
Searchable symbol docs ❌ first-party
“Docs for symbol under cursor”
Generated HTML API/reference site ❌ official generator
Compiler semantic-query API ✅ internally powers the LSP ✅ very powerful public compiler API
AST introspection/manipulation Internal compiler facility ✅ first-class metaprogramming feature
Compiler message/interception API Internal service architecture
Debug/release builds
Source debugger ◐ built-in bytecode debugger + native debug info
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment