

Nu: Lisp on Objective C. (think Clojure for Cocoa) - jashmenn
http://github.com/timburks/nu

======
mahmud
I was going to complain how I found neither compiler nor VM in that source
listings, and how it's not a pure Lisp, yada yada yada. Then I took a look at
the author's other projects to see if he was a Lisper ..

Well, the man certainly puts his money where his mouth is. He has 40+ projects
on github, the majority of them written in Nu.

<http://github.com/timburks>

If it's good enough for him, and let's him get work done, who am I to
complain.

------
yuan
If you're interested in Lisp, Objective C and Cocoa, you might also be
interested in Clozure[1], a Common Lisp implementation which provides complete
access to Cocoa through its Objective C bridge[2].

[1] <http://ccl.clozure.com>

[2] <http://trac.clozure.com/ccl/wiki/Cocoa>

\-- Auto suggestion machine at your service

------
zephjc
I don't think the "clojure for cocoa" description is apt.

1\. All the examples I saw on the git tutorials we're basically just
imperative programming with parentheses instead of ObjC's brackets (actually
some of the examples remind me more of Smalltalk).

2\. Clojure seems to be finding a niche in the web app world, whereas Nu is
targeted at Cocoa app programming, i.e. end-user GUI apps.

~~~
jashmenn
I'm the OP, and I'm not really sure what the source of let-down is here.

Nu has closures, anonymous functions, supports currying etc. It uses the Cocoa
classes and they claim it can even be compiled onto the iPhone.

So while the examples in git may be "imperative" I would guess its only
because they are trying to show how to be interoperable with Cocoa objects
which, not being functional, causes imperative constructs to creep back into
your code. The same thing happens when you try to use existing Java objects in
Clojure. This seems to be a limitation only of the examples and not of the
language itself.

~~~
itistoday
Lisp for Cocoa would have been a better title.

Clojure is quite a different Lisp, and to say that this is "Clojure for Cocoa"
implies it has something in common with Clojure other than also being a member
of the Lisp family, which it really doesn't.

Clojure is very functional, Nu is not. Clojure's language is designed to make
it safe and simple to write multithreaded code. Nu is just an imperative Lisp
with smalltalk syntax so that it can interface with Cocoa/Objective-C. Clojure
takes a departure from all Lisps by treating lists as just any other
datastructre, and therefore has literal syntax for arrays, hashtables, and
sets, Nu has no such thing. Clojure places a huge emphasis on "data
abstractions" like Seqs and builds its core functions around that. Clojure is
compiled, Nu is interpreted, etc...

Don't get me wrong, I think Nu is really cool, but I can't think of a single
thing that Nu shares with Clojure that is exclusive to Clojure and not Lisp.

~~~
jwr
Agreed. It has little in common with Clojure.

But it is an interesting effort. I would like to be able to write Mac apps in
Lisp, closures come in very handy in GUI programming.

~~~
itistoday
Objective-C has closures, they're called blocks.

------
jared314
Bad title. From the Nu website: "Its syntax comes from Lisp, but Nu is
semantically closer to Ruby than Lisp."

------
stratospark
So would be allowed on iOS given the 3.3.1 clause forbidding alternative
languages?

~~~
Elrac
This is a question I'm very interested to hear an answer to. I've started
dabbling with Objective-C and I don't like it much; it would be very sweet if
I could write apps for the i{Pad,Phone,*} in a Lisp-like like language.

------
kunley
The `nuke' name for the build tool is so cool!

------
protomyth
Tim Burk has really done some great work for Cocoa programmers and very
informative to follow on twitter @timburks.

------
c00p3r
I can't wait for the Arc on LLVM! It is more portable than JVM ^_^

~~~
astrange
<http://openjdk.java.net/projects/zero/>

~~~
c00p3r
There is a presentation around here by pg about bloatedness of Java's syntax
and clarity of the Arc. Find it. ^_^

~~~
astrange
I'm not sure anyone would disagree.

