NuLispC... the boundaries blur

Nu isn't something that I would have predicted to be so good, but then again I would never have come up with Objective-C either. I'm very much a homogeniser and I would have generalised C into something like a simpler version of C++... perhaps like Qt with its 'moc' extension to C++, except to C instead.

This is how Nu achieves operating on multicore and distributed architectures... by being close to the metal:

http://blog.neontology.com/posts/2008/03/02/objective-c-actors

http://blog.neontology.com/posts/2008/03/08/fun-with-distributed-objects

I didn't want to learn Objective-C, but I had to use the GUI API, which is Cocoa, which is Objective-C. Once I was in there, I could see the benefit of having object calls looking very different from C calls. It was something that I had to observe and use to understand, and explaining it to me wouldn't have done it.

When I'm playing around with a SQL select, or a Prolog match, or a Lisp program, my mental model of the computer is doing so much crap work that it makes me sick to think about it. That cute little bit of code in Lisp that maps and selects? So many thousands of lists died in the making of that output. So much memory used.

Great for one-off jobs or higher level control, but if you're going to be (((((list cdr) cdr) cdr) cdr) cdr)'ing down recursively building sub-lists and nonmutable copies per change to stay functional, then that's why today's computers aren't all that much faster than the Colecovision or Atari console game.

So having Objective-C code as the "still a bit uncomfortably inefficient with all that object stuff" compromise with C as the "insane but still human" hammer for all nails, slotting that up into a high level scripting layer language takes care of the rest. The problem is which high level language?

Ruby and Python and Haskell and the others all have the problem of having different concepts and semantics to their host language. Look at the bridging layers to write Ruby code in C, or the ways of translating Python variables to their less capable C equivalence.

In contrast, see how Nu has high level control with C level speed:

http://programming.nu/benwanu

Nu isn't just another language... it has a new idea. It is imitating Objective-C as closely as possible in Lisp, to the point of using keywords to imitate the Objective-C syntax. It is also Lisp, and can be programmed exactly like Lisp. Including having a command line.

The idea is to be able to drop code down to Objective-C for extra speed, or pull it up into Lisp for more control. Code that is as similar as possible makes this easier, and they have the same run-time