We are the Knights who code Ni!
Chap releases Python and Smalltalk-inspired language, complete with shrubbery
A Venn diagram describing the overlapping populations of Monty Python admirers and software developers would probably show a very large intersection between the two groups.
But that's not the only reason software development and motor boat enthusiast Göran Krampe has announced a new programming language called “Ni”.
The Knights Who Say Ni are one inspiration for the language. Smalltalk, Rebol, Forth, Lisp, Self and Nim are others.
Krampe says he admires Smalltalk because it offers “Easy readable keyword syntax, everything is an expression etc, [which] gives great power in expressing code. He's also fond of features like “closures and non local return for control structures” and admires the fact that its “... object model is easy to reason about and picture mentally, doesn’t get in your way.”
“In making Ni,” he writes, “I am striving to cover these bases and some of the fundamental pieces are there already, like closures and non local return.”
Krampe explains some of Ni's approach by writing “For the ordered sequence, Ni is inspired by Rebol/Lisp and has the “Block” as the fundamental data structure. Its like an OrderedCollection, and uses square bracket
[1 2 3] syntax. And yes, its also the same syntax for code blocks because Ni is homoiconic. That means that code and data share the same representation, just like in Lisp/Rebol. So in Ni we can do:
code = [3 + 1] # This is a block with 3 elements code at: 2 put: 4 # Stuff the number 4 as the last element, we use positioning from 0 echo do code # Prints out 7
“Ni is evolving and it doesn’t do objects yet but I think Ni already shows (as Rebol already also has shown to some extent) that you can have a Smalltalk-ish language that is at the same time homoiconic and deeply functional,” Krampe writes, outlining his plan to keep going in the hope of creating something “not academic and really meant to become something useful.”
The intention to make something useful is, The Reg presumes, the reason the language's syntax does not include “Ecky-ecky-ecky-ecky-pikang-zoop-boing-goodem-zoo-owli-zhiv.” ®