Live data from Hacker News

2012 State of Clojure survey

cemerick.com

21–30 of 43 posts

Re: 2012 State of Clojure survey

#21

Somehow I get the feeling that the Clojure community is in the "marketing" phase of the language. I'm starting to see many Clojure threads popping up HN lately. InfoQ.com also increasingly added Clojure presentations/articles lately. It's all good, a little bit of competition between languages is healthy. Having said that, I believe it is hard for Clojure community to convert/invite people with what you guys have don…

I personally think how clojure has been presented so far is its greatest strength and it is the reason why it is so strong so far and why it continues to get stronger. You have to be a better than average programmer, one who has worked with multiple languages from multiple paradigms, who has worked with real production code before, to recognize why it is so much superior to any other programming language currently available right now.

I'm GLAD that there is currently no killer app for Clojure, like how Rails became the killer app for Ruby. IMO Rails killed Ruby. Ruby started out in the right direction but once Rails became popular there was an influx of so-so programmers who started polluting the language with inefficient concepts, constantly reinventing the wheel poorly because they did not know enough computer science to know that a better solution had already been invented. Now the system has been bogged down by so much cruft, it is difficult to see if it still serves the purpose it was originally designed for (a language the people can enjoy programming in).

Clojure is not ready yet. The core team is still working on refining the fundamentals for what maybe can become the 100 year language [http://paulgraham.com/hundred.html] -- look at reducers in 1.4. Right now Clojure doesn't need more people. It needs more smart people. If you are not smart enough to understand why it is worth switching to it, maybe you should wait a bit and let the design mature more. The killer apps will come. Clojure's ability to scale complexity will eventually overcome its current drawbacks, as the tools and the ecosystem matures.

Re: 2012 State of Clojure survey

#22

Somehow I get the feeling that the Clojure community is in the "marketing" phase of the language. I'm starting to see many Clojure threads popping up HN lately. InfoQ.com also increasingly added Clojure presentations/articles lately. It's all good, a little bit of competition between languages is healthy. Having said that, I believe it is hard for Clojure community to convert/invite people with what you guys have don…

Clojure's killer app is managing complexity. This allows you to keep your mental stack clean.

With OO, you have to keep track of the state of each object and how each method affects that state. With Clojure, you don't need to be concerned with the guts of a function, just the inputs and outputs. This keeps your mental stack from building up and makes programs easier to understand and debug.

Re: 2012 State of Clojure survey

#23

Earlier quoted context omitted.

Joda Time is actually a great example of a library letting you work in terms of values instead of the mutable object disaster that is java.util.Date; it just happens to be implemented in Java itself. If you can imagine the same benefits of working with stable values applied across the board to all your built-in data structures, that might help.

Is mixing Java classes in Clojure okay? or to some degree it is acceptable but there are gotchas or the do's and don'ts? Hey, I checked your website just for fun and it says there you can speak Indonesian, awesome :).

Operating directly on Java classes is pretty standard. Of course you have to be very careful when working with classes which allow mutability, (true in all languages, really) but with Joda that's not an issue.

The only thing you miss out on is that Java methods can't be used as higher-order functions.

My Indonesian is pretty rusty; I should probably update it to say that I understand it rather than speak it. =)

Re: 2012 State of Clojure survey

#24

Earlier quoted context omitted.

Yes Chas, you're definitely no stranger in the Clojure community :) (I watched your O'reilly webcast btw). I'm not saying that Clojure should address a narrow problem but if we look back at the history of Java, it offers a few "real" improvement over C++ such as garbage collection, nice standard library, and the promise of WORA (albeit lots of hiccups here and there). By real I mean something that people can see and…

(If you watched the O'Reilly live webcast, then give this a try: http://cemerick.com/2012/05/02/starting-clojure/ ) Riffing on what technomancy said nearby, a lot of the issues that Clojure addresses are so taken for granted in most of the broader software development world, that it can be challenging to wrap up its benefits into a tasty, easily digestable nugget comparable to "Java gets rid of malloc and pointers" (…

I can't help but respond:

http://www.indeed.com/jobtrends?q=java%2Cclojure%2Chaskell%2...

Having any "most in-demand functional programming language" seems to be a bit silly. In the larger view, there simply isn't any demand.

I REALLY want this to change. I think if Clojure can make some inroads to the enterprise, there will be trickle-down effect that will help increase opportunities to work in Clojure. I think increasing working opportunities is what language evangelism is for.

As a hacker who loves the repl, functional programming, weird languages, and was at the first Clojure/conj, it is not clear to me at all that immutability and pure functions are wins in general - lots of excellent working systems are out there that don't bother using this stuff at all (no silver bullet is kind of what I am driving at). I might instead argue that in the hands of good-to-great hackers, that immutability and pure functions offer some benefits that are hard to quantify when you normalize across raw hacker abilities.

PS - Thanks so much for the book. A large part of Clojure's success is directly attributable to the high quality and number of books that have popped up so soon in its life as a programming language.

Re: 2012 State of Clojure survey

#25
post #24

Earlier quoted context omitted.

(If you watched the O'Reilly live webcast, then give this a try: http://cemerick.com/2012/05/02/starting-clojure/ ) Riffing on what technomancy said nearby, a lot of the issues that Clojure addresses are so taken for granted in most of the broader software development world, that it can be challenging to wrap up its benefits into a tasty, easily digestable nugget comparable to "Java gets rid of malloc and pointers" (…

I can't help but respond: http://www.indeed.com/jobtrends?q=java%2Cclojure%2Chaskell%2... Having any "most in-demand functional programming language" seems to be a bit silly. In the larger view, there simply isn't any demand. I REALLY want this to change. I think if Clojure can make some inroads to the enterprise, there will be trickle-down effect that will help increase opportunities to work in Clojure. I think incr…

In truth, I hate these Indeed charts…but then, I started it, eh? Live by the sword and all that.

Some additional perspective: http://www.indeed.com/jobtrends?q=java%2Cruby%2Cpython%2C%22...

The Java market is massive. Nearly everything else is essentially background noise compared to it. I'm skeptical that any single language will ever have the same reach as it.

Runtimes, on the other hand, are a different story. The JVM, standardized JavaScript engines, even the CLR/Mono to some extent: polyglot sandboxes where you have the leverage to use whatever language will get the job done. That's a huge win for, as you put it, good-to-great hackers, trying to find the edge of what's next.

'course, that's a wash to a loss (i.e. increased risk) for those with the enterprise mindset. Thus, Java 8 with its closures may very well consolidate its position in such environments.

Glad you enjoyed the book, BTW. :-)

Re: 2012 State of Clojure survey

#26
post #24

Earlier quoted context omitted.

I can't help but respond: http://www.indeed.com/jobtrends?q=java%2Cclojure%2Chaskell%2... Having any "most in-demand functional programming language" seems to be a bit silly. In the larger view, there simply isn't any demand. I REALLY want this to change. I think if Clojure can make some inroads to the enterprise, there will be trickle-down effect that will help increase opportunities to work in Clojure. I think incr…

In truth, I hate these Indeed charts…but then, I started it, eh? Live by the sword and all that. Some additional perspective: http://www.indeed.com/jobtrends?q=java%2Cruby%2Cpython%2C%22... The Java market is massive . Nearly everything else is essentially background noise compared to it. I'm skeptical that any single language will ever have the same reach as it. Runtimes, on the other hand, are a different story. Th…

TPS reports rule (I know it's really below the belt) . . .

http://www.indeed.com/jobtrends?q=sql%2Cjava&l=

I had not thought deeply about runtimes in relation to this question. It's certainly true that one reason I can hack around in Clojure and count on that code running on our production servers is that the JVM is ubiquitous there. Quite a different story than when I was doing some stuff in SBCL and had to compile it in my user space.

Re: 2012 State of Clojure survey

#27
post #22

Somehow I get the feeling that the Clojure community is in the "marketing" phase of the language. I'm starting to see many Clojure threads popping up HN lately. InfoQ.com also increasingly added Clojure presentations/articles lately. It's all good, a little bit of competition between languages is healthy. Having said that, I believe it is hard for Clojure community to convert/invite people with what you guys have don…

Clojure's killer app is managing complexity. This allows you to keep your mental stack clean. With OO, you have to keep track of the state of each object and how each method affects that state. With Clojure, you don't need to be concerned with the guts of a function, just the inputs and outputs. This keeps your mental stack from building up and makes programs easier to understand and debug.

I strongly disagree with that slogan re: complexity.

Complexity covers so much, its definition so sprawling, that the phrase has no meaning.

I'd rather focus on the language's real strength, fast, concurrenty, portable computation in very well tooled managed environment with a large number of quality libraries.

I don't want to get into a situation where people think that clojure is the universally 'best' language, which is were certain people in the community are.

That POV horribly damaged ruby's popularity after Rails' rise, and I'd hate to see it happen again to another language.

Re: 2012 State of Clojure survey

#28
post #22

Earlier quoted context omitted.

Clojure's killer app is managing complexity. This allows you to keep your mental stack clean. With OO, you have to keep track of the state of each object and how each method affects that state. With Clojure, you don't need to be concerned with the guts of a function, just the inputs and outputs. This keeps your mental stack from building up and makes programs easier to understand and debug.

I strongly disagree with that slogan re: complexity. Complexity covers so much, its definition so sprawling, that the phrase has no meaning. I'd rather focus on the language's real strength, fast, concurrenty, portable computation in very well tooled managed environment with a large number of quality libraries. I don't want to get into a situation where people think that clojure is the universally 'best' language, wh…

It damaged Ruby's popularity? You feel Ruby hasn't been popular enough the past few years?

Re: 2012 State of Clojure survey

#29
post #22

Earlier quoted context omitted.

Clojure's killer app is managing complexity. This allows you to keep your mental stack clean. With OO, you have to keep track of the state of each object and how each method affects that state. With Clojure, you don't need to be concerned with the guts of a function, just the inputs and outputs. This keeps your mental stack from building up and makes programs easier to understand and debug.

I strongly disagree with that slogan re: complexity. Complexity covers so much, its definition so sprawling, that the phrase has no meaning. I'd rather focus on the language's real strength, fast, concurrenty, portable computation in very well tooled managed environment with a large number of quality libraries. I don't want to get into a situation where people think that clojure is the universally 'best' language, wh…

Dude: FUCK YOU

If the Lisp people were smart enough to pander their shit properly, things wouldn't be so damn bad.

Honestly, I'm up for people claiming it cures cancer or whatever. We need competition in languages. We need people to ask questions. But most of all, we need people to be happy with change. If you aren't willing to change your tools, you are going to live a limited and boring life.

Re: 2012 State of Clojure survey

#30
post #22

Earlier quoted context omitted.

Clojure's killer app is managing complexity. This allows you to keep your mental stack clean. With OO, you have to keep track of the state of each object and how each method affects that state. With Clojure, you don't need to be concerned with the guts of a function, just the inputs and outputs. This keeps your mental stack from building up and makes programs easier to understand and debug.

I strongly disagree with that slogan re: complexity. Complexity covers so much, its definition so sprawling, that the phrase has no meaning. I'd rather focus on the language's real strength, fast, concurrenty, portable computation in very well tooled managed environment with a large number of quality libraries. I don't want to get into a situation where people think that clojure is the universally 'best' language, wh…

I disagree; it's very important to talk about complexity. Otherwise, we can't minimize it, and however you define it, it is a problem in software.

You're right, though, the definition is sprawling, so I think it makes sense to use smaller more precise words. The good news is we have some of these: Referential transparency, pure functions, immutability, and neologisms such as "complection". These are very useful, meaningful terms.

Post reply on HN