firescript is a statically and strongly typed programming language that compiles natively or to JavaScript + Wasm. It is designed to be simple, powerful, and easy to learn while remaining expressive for advanced applications.
Disclaimer: firescript is currently in development and is not yet feature-complete. The language and compiler are subject to change. Not everything described in this document is implemented or working. Current builds may leak resources; the design goal is deterministic destruction via an ownership model.
- Static & Strong Typing: Enhances code readability and reliability.
- Simple Syntax: Combines the best of C, Java, JavaScript, and Python.
- Everything is Explicit: No implicit conversions or hidden behavior.
- Versatile Compilation: Supports native binaries and JavaScript output.
- Cohesive Design: All parts of the language work seamlessly together.
- Deterministic Ownership Model (planned): Ownership, moves, borrows, and explicit cloning instead of a tracing garbage collector. See the Memory Management Model.
import @firescript/std.io.{println};
// Define a function that returns the nth Fibonacci number
int8 fibonacci(int8 n) {
if n <= 1 {
return n
}
return fibonacci(n - 1) + fibonacci(n - 2)
}
// Print the first 10 Fibonacci numbers
for (int8 i : range(9)) {
println(fibonacci(i))
}
See the Getting Started Guide for installation and usage instructions.
Full documentation is available at: https://alec-jensen.github.io/firescript/
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
firescript is released under the MIT License. See LICENSE for details.