views:

1041

answers:

6

I was recently diagnosed with a cascading dissociative disorder that causes retrograde amnesia in addition to an existing case of possible anterograde amnesia. Many people have tried to remind me of how great a programmer I was before -- Right now I get the concepts and the idioms, but I want to teach myself whether I know or not. I think I can overcome the amnesia problems in part with it.

My question for you, stackoverflow, is this: I recently found Clojure and it... it feels good to use, even in just copying down the examples from whatever webpage I can find. My goals in learning a functional programming language are to create a simple webserver, an irc AI bot of some variety, and a couchdb-like database system, all of which lightweight and specifically for education. What flaws does Clojure have? Is there a better functional programming language to use right now for education /and/ application?

+6  A: 

Haskell currently has a large following and a growing base of libraries and applications. It's also used for education and research. I find it a very nice language to use.

Erik Hesselink
+2  A: 

You list CouchDB in your question, and it's written in Erlang, which is meant to be a pretty engrossing language once you get into it.

J.D. Fitz.Gerald
+6  A: 

I think Clojure is a very nice language. If I should point to any defect it is that it's very new, and even though the language seems very mature and production ready, the tools and frameworks around it aren't. So if you are going to make, for instance, a web-app, don't expect to fire three commands and have a "Your first web app is running, now read this documentation to create your models"-page on your browser.

There aren't that many libraries written in Clojure yet either, but that's not a huge problem if you consider that you can use almost anything written in Java.

J. Pablo Fernández
+4  A: 

Haskell, Erlang and Clojure are all good choices. I would personally recommend Clojure, you might be able to do some interesting database stuff with the Software Transational Memory system that is part of Clojure.

pjb3
+1  A: 

By far the biggest flaw in Clojure is the horrible error messages/stack traces.

David Plumpton
They've fixed this problem. Now when you make a mistake at the REPL, you no longer get a horrible stack trace.
Julien Chastang
+1  A: 

I have no personal experience with Clojure, but i really recommend F#. It's quite a powerful language in the style of OCaml. I really like it because it's debugging tools and IDE are second to none, and you can take advantage of practically every library on the (huge) .NET platform.

RCIX