Benefits of using Clojure (Lisp) in web/enterprise development(bitumenframework.blogspot.com)
bitumenframework.blogspot.com
Benefits of using Clojure (Lisp) in web/enterprise development
http://bitumenframework.blogspot.com/2009/09/benefits-of-using-clojure-lisp-in.html
5 comments
My startup is using Clojure, for a webapp that is heavy in AI/statistics.
Yes, compojure is early, but for us it has been totally worthwhile. A lisp that has 1) a fast implementation 2) excellent support for parallelization and 3) well supported web servers has been a huge win. We have had to reinvent a few wheels, but I would much rather re-invent e.g. user logins than Clojure + the JIT, debugger & profiler support of the JVM.
Clojure is going to get better webapp support, Ruby isn't going to get better at number crunching or parallelization or get rid of its warts. So yes, we've been very happy.
Yes, compojure is early, but for us it has been totally worthwhile. A lisp that has 1) a fast implementation 2) excellent support for parallelization and 3) well supported web servers has been a huge win. We have had to reinvent a few wheels, but I would much rather re-invent e.g. user logins than Clojure + the JIT, debugger & profiler support of the JVM.
Clojure is going to get better webapp support, Ruby isn't going to get better at number crunching or parallelization or get rid of its warts. So yes, we've been very happy.
> Clojure is going to get better webapp support, Ruby isn't going to get better at number crunching
Is Clojure good at that? Or do you use Java for actual heavy lifting?
Why not Python with its many numerical libraries (numpy, scipy, etc.) ?
Is Clojure good at that? Or do you use Java for actual heavy lifting?
Why not Python with its many numerical libraries (numpy, scipy, etc.) ?
The big benefit here is that clojure is concurrency safe, where python is not.
[deleted]
You could use Clojure with an existing web framework (say Wicket).
Or Lift, or JRuby on Rails, or Grails, or any of the other JVM compliant frameworks.
compojure kicks serious ass! The templating power of a lisp makes much of the things that are tedious in rails and wicket just a breeze in compojure -- it's fewer files and templating html in code.
The power of using rails comes, partly, from all the great really simple to use plugins and libraries. A lot of those libraries have C dependencies, because of that using jruby on rails is poor solution imho. I think C ruby is a viable option though.
Compojure is mature enough to take on those frameworks. In comparison with grails and groovy, clojure is simple enough to work as expected while groovy has some excentricities.
The power of using rails comes, partly, from all the great really simple to use plugins and libraries. A lot of those libraries have C dependencies, because of that using jruby on rails is poor solution imho. I think C ruby is a viable option though.
Compojure is mature enough to take on those frameworks. In comparison with grails and groovy, clojure is simple enough to work as expected while groovy has some excentricities.
I've give Conjure a try. Its a RoR clone and a one certainly worth checking out IMO.
http://github.com/macourtney/Conjure
http://github.com/macourtney/Conjure
I am the writer of the article in question, and probably I can answer some of the points raised. (I noticed this entry late through the HackerNews RSS feed.)
@Maciek416 : I can relate to what you said. I am working on this -- http://code.google.com/p/bitumenframework/
@mahmud : I can understand your frustration. My target audience were Java people unaware of LISP/FP & benefits.
@jimbokun : I agree with what you said. The reason I said "lots of parentheses" is that's how most LISP newbies perceive it. I wanted to get people to agree with what I said before I can expect them to adopt. In a friendly way.
@yannis : I think even Rich Hickey's PDF was great. ;-)
@Maciek416 : I can relate to what you said. I am working on this -- http://code.google.com/p/bitumenframework/
@mahmud : I can understand your frustration. My target audience were Java people unaware of LISP/FP & benefits.
@jimbokun : I agree with what you said. The reason I said "lots of parentheses" is that's how most LISP newbies perceive it. I wanted to get people to agree with what I said before I can expect them to adopt. In a friendly way.
@yannis : I think even Rich Hickey's PDF was great. ;-)
LISP newbies
Irony alert.
Edit: ok, I lasted 4 minutes. I can't in good conscience be another Lisp asshole. My point is that no one who uses Lisp has spelled it "LISP" for years.
Irony alert.
Edit: ok, I lasted 4 minutes. I can't in good conscience be another Lisp asshole. My point is that no one who uses Lisp has spelled it "LISP" for years.
Oops! My fault. Since I am not a seasoned Lisp hacker (actually I am only a Clojure newbie), my subconscious filter didn't automatically detect it. I remember having read that distinction somewhere earlier. Thanks for the reminder. :-)
Now you are an initiate. :)
Who is voting this up? the article has absolutely zero content. It just repeats what everybody already knows.
I say this as an enterprise/web Lisp developer ;-)
I say this as an enterprise/web Lisp developer ;-)
My assumption is that not everyone is an enterprise/web Lisp developer - is it possible the content may be interesting to those who aren't?
I would love to encourage submission of articles on Lisp dialects, but this one is completely useless. Nothing you couldn't have learned from the wikipedia page on clojure or any other Lisp.
[Edit:
It's not the writer's fault, he might have had a different audience in mind, but the submitter should have known better.]
[Edit:
It's not the writer's fault, he might have had a different audience in mind, but the submitter should have known better.]
Well, the question is one of discovery, right?
Posts like this one are useful for people who don't have Lisp on their radar yet. They've heard about Clojure and how it's awesome, but they think "I don't have a problem that requires functional programming", or they hear about the awesomeness of Common Lisp, and they think "I don't want to learn emacs".
I think there's value in spelling out the obvious because there will always be new eyes around to read it. In the worst case, it's a few paragraphs that are obvious to to someone who has any familiarity with Lisp. In the best case, it brings someone new to the table.
Posts like this one are useful for people who don't have Lisp on their radar yet. They've heard about Clojure and how it's awesome, but they think "I don't have a problem that requires functional programming", or they hear about the awesomeness of Common Lisp, and they think "I don't want to learn emacs".
I think there's value in spelling out the obvious because there will always be new eyes around to read it. In the worst case, it's a few paragraphs that are obvious to to someone who has any familiarity with Lisp. In the best case, it brings someone new to the table.
"(j) last but not the least lots of parentheses :-), which are actually a lot friendlier than they may seem at first (to the extent that they are actually a feature to help reduce syntax clutter)"
Rich Hickey made a point of the fact that Clojure's macros for calling Java methods can require fewer parentheses than the same calls written in Java. So, helping reduce syntax clutter is right. But "lots of parentheses" maybe not as true as people assume. They are just more noticeable in Clojure because Java has so many other kinds of boiler plate that make all the Java parentheses less noticeable.
Rich Hickey made a point of the fact that Clojure's macros for calling Java methods can require fewer parentheses than the same calls written in Java. So, helping reduce syntax clutter is right. But "lots of parentheses" maybe not as true as people assume. They are just more noticeable in Clojure because Java has so many other kinds of boiler plate that make all the Java parentheses less noticeable.
The only information of value in the article is the link to PG's
article (http://www.paulgraham.com/avg.html).
Building a web application in Clojure right now seems to involve a large amount of re-inventing the wheel. Meanwhile, we can just switch over to Rails and have stuff working in minutes.
Does anyone have any personal anecdotal evidence that Clojure's benefits outweigh this chief drawback at this time? What are the chances that Clojure will ever be where Ruby (with Rails) is now?