• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Clojures killer app

 
Ranch Hand
Posts: 100
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Most of my Clojure-loving friends have a functional background of some sort (lisp in college, previous experience w/ a functional language, a math background, etc).

But for dumb average run-of-the-mill coders like myself, Clojure is still a bit of a mind bender. It obviously does a lot of things very well - solves problems in few lines of code, makes multi-threading easier, has fancy solutions for typical problems, etc.

The thing I haven't seen, though, is a "killer app" example involving Clojure. Take Rails (although that's a bit different) - those original screencasts by DHH on how to create a blog kind of helped launch it to the world in a way that regular folks could understand. "Oh, wow, I can create a blog in 15 minutes? Cool." Or various Java/Pet Shop or Twitter clone demos - "Oh, I can do that in a day? Cool, I'll check it out."

Now, it's highly likely I just haven't done enough looking into Clojure and the various screencasts, tutorials and books to find something like this, hency my question: What is the Clojure killer app/demo for the non-functionally minded? Is there a good screencast you can point to?

I've heard good things about this book, the other Manning Clojure book and of course Stu's Programming in Clojure, so those might all be good options.
 
clojure forum advocate
Posts: 3479
Mac Objective C Clojure
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Steve Yegge calls the JVM is the killer application of Clojure. I couldn't say any thing better than this.
 
andrew ennamorato
Ranch Hand
Posts: 100
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I can see that, esp versus other functional lang's.

But what's the killer app/demo/tutorial that is going to make a regular Java programmer bother to wrap their head around a functional language? Sure, those already inclined will use it, as will naturally smart coders, forward looking developers, etc, I'm just wondering what the big "A-Ha" moment will be for the rest of us.
 
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I don't think a killer app is the way to go for a general purpose language, because people tend to tie the language to the domain of its killer app. For example, Ruby is popular, but only for Web programming. I believe Clojure has a much bigger aspiration than that.

As to your point that Clojure loving requires prior lisp, math, or functional experience, I think that generalization is not true. I did not have any of that prior experience and did imperative programming for 20 years, and I learned to love Clojure recently. It tooks about 10 months on and off. I first started with Clojure interp with Java, which got me familiar with Clojure syntax, but I still didn't have the feel of mastery like I had with Java. Then I tried to do programming exercises on 4clojure.com, that's what really got me hooked. So I think it is important to actually dive into the language instead of just reading about it. The more people do that, the more people will love the language.
 
andrew ennamorato
Ranch Hand
Posts: 100
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Huahai Yang wrote:For example, Ruby is popular, but only for Web programming. I believe Clojure has a much bigger aspiration than that.



Does it get any bigger than web programming? The only thing bigger than web programming right now is mobile programming, haha.

It tooks about 10 months on and off.



That's why I think there has to be some sort of killer app/demo if Clojure indeed wants to be more of a general language. Why bother to switch from Ruby/Python/Java/.Net if I have to spend 10 months learning it? What company gives employees the time to do that? (Not saying they shouldn't, but for many people, time isn't a luxury).

So I think it is important to actually dive into the language instead of just reading about it. The more people do that, the more people will love the language.



That's a great point. Part of the reason why I picked up PragProg's Seven Languages in Seven Weeks - even though I haven't gone through it yet - figured the brief intro to Clojure in there (and Haskell and other lang's) would give me enough reason to dig further.

Thanks for the discussion Huahai.
 
Hussein Baghdadi
clojure forum advocate
Posts: 3479
Mac Objective C Clojure
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

That's why I think there has to be some sort of killer app/demo if Clojure indeed wants to be more of a general language.


So Java, Ruby and Python aren't general programming languages?
Killer demo isn't a requirement to success, what was the killer demo of Python when it was released?
 
Ranch Hand
Posts: 100
VI Editor Chrome Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

John Todd wrote:

That's why I think there has to be some sort of killer app/demo if Clojure indeed wants to be more of a general language.


So Java, Ruby and Python aren't general programming languages?
Killer demo isn't a requirement to success, what was the killer demo of Python when it was released?



I imagine "general" here meant "popular", not "for general purposes".
 
andrew ennamorato
Ranch Hand
Posts: 100
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Right - I should have put "popular".

Look at some of the titles in this form for this weeks book contest:


Benefits of Learning Clojure? Dan King
Clojure advantages Sayth renshaw
Why learn Clojure Alvin Watkins
Real-life Clojure examples Toby Matejovsky
...



IMO, it's clear that people like Clojure (or the idea of), like the possibilities, know that Rich and co. are taking their time creating a great language, but...
...they're still looking for that certain demo/example/whatever-you-want-to-call-it that will make it worth the effort to learn a language that uses such a different style.

I'm still curious what that is. Oh well, time will tell if one ever comes up.
 
Rancher
Posts: 379
22
Mac OS X Monad Clojure Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

andrew ennamorato wrote:...they're still looking for that certain demo/example/whatever-you-want-to-call-it that will make it worth the effort to learn a language that uses such a different style.


"Why should I learn language X?" is usually the first question that a programmer in language Y asks when s/he first hears about language X.

I would expect similar questions about any language - and that's even more true of a language that's so very different from the day-to-day language of most developers here on Java Ranch.

Back in the early 90's, I had to ask similar questions of C++ - an alien technology given my procedural and functional programming background - and I had to ask similar questions later in the 90's as Java became more popular.

However, learning another language - especially a very different language - is worth the effort simply because it teaches you new ways to solve problems in your "daily" language. Imperative, declarative, functional, object-oriented, prototype, logic - all worth learning, to improve your skills and your problem-solving abilities, in my opinion.
reply
    Bookmark Topic Watch Topic
  • New Topic