Philosophy
Nakala only has two core values:
- The syntax should feel familiar, while remaining unique
- Nakala doesn't try to do anything really hard, as I want to make working on this project fun and not another job that ends up burning me out. That doesn't mean it doesn't have cool ideas and features though!
Features
- First class functions
- First class classes
- Static type checking
- High performance interpreter (written in Rust 🦀)
- Full-featured javascript interpeter via WASM (try the Playground!)
- Pretty error messages
Planned Features
- Multi-file support via Modules
- Standard library
- FFI support
- Compiler (probably to C++)
- Self-hosted
Contributing
I am always welcoming PRs and would love to work on the project with other people if they are interested. There are no rules, and I will accept any PR as long as it aligns with the projects core values as described above.
History
Nakala started as a programming language that I built based on arzg's Eldiro blog posts.The core architecture (especially the parser) was
practically identical to Eldiro, hence the name of the project: nakala
(Punjabi for mimic). If you haven't read through his blog posts, I
highly recommend you do because it is an unmatched learning resource.
I ended up scrapping the entire language and codebase for
something I built from the ground up after studying more. However, I
decided to keep the name as a nod to arzg for lighting a spark in me
that put me on a journey of learning constantly.