Hi Paulo, 

I saw this question a while back and for some reason it became lodged in my 
mind. If you are concerned about whether Clojure is a good practical 
language to learn, I can understand your worries and say, resoundingly, go 
for it. Why? because after learning Clojure, and perhaps answering the 
question of "what is special about it?" rather than "what is the killer 
app" you will understand the underpinnings and inner-workings of so many 
important but very opaque concepts: data, language design principles, 
identity and state. I used many languages before I came to Clojure but I 
would say that it was through Clojure that I really learned computer 
science, making me a more valuable programmer. Clojure is a language for 
people who are interested in "sane", pragmatic approaches to language 
design in terms of mutability, primitives and the relationship between the 
data and its code representation (spoiler, in Lisps they are elegantly one 
and the same thing). Rich Hickey, at every step of the way thoughtfully 
designed a language for programmers to be effective with. So to reiterate, 
learning Clojure is not just about learning how to use Clojure, but also 
about learning why it is designed how it is. And that is groovy.

The reason I picked up Clojure was not to get a job, but because I thought 
it was cool. People who are focussed on industry from the beginning just 
take what they hear and run with it. They ignore Clojure because it is not 
on the top of the popular usage charts. If you can get past industrial 
adoption of Clojure apps and look at things from the perspective of a 
learner, you will see that Clojure has many "stories": a concurrency story, 
a Lisp story, a logic programming story, an asynchronous story. Name a 
feature and Clojure has it going on. This makes learning it an efficient 
use of your time: you can learn one language, write a 10th of the code you 
would otherwise, and tackle an incredibly wide range of problems that you 
would be using multiple languages to do otherwise. It has a front end 
story, a back end story, a dynamic story, a functional story... And all of 
these "stories" are possible due to the incredible library ecosystem that 
Clojure has, as well as the enthusiastic and creative people that make up 
the Clojure community. These are people who love to learn and have fun 
through coding. Which brings me to my next point:

Clojure has an AMAZING community. Most of the time, when I have a dumb 
newbie question, if I ask it here, the very people who wrote the books I am 
reading will come clarify things for me, patiently helping me out. In other 
languages, however, if the question requires a non-trivial understanding of 
the way the language itself is implemented, those grandmasters are a lot 
less accessible. As a learner, why pass up this opportunity? I am not 
saying that other languages don't have great communities, but I am saying 
that I think Clojure has something special in this department. In fact, I 
was recommended to learn Clojure by a Haskell programmer for this very 
reason. Which is telling, because Haskell programmers really love and 
actively promote that language.

Now with all that said, the question was specifically about apps. I think 
that Datomic and Storm are both pretty freaking cool. Check them out. 
Twitter is heavy into Storm. I also know that Citibank is using Clojure, 
though for what exactly, I am not sure. But in light of the above, is this 
really what is attractive about learning the language? 

I hope you can get something out of my response. And best of luck learning 
one of the coolest languages out there!

J


On Friday, May 2, 2014 12:43:49 PM UTC+9, Paulo Suzart wrote:
>
> Really thanks. Great talk. 
> On 1 May 2014 21:21, "Ustun Ozgur" <ustun...@gmail.com <javascript:>> 
> wrote:
>
>> Paulo, I understand your concerns, you are basically taking a bet in 
>> choosing Clojure and you want some confirmation that you will not be 
>> wasting time/money during the process.
>>
>> Please watch Jay Fields' talk on this topic. I think he presents the 
>> upsides and downsides of his journey very well. One remark is that it was 
>> very tiring, it has been like having a second job (he remarks that he 
>> luckily didn't have any children during the process IIRC) but it was worth 
>> it in the end.
>>
>>
>> http://yow.eventer.com/yow-2013-1080/lessons-learned-from-adopting-clojure-by-jey-fields-1397
>>
>> Ustun
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clo...@googlegroups.com 
>> <javascript:>
>> Note that posts from new members are moderated - please be patient with 
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+u...@googlegroups.com <javascript:>
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups 
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to clojure+u...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to