6 ms·
I don't feel like clojure stalled out. You have to realize the redmonk rankings are using very weak heuristics to get these results. I'd rather choose languages
by jeremiep 10y ago
I don't feel like clojure stalled out. You have to realize the redmonk rankings are using very weak heuristics to get these results. I'd rather choose languages and tools by how much they match the problem space rather than how popular they are at any particular point in time.
If you trim out all the worthless SO questions/anwsers you'll get radically different rankings on redmonk. JavaScript could very easily drop from its first place doing just that.
I don't get why people chase popularity in programming languages. That's what you do in a pop culture, not in an engineering one.
- lkrubner 10y agoAbout this: "I don't get why people chase popularity in programming languages" I am forced to do this simply because I consult at companies where the managers do exactly this. They will not let me use a language unless it is a top language. If I say "Clojure would be excellent for the project that you have in mind" they will reply "We can not use Clojure because it is not popular enough. We have to use a language where there is a large pool of developers that I can hire, and there is no risk that the language will disappear in 5 years."
- jeremiep 10y agoI can understand in these environments they want to limit risks. And because the work is boring and the conditions are average to begin with, these companies are always on a massive roll of junior developers. It's especially bad if code isn't their main area of expertise. I've seen companies of 300-500 employees struggle to keep even a single senior programmer over half a decade. They'd get far more talent by actually embracing an engineering culture. What I always see is that the juniors start getting experience, realize the place they work at is a huge pop culture and leave for an engineering one, thus lowering the talent pool of said company. Basically they don't want smart engineers, they want replaceable code monkeys. They have yet to realize there's a few orders of magnitude worth of quality and productivity between the two. I used to work in such an environment until I had enough of this cancer and decided to move to a small studio with less than 30 employees but with a very strong engineering culture.
- msluyter 10y agoYes, that, and the quality of applicants tends to be higher for some of the less popular but more interesting languages. I worked at a company that had a large java codebase and was reluctant to try anything different for fear of not being able to find developers. But then we'd get these applicants with dozens XML/JAX-WS related keywords on their resumes but who couldn't write a simple for loop or understand what a database transaction meant. I recall reading about someone (was it Spolsky? IDR) who looked for candidates with certain niche languages on their resumes, because it served as a quality signal. If they're interested in learning Clojure, for example, they may just be more generally curious and/or have a desire and interest in learning about different paradigms. That said, at a practical level one has to balance competing demands. If you have someone on your team working on a project in X and they're the only X developer you have, you're at risk because if they leave, you may be screwed. Plus, they won't be getting quality feedback on their work because no one else can understand X.
- jeremiep 10y agoI think its google who also asks for Python experience next to Java experience because it shows you went ahead and learned something on your own that wasn't spoonfed to you in school. And yeah, Spolsky did talk about the perils of Java schools here: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html http://www.joelonsoftware.com/articles/ThePerilsofJavaSchool... Great article! Having a single guy work in X can be bad indeed, but if you want to try something new its much safer than switching entire departments overnight.
- gavinpc 10y ago> That's what you do in a pop culture, not in an engineering one. According to Alan Kay, the whole computer industry is a pop culture. https://news.ycombinator.com/item?id=4956430 https://news.ycombinator.com/item?id=4956430 http://queue.acm.org/detail.cfm?id=1039523 http://queue.acm.org/detail.cfm?id=1039523 http://www.drdobbs.com/architecture-and-design/interview-with-alan-kay/240003442 http://www.drdobbs.com/architecture-and-design/interview-wit...
- fahadkhan 10y agoYou reminded me of https://news.ycombinator.com/item?id=4727721 https://news.ycombinator.com/item?id=4727721 Article programming is a pop culture. Unfortunately the original article appears not be available.
- coldtea 10y ago>I don't get why people chase popularity in programming languages. That's what you do in a pop culture, not in an engineering one. That's wrong. Every civic engineer I know, for example, would prefer standard, and lacking that, popular nuts, bolts, construction parts, materials etc, over niche ones, unless there's some very pressing reason not to. They are cheaper and available in greater volumes, you can find skilled workers easier, their properties are more studied, etc. That's even more important in programming, where ecosystem, availability of libraries, continued support on the language and compiler, availability of skilled programmers, existing codebase support, etc, matter even more than pure language level issues. Popularity in a language is crucial, to the point that other attributes, like expressiveness, or even speed, can be inconsequential compared to that. And while engineering can be a pop culture (e.g. Mongo or the latest fad), popularity is important for aspects that are totally counter to pop culture too: namely, pragmatism. Programming is not about using what's "best", it's about using "what's best given business constraints" (which is something else altogether). Besides, the hipster figure who listens to obscure music because it's "best" is also a pop culture phenomenon -- not to dissimilar to certain programming cults.
- jeremiep 10y agoHaving worked in both huge teams using popular languages/libraries/frameworks and small teams using what works best I'll choose the later any day. We're already allergic to frameworks where I work and we're slowly moving away from libraries as well given how low quality the average open-source library is. Once you realize you spend more time debugging open-source libraries than your own codebase, you stop caring about popularity. If you hire developers for what they know right now, of course you'll limit yourself to only the popular languages/frameworks. Its much more lucrative to hire developers for their potential to learn and grow; these people will make the best of any language/library/situation. Of course, like you said, economics come into play but my point is that the popular choices often lead you to a path where you end up with a lot of mediocre developers, terrible architectures and endless conceptual debt. At the end of the day this is much, much more costly and doesn't even yield quality software.
- devty 10y ago
- kmiroslav 10y agoBecause if you like a language and that language is popular, you're more likely to find a job using that language, which in turn will make you happier.
- JoeAltmaier 10y agoMaybe if the job is in a field you like. Used to be learning COBOL guaranteed a job. As a drone in a bank. Very popular at the time.
- Roboprog 10y agoWhile others have pointed out the value of popularity, I think you make an interesting point about SO part of the ranking. Consider the corners in the graph off the line. E.g. - SQL: "nobody" is making voluntary github projects with it, but it generates a lot of questions (the legacy code quadrant). Alternately, there are fewer things below the line, but those would be the things that people are using, and NOT being regularly confounded by WTF they do :-)