Lisp is a very neat language (we don't write LISP anymore, but rather just Lisp). There's virtually no difference between data and code, so you can -- and often do -- build programs in memory and execute them. Lisp is so flexible that you can use it to program in virtually any style: procedural, object-oriented, functional, generic. It's used in a lot of academic research, and in a broad range of real-world applications, especially things with strong academic ties like computer vision, machine learning, data mining, etc.
Well Lisps usually are dinamyc typed and like ruby, groovy and so on is slower than static typed langs like java.
On the other hand data is immutables and it "create" new data in memory in each function call.
But for example Clojure use persistent data structure to optimize data geneation and you can attach metadata with type hints for optimize the code
But remember: "Premature optimization is the root of all evil"
Lisp is one of the references of all new languages from python to ruby, scala and of course clojure (which is a dialect of lisp like arc or scheme) and can be used in
any type of apps, including enterprise although it shines in ai apps (for example this)
I remember when I was a freshman in college, Lisp was the language that my cousin, and a few other geeks, whom I looked up to, were using. It was also the defacto language for artificial intelligence, at the time, so that added to the cool factor too. I remember that I really wanted to learn it... and even started to read a book on it.
A year later, I signed up for an AI course, even though I was already overbooked. And was kinda disappointed when I found out that the language in use, was not Lisp, but was Prolog. The instructor was new, and liked Prolog. Luckily, I didn't drop the course, as admittingly, Prolog still remains one of my favorite languages to date.
What I don't get about Clojure is why it's not using either Lisp or Scheme syntax, but something else - "defn", square brackets for parameters, etc.
posted 9 years ago
Ulf Dittmer wrote:What I don't get about Clojure is why it's not using either Lisp or Scheme syntax, but something else - "defn", square brackets for parameters, etc.