I'd like to announce Nibbles. My goal was to create something as simple as golfscript but as short as any modern golf language. My hope was that by having few enough instructions, they could be encoded in less than 1 byte and that this would cancel out enough of the benefit of complexity. I know complexity will ultimately win, but I personally prefer to golf in a simple language. And for now I believe Nibbles can hold its own.
Here are some highlights:
- Common instructions are 1/2 byte
- There is a literate form that mostly corresponds to binary length (2x)
- Purely functional and lazy
- Types are Integer, Char, List, Tuple (no floats for now, but it's a future possibility)
- Syntax is prefix with DeBruijn indicies for referencing arguments
- Not tacit (to allow more type overloading)
- Mostly not vectorized (again to allow more type overloading)
- Statically typed, but you won't notice.
- Written in and compiles to Haskell.
For posting solutions I recommend just posting the literate form and the binary size in bytes. (Just like assembly language does).
Despite the goal of simplicity I've been working on this for 9+ months. Much of the work has revolved around creating the abstraction around the literate form so that you don't have to think about how it gets compacted yet feels like you are codegolfing like normal.
Please submit feedback (either in github or email listed on the website), bug reports or improvement ideas are the greatest gift I can receive. I'd like to keep the language stable for a bit to gather data on what gets used and doesn't but in a future version I'm not opposed to changing things up. As for big changes like making it tacit, those will never be incorporated into Nibbles as it breaks the whole paradigm, but I am already thinking about ideas for another language, so I am all ears for those too!