Wouter van Oortmerssen is someone anyone interested in programming languages should be aware of - he's developed a ridiculous number of languages ranging from the very useful to bizarre and novel experimental.<p>I've been a fan ever since I was programming AmigaE, and it was the first and only development tool I've spent money on.
I especially like his screenshot: A little minecraft clone with its code in a single image.<p><a href="http://i.imgur.com/ZZWFkXn.jpg" rel="nofollow">http://i.imgur.com/ZZWFkXn.jpg</a>
At first glance it seems like an amazing language. Very few basic building blocks, and yet it manages to capture a good deal of the advanced features of modern languages. Nice, parsimonious syntax too. I especially like the Rubyesque way blocks are passed to functions.<p>Couple of things I imagine might bother me:<p>* Lack of upwards funargs. The reason stated is performance. I realise that it's complicated to implement, but it might be possible to start out with cheap blocks and promote them later to full closures if necessary.<p>* Reference cycles as an error. It's pretty easy to create these in legit circumstances. Maybe something like Python's auxiliary GC could be useful here.
The sound system appears extremely primitive. I also don't seen anything that makes game programming particularly "easy" over just using regular, ol' graphics and sound APIs in a general purpose language.
Is it a thought experiment or something that author suggests people use for real-world commercial projects? It would be nice to see some sort of feature comparison table (vs Lua, vs JS etc.).
I tried to find a way to store a function in an object to call later, and after fighting the syntax I hit a bus error. I guess that is only possible with full closures.<p>I was trying to have a vector of behaviors for my sprites, which would hold arbitrary functions to call when updating the sprite. I don't need to capture any variables, so I don't actually need a closure. But the scope in which the anonymous function was initially created is long gone, so that's probably the issue.<p>I'll see if co-routines can solve this for me ...
At first glance I love this syntax. I'll have to pull out some of my hypothetical syntax notes to see if any holes I came up with for my language attempts apply here, but I very much like it.<p>Using high-level function constructs for main language flow control features seems to be in vogue. Rust does it too. I liked it when I learned Scheme and have been wanting it to be more main stream since then. That's probably why I like Ruby, since Ruby's blocks are close for many uses.<p>I'll play with this more when I get home tonight.