This is great! Glad to see more Clojure adoption in the corporate world. It's definitely well deserved!
I used it only once at work to develop a stress test for a Java based game server. It was great fun to build, worked like a charm and ended up taking less than a thousand lines of code to implement the communications, bots and their execution scripts.
Furthermore, the company just bought a copy of The Joy of Clojure and there's already a bunch of my coworkers interested in reading it. Good times!
Similar experience here. I wrote a log parser with indexing and hierarchical cache invalidation to deal with larger than memory amounts of logs quickly and in a natural coding style, and after that I was hooked. Tiny code base, good performance, little need for ugly hacks.
My latest site is now written in it and clojure script, and I see no reason to not continue. Though cljs is definitely a few years behind on the stability curve.
A word of advice with Joy of Clojure: take up meditation. That book is surprisingly dense. I had to research topics ever few paragraphs. It is not a beginners books. Rather pair it with Clojure for the Brave and True. Combined the language comes alive.
Clojure's anti-OO stance is far subtler than people seem to understand. It's primarily about not reaching for classes as a first tool and eliminating local state (and even this is allowed!)
However there are times when the OO approach makes sense and you have a full range of tools from multimethods to protocols. In ClojureScript you even have Self-like functionality in the form of `specify`.
Yes, that's exactly what it did. I started my programming career in FORTRAN and BASIC, and really appreciated the advances of structured programming and the control structures in the languages that supported it -- the Algol family, Pascal, C. I see OO as doing more of the same, providing language constructs for commonly used patterns, and I think it is very successful at doing that. I think that a lot of the OO hatred comes from OOs failure at meeting goals that were claimed during the peak of the OO hype cycle. I think that another, well-justified source of hatred is the architecture astronaut stuff -- AbstractFactoryProxyFactory and the like.
Personally, I like Clojure (which I am just learning now) in spite of the lack of objects. I think that the ability to write a Point class, encapsulate the coordinates, and expose an API is great. In my opinion, representing a Point as a vector or map, and then having a set of unassociated functions operating on these point-like collections sacrifices some good ideas that came from object-orientation.
Scala remains ahead of Clojure because it permits traditional OO. OO is wonderful; try writing some programs in a language that forces you to do proper OO (e.g. Smalltalk). Even if you ultimately decide you prefer non-OO, you'll learn techniques that make your programs better, and you'll at least be able to understand the thing you're criticising.
> Not to start a flame war, but it seems that Clojure/Rich's strong anti-OO stance is almost a selling point of the language.
> IMHO, OO just put some lipstick on the procedural pig.
<sarcasm>
Not to start a flame war, IMHO functional bigots just like to incite language wars rather than solving real problems.
</sarcasm>
I've been writing Clojure almost exclusively for 3 or 4 years and it's just amazing. Core.async, Quil, Om, Chestnut, ClojureScript, ClojureScript + Apache Cordova, and I could go on forever.
Just learning Clojure now. Would you do us newbies a favor and say a few words about the projects you mention: what they do, why we should look into them? There is much to learn, so a shove in the right direction(s) would be useful.
I recommend checking out Reagent as an Om alternative. I've tried both and like how simple and "pure" Reagent is. There's almost nothing to it (where as Om is a bit more complicated)
Not mentioned in the article but most interesting to me this year is how these guys are "building a bank from scratch in Brazil with Datomic and Clojure": https://www.youtube.com/watch?v=7lm3K8zVOdY
The future looks bright for the language, especially with applications like this.
Clojure is awesome. However I don't want it to become too popular, as then those who do currently use it will lose all our magical powers if everyone has access to it :)
My team which uses Clojure recently decided to grow. I regularly attend a local Clojure focused Meetup, and it is very easy to find interested developers there. The Meetup, which meets in Philadelphia, has over 150 members, so at least there is a large number of people interested.
I work 50%+ in Clojure as an IT Consultant and here in Europe it's not that easy to find a company that uses Clojure and embraces its benefits.
When I use clojure, it's typically for companies who need to get something done and then I choose clojure to do it, but only once someone specifically asked me for clojure (but it was an American company).
I don't find it as easy to work as clojure guy in Europe.
In comparison, in the US there's much more demand but many companies refrain from remote contracting Europeans (even though I think my background is quite good ML, Data Science, Statistics, ..)
So IMO the TL;DR is: filling clojure positions is only a problem in the US, not in Europe.
I'd like to add that I'm starting a Clojure job next Monday at a "boring" company that you would never think would have a heavy reliance on Clojure. I think that there's a demand for Clojure developers that is unmet. I keep getting recruiters and etc. messaging me about Clojure.
I'm from MixRadio and we're actually about 40 engineers, not all doing Clojure. Pretty much all of our new micro-service work is done using Clojure. Not sure how many others in wider Microsoft/Nokia.
I am surprised that no one here has yet mentioned Clojure in connection with Big Data. At OSCON 2014 ( see http://glennengstrand.info/analytics/fp ), I was first introduced to Cascalog which allows you to write Hadoop map reduce jobs in Clojure. Both Cloudera and Hortonworks support it.
- Google - 7.7%
- YouTube - 7.4%
- Baidu - 7.1%
- Amazon - 6.8%
- Google India - 6.5%
- Yahoo Japan - 6.2%
- Hao123.com - 5.8%
- Google Germany - 5.5%
- Microsoft Bing - 5.2%
- Google Japan - 4.9%
- Google UK - 4.6%
- AliExpress - 4.3%
- Alibaba - 4.0%
- Amazon Japan - 3.7%
- Google Brazil - 3.4%
- 360.cn - 3.1%
- Google Italia - 2.8%
- Amazon Germany - 2.5%
- Google Spain - 2.2%
- Amazon UK - 1.8%
- Google Mexico - 1.5%
- Google Canada - 1.2%
- Google Ad Services - 0.9%
- Amazon China - 0.6%
- Google Poland - 0.3%
I might buy that a general internet or e-commerce search might tell you one (low-signal, high-noise) piece of data about popularity. Some of these sites seem highly questionable to tell you anything meaningful. Garbage in / garbage out.
I think use of more specific numbers from sites like Stack Overflow or GitHub seems far more likely to give you relevant information.
Even though this is 2 years old it's still the case that the Clojure folks are heavily dominated by users who have already invested in the JVM. The other largest group seems to be split evenly between Python & Ruby as reflected in this survey.
Since Clojure adoption is picking up, what about convincing management to use other Lisps now? Clojure is okay, but I much prefer Scheme (Guile, Racket, Chicken, etc.).
Between Guile, Chicken and other *nix Schemes which would you recommend for general scripting and admin task automaton? Which has a more expansive library ecosystem? I found that Clojure isn't the best fit for thEse tasks because of the start-up time and the JVM dependency.
[+] [-] zeroDivisible|11 years ago|reply
http://iloveponies.github.io/120-hour-epic-sax-marathon/
Teaches you TDD in Clojure and "forces" you to use git / Github / Travis to test your code.
Highly recommended.
edit: style.
[+] [-] JBiserkov|11 years ago|reply
I believe the official link is http://mooc.cs.helsinki.fi/clojure
[+] [-] stevepm|11 years ago|reply
[+] [-] jeremiep|11 years ago|reply
I used it only once at work to develop a stress test for a Java based game server. It was great fun to build, worked like a charm and ended up taking less than a thousand lines of code to implement the communications, bots and their execution scripts.
Furthermore, the company just bought a copy of The Joy of Clojure and there's already a bunch of my coworkers interested in reading it. Good times!
[+] [-] reitzensteinm|11 years ago|reply
My latest site is now written in it and clojure script, and I see no reason to not continue. Though cljs is definitely a few years behind on the stability curve.
[+] [-] virmundi|11 years ago|reply
https://www.google.com/url?q=http://www.braveclojure.com/&sa...
[+] [-] mikerichards|11 years ago|reply
Great work Clojure community.
[+] [-] mikerichards|11 years ago|reply
Not to start a flame war, but it seems that Clojure/Rich's strong anti-OO stance is almost a selling point of the language.
IMHO, OO just put some lipstick on the procedural pig.
[+] [-] swannodette|11 years ago|reply
However there are times when the OO approach makes sense and you have a full range of tools from multimethods to protocols. In ClojureScript you even have Self-like functionality in the form of `specify`.
[+] [-] seanmcdirmid|11 years ago|reply
OO will continue to be successful for accessibility reasons, and it's demise will continue to be predicted to have arrived.
[+] [-] geophile|11 years ago|reply
Personally, I like Clojure (which I am just learning now) in spite of the lack of objects. I think that the ability to write a Point class, encapsulate the coordinates, and expose an API is great. In my opinion, representing a Point as a vector or map, and then having a set of unassociated functions operating on these point-like collections sacrifices some good ideas that came from object-orientation.
[+] [-] lmm|11 years ago|reply
[+] [-] dominotw|11 years ago|reply
Nope. http://www.tiobe.com/index.php/content/paperinfo/tpci/index....
First functional language on that list is F# at 19.
[+] [-] ww520|11 years ago|reply
<sarcasm> Not to start a flame war, IMHO functional bigots just like to incite language wars rather than solving real problems. </sarcasm>
[+] [-] coding4all|11 years ago|reply
[+] [-] geophile|11 years ago|reply
[+] [-] city41|11 years ago|reply
[+] [-] dmix|11 years ago|reply
The future looks bright for the language, especially with applications like this.
[+] [-] zubairq|11 years ago|reply
[+] [-] thom|11 years ago|reply
[+] [-] JackMorgan|11 years ago|reply
[+] [-] terranstyler|11 years ago|reply
When I use clojure, it's typically for companies who need to get something done and then I choose clojure to do it, but only once someone specifically asked me for clojure (but it was an American company).
I don't find it as easy to work as clojure guy in Europe.
In comparison, in the US there's much more demand but many companies refrain from remote contracting Europeans (even though I think my background is quite good ML, Data Science, Statistics, ..)
So IMO the TL;DR is: filling clojure positions is only a problem in the US, not in Europe.
[+] [-] 147|11 years ago|reply
[+] [-] checksum404|11 years ago|reply
[+] [-] JBiserkov|11 years ago|reply
[+] [-] neilprosser|11 years ago|reply
Edit: making it clearer.
[+] [-] gengstrand|11 years ago|reply
[+] [-] dominotw|11 years ago|reply
Most people who I see using clojure are bored ruby programmers and they bought their open source culture with them to clojure.
Clojure is not even in top 50 on TIOBE index http://www.tiobe.com/index.php/content/paperinfo/tpci/index....
[+] [-] puredanger|11 years ago|reply
The "index" is calculated (http://www.tiobe.com/index.php/content/paperinfo/tpci/progra...) by searching the 25 highest ranked web sites on Alexa which have a search box and meet some basic criteria then magically weighting them as follows:
- Google - 7.7% - YouTube - 7.4% - Baidu - 7.1% - Amazon - 6.8% - Google India - 6.5% - Yahoo Japan - 6.2% - Hao123.com - 5.8% - Google Germany - 5.5% - Microsoft Bing - 5.2% - Google Japan - 4.9% - Google UK - 4.6% - AliExpress - 4.3% - Alibaba - 4.0% - Amazon Japan - 3.7% - Google Brazil - 3.4% - 360.cn - 3.1% - Google Italia - 2.8% - Amazon Germany - 2.5% - Google Spain - 2.2% - Amazon UK - 1.8% - Google Mexico - 1.5% - Google Canada - 1.2% - Google Ad Services - 0.9% - Amazon China - 0.6% - Google Poland - 0.3%
I might buy that a general internet or e-commerce search might tell you one (low-signal, high-noise) piece of data about popularity. Some of these sites seem highly questionable to tell you anything meaningful. Garbage in / garbage out.
I think use of more specific numbers from sites like Stack Overflow or GitHub seems far more likely to give you relevant information.
[+] [-] swannodette|11 years ago|reply
Even though this is 2 years old it's still the case that the Clojure folks are heavily dominated by users who have already invested in the JVM. The other largest group seems to be split evenly between Python & Ruby as reflected in this survey.
[+] [-] davexunit|11 years ago|reply
[+] [-] shaunxcode|11 years ago|reply
[+] [-] mikerichards|11 years ago|reply
But Clojure has a strong opinion on immutability and functional programming. I'm not sure those Schemes do.
In any case, if you were to introduce a Scheme, I would do Racket for it's significant community within the larger Scheme ecosystem.
[+] [-] new2scheme|11 years ago|reply
[+] [-] gte525u|11 years ago|reply
[+] [-] puredanger|11 years ago|reply