home

playground

contribute

nakala

A hobby programming language designed to be fun and familiar - because programming is meant to be fun!

Philosophy

Nakala only has two core values:

  1. The syntax should feel familiar, while remaining unique
  2. 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.