6 ms·
Why are developers who have not worked with Clojure "less serious" than those who have? In a typical Java shop or enterprise code factory, after 2-5 years you
by michaelochurch 13y ago
Why are developers who have not worked with Clojure "less serious" than those who have?
In a typical Java shop or enterprise code factory, after 2-5 years you reach a plateau and the only way up is to become an "architect" or move into management. So that's what the better people in the mainstream Java world want to do, and ultimately the tenor is focused on "enterprise architecture" and Spring/Hibernate add-ons instead of making beautiful, powerful, or maintainable software and solving hard problems.
The Clojure community (I'm at Clojure/West as we speak) is full of people who (a) are really good, like top 1%, and (b) have at least the intention to be career-long programmers (in some capacity).
That's something you don't see in the Java shops. Yes, there are good programmers in them, but they usually are planning a move into management because the way most companies do software is limiting and puts you at an artificial ceiling after no more than 5 years.
Is it a gross simplification to make this about languages? Perhaps, but the empowerment that languages like Clojure give to individual contributors can be a game changer. It's reminiscent of what startups used to be, before the VC-funded ecosystem became MBA Culture's west coast colony.
- laureny 13y ago> The Clojure community (I'm at Clojure/West as we speak) is full of people who (a) are really good, like top 1% Says someone part of the Clojure community. How does it feel to be one of these top 1% developers? This kind of attitude is why the Lisp community has had a terrible reputation for five decades.
- jeletonskelly 13y ago2 years in a clojure shop here, previous years spent in .NET shops. I wouldn't say it's not exclusively the top 1% of developers. It's that you are more likely to find those top developers in a community like that.
- pchristensen 13y agoFWIW, I'm at Clojure/west too, I've met a disproportionate number of outstanding programmers, measured by both knowledge and productivity, and I definitely don't feel like I'm in the 1%. Claiming that a community you belong to is full of smart people doesn't mean you're claiming to be one of them.
- RyanZAG 13y agoAgreed. Every group you speak to always thinks they are somehow the smartest people on earth. The funny part is they don't seem to realize that with every other group believing the same thing, maybe their subjective opinions aren't quite enough to gain them the title? But no, of course Clojure people are all the smartest programmers and are making all the biggest advancements in computer science.
- DigitalJack 13y agoYou completely read that into the post. At no point did the author include themselves in the one percent. They were commenting on that there are many programmers their that they consider one percenters in the clojure community. I think it says much more about you that you read that into the post, than it says about the lisp community. fwiw I only program as a hobby and while I think clojure is great to write in, it's a severe pain in the ass to figure out what the hell someone else was thinking when they wrote their code. The problem with clojure and all lisps, as I see it, is that they make it easy on the author, hard on the reader. It's so simple to create your own special DSL that everyone does it. Now i have to learn a thousand languages.
- elohesra 13y ago> The problem with clojure and all lisps, as I see it, is that they make it easy on the author, hard on the reader. It's so simple to create your own special DSL that everyone does it. Now i have to learn a thousand languages. This is a bit of a problem in Clojure because Lisp gives everyone the ability to play at being a language designer, but there's a reason that most language designers are extraordinarily experienced computer scientists: designing easily readable languages is hard. Where, in my opinion, Lisp's DSL abilities shine especially well is when the Lisper is just taking a well understood domain with well understood terms and translating those terms into Lisp. Where Lisp's DSL abilities can shoot the Lisper in the foot is when the Lisper creates a DSL for a problem domain that's less understood, and where the terms used in the DSL will be less immediately obvious. A good example of Lisp's DSL abilities really shining through is Hiccup, the HTML compiler. For instance: (hiccup.core/html [:body [:div { :id "divTop" :class "headingcontainer" } [:h1 { :class "superheading" } "Welcome!" ]]]) is understandable because we understand the concepts of 'htmlness' 'bodyness' 'divness' 'h1ness'. We understand what it means for something to be a 'body' in the terms of HTML. However, when the domain the DSL is modelling isn't well known to the reader, then the DSL becomes significantly harder to understand than normal procedural code. So yeah, Lisp can be a bit of a double-edged sword, but it's also possible to see how it acts as a gigantic force multiplier for small teams who understand their problem domain really, really well. This is why I believe it makes such a fantastic startup language: to write really good Lisp, you have to understand the problem you're trying to solve really freaking well, and that's a big part of running a successful startup.
- tom_b 13y agoHi, I'm definitely not a top 1% developer and I use Clojure. Because I'm not a top 1% developer, I have found some success by picking tools that were a bit "on the outside looking in" and trying to essentially use these tools as leverage to be more personally productive. I have attended the conj in the past and taken a bit of training in Clojure-based tools (Cascalog). These days, I am using Clojure for online programming challenges and various learning activities. The Clojure community is like others - some people are very humble and welcoming. Some less so. But it feels like an open community in most cases and I say that as a true introvert. My take on the idea of "top 1%" devs in Clojure is that there is a clear set of top Clojure hackers who are also invested in the craft of coding. It doesn't seem to be particularly ego-driven, but there are some incredibly hard-working devs in that group. I have observed a few, well-known names in that community invest a ton of time in reading academic papers, trying ideas out with Clojure implementations, and then quite publicly sharing the results. I think this was more what was being shared rather than chest-thumping of "oh, I'm at the Conj and you're not" perspective.
- michaelochurch 13y agoI'm not top 1%. I'd like to get there but I'm not there yet. Part of getting there is being in a community where 1-percenters (relative to software as a whole) are 1-in-10 or 1-in-5 as opposed to the 1-in-100 (by definition) of the industry at large.
- deleted 13y ago[deleted]
- 0xdeadbeefbabe 13y agoIf it were really the language of the "really good top 1%" why is it so easy to use? Why is it so popular? I'd expect a more hellish experience from smart people. Maybe that's the point of koans http://clojurekoans.com/ http://clojurekoans.com/ ?
- deleted 13y ago[deleted]
- emiljbs 13y agoThe Lisp community is more known for heralding the language than it is at heralding the users of the language.
- baddox 13y agoYep. I bet the Java community has far more top 1% talent than Clojure.
- arel 13y agoThis self agrandizing is vomit inducing... Why in order to elevate your own community do you feel a need to assert vague stereotypes about some huge blob of developers that it sounds like you know very little about. All the Java programmers in my 10 years in various companies are in general fantastic and have no intention of climbing the management ladder after 2 (count em!) years in!
- stfujavamonkey 13y ago> I have never encountered any shitty Java programmers, so they must be pretty good as a community. > I don't think they have any intention of climbing the management ladder because they didn't after two years > I, arel, am in a good position to judge the quality of my previous coworkes, and they have all been fantastic! Well, 'arel', first of all thank you for your useful contribution to hacker news. Second of all, if in all of your 10 years in various companies (you also sound like you have been doing Java only, so this applies doubly so) you have never maintained any shitty Java code from a shitty Java programmer, well, you must either have been very lucky, or you must be one of them, don't you?
- arel 13y agoThank you for yours... most eloquent. Some background just for you my friend: I've seriously programmed in (in order) C, C++, assembly, Java, Ruby and Python... and many other languages in between. I've had to maintain, fix, performance optimise, make sense of badly written code in C, C++, assembly, Java, Ruby and Python. Stop looking to demonise one set of developers and you will see that poorly written code and stupidity is everywhere, I can certainly see that. Also thank you for creating an account just to reply to me. I'm honoured.
- _xczx 13y agoAlthough it should be obvious, this extreme attitude is not shared by many programmers. I'll also mention that I've found Clojure programmers to be as friendly as any in irc and on the google groups.
- deleted 13y ago[deleted]
- kenko 13y agoIt seems to me you can't generalize about what people are planning on doing based on where they're currently employed. Maybe it seemed like a good job at the time or there were exogenous reasons to take it or they didn't know what the options were or whatever---the fact that the institutional structure only allows for a few kinds of advancement doesn't mean that everyone at the institution is planning on that kind of advancement. The same thing of course applies in the other direction; you can't tell what someone's intentions are from the fact that they're using Clojure.
- nsxwolf 13y agoYou've failed to establish why a company that uses Clojure wouldn't have engineers that plateau in 2-5 years and need to move into an architectural role or management role. Are you saying Clojure shops don't need architects? They don't need managers? Everyone just Clojures their way through "hard problems" and individually drives the business in new and more profitable directions? A language enables this?
- doktrin 13y agoI agree with this statement. For all intents and purposes, you could replace "Clojure" with "Brainfuck" in the GP's argument and it would make just as much sense. Sorry, but claiming that a language is "empowering" doesn't somehow magically make anyone who uses it an uber genius.
- logicchains 13y agoAnyone who successfully used brainfuck in production would be an ubergenius in my book.
- sheepmullet 13y agoI think he is saying the types of companies that use Java are typically big enterprise shops. And it's true that in general they don't have proper career paths for people who want to stay developers. Basically these kind of companies like to treat developers as a commodity. Developers aren't a commodity and good developers don't want to be treated as a commodity. In the java world this means good developers don't stick around. Companies that hire Clojure developers are frequently much more progressive about it (because if they weren't they wouldn't be using a language like clojure)
- arel 13y agoNot forgetting all those stupid developers who produced the underlying ecosystem (core libraries and virtual machine) your wonderfully smart community is standing on the shoulders of. I guess they're off playing golf rather than solving "hard problems".
- beat 13y agoThe average Java programmer isn't cranking out "ecosystem". They're slapping together a bunch of Spring components to make some dull business app while waiting for 5pm to roll around so they can escape the tedium of that dreadful existence. Average programmers don't learn Java because they're deeply interested in increasing the quality of their craft. They learn Java because it's what they were taught in school and/or because it will get them a job most easily. The bottom 80% of the programmer bell curve really doesn't give a shit about what kind of tools they use, as long as it keeps them employed. When you get to programmers who really love programming, who want to write the best code possible and are willing to go out of their way to learn tools with very little chance of landing them that next corporate job, you're most likely in that top 20% already. So anyone who has learned Clojure, or at least can explain rationally why someone would want to learn Clojure (ie understands the benefits of functional programming), is probably not a benchwarmer idiot. As a hiring founder who has absolutely zero interest in hiring below that top 20% (really, below the top 5%, ideally the top 1%), and has limited time to peruse a thousand basically identical resumes, applying a filter that gets rid of 80% of potential applicants is a Good Thing.
- arel 13y agoI understand your point... in terms of numbers Java does attract careerist programmers simply by critical mass. Although I would argue that language is actually now Javascript but thats another argument entirely. The point I was making was that there is a massive and grossly unfair generalisation solely about Java developers being made here and all over HN... that they don't really love programming, or want to write the best code possible. You might feel the language precludes that but then I would beg to differ and we are back to blub allegories. By your own figures (which I don't agree with) the top 20% of a big number is a large amount of talented programmers you have excluded from your search because you cant get past the crud. Developers who have taste, know the JVM inside out and can write tasteful, readable, lightweight (yes) and highly performant code. Code that runs everyday in the big houses such as Google, Twitter, Linkedin... I've interviewed many Java, Python and Javascript developers and our screening process helped to weed out the very hopeless, not perfect but most. First a scan of their resume - is it generic, do they have experience in complex projects, a github account, a blog, contribute to open source, opinionated? Second a real programming test that can test style, consideration of performance, typical gotchas. This should be automated so you can outright reject incorrect output... not fizzbuzz. Other people more experienced on me have commented on just how bad the average programmers are at simple tests - across all disciplines. http://blog.codinghorror.com/why-cant-programmers-program/ http://blog.codinghorror.com/why-cant-programmers-program/ http://www.kegel.com/academy/getting-hired.html http://www.kegel.com/academy/getting-hired.html I appreciate you don't have the time and you seek out developers who have challenged themselves with a more powerful language as your shortcut to find the elusive 1% but I imagine you'll find it is not insurance against poor architecture, algorithm selection, performance, unreadable code and applications that fall over in their first day. The generalisations you and others make are unfair to a particular community of developers who just happen use a mainstream language (a sin in itself on HN) but care every bit as the rest.
- brown9-2 13y agoIn a typical Java shop or enterprise code factory, after 2-5 years you reach a plateau and the only way up is to become an "architect" or move into management. So that's what the better people in the mainstream Java world want to do, and ultimately the tenor is focused on "enterprise architecture" and Spring/Hibernate add-ons instead of making beautiful, powerful, or maintainable software and solving hard problems. Seems like the key word here is "typical", and you risk drawing overly broad conclusions from your own experiences and/or the "conventional wisdom" one arrives at from reading too many forums. I wonder how the software engineers who work at Google or Twitter and write applications in Java that "solve hard problems" feel about your assessment of their motives and goals.
- yawn 13y ago> is full of people who (a) are really good, like top 1% Measured by what metric?
- lenage 13y agoI'm also curious the metric?
- lispm 13y agoNot my experience. Some of the Java people I work with are exceptionally good. Many of them are career long software wizards.