Luna is a new language TJ Holowaychuk is working on. Its goals are stated as follows:
* small, simple, expressive, and explicit syntax
* fast, fast, and fast
* robust reflection capabilities
* opt-in callee evaluated messages
* register based VM
Luna — not to be confused with Asana’s Luna — borrows ideas from numerous languages including Python, IO, and Lua and Ruby. It is a pure prototype-based language. It made some interesting syntax choices:
greet =: user msg console log(‘hello ‘ . user . ‘ ‘ . msg)
This code defines a
greet function with two arguments:
=: user msg should be interpreted as a separate
=, followed by a function literal
: user msg, with its body indented on the next line.
Luna is an open source project hosted at GitHub. It is in early stages, but an interesting language to follow.
“Stop inventing languages!” — — — — — — — — — — — — — - An oft heard critique when any new language is introduced is “Why a new language? Please stop inventing new languages!” This sentiment is wrong. If people would not be inventing new languages, we would still be writing assembly code, or be stuck writing COBOL. It is through experimentation that we came to the current state of programming languages. We’re not there yet. We’re not done. Therefore, any new language should be welcomed and studied. While most will not survive, they may influence their successors.