Live data from Hacker News

The Elite Programming Language Fallacy

blog.fogus.me

1–10 of 58 posts

Re: The Elite Programming Language Fallacy

#4
One spoke Emacs Lisp like it was a native tongue. I could not visually follow the shuffling of Emacs buffers nor the random evaluations of Lisp that modified his instance on the fly in very pointed, task-specific ways. Additionally, he had perfect recall of every Emacs Lisp function that he had ever written (or so it seemed).

Poor wretch.

(Avoided that fate, way back. Mediocrity for the win.)

Re: The Elite Programming Language Fallacy

#5
This sort of has a 'straw-man' feel to me. I've never heard the "Elite Programming Language" term before I saw it deconstructed in this essay.

Most discussion around programming languages I see these days is centered around assessment of developer skills. This is understandable -- we're going through a period of massive technical talent shortage. Almost all tips we read through places like HN, including PG's notes, revolved around shorthand ways to screen developers, not pushing a one-true-language approach (unless Yahoo Store programming skills are at stake, apparently..)

Unlike, say, the mid 1970s, when IBM could take its sweet time training you to program, startups don't have a lot of time to make something happen. Thus, they need a language (and application framework) that will work well, and they need developers that they are reasonably sure will be able to succeed. And they cannot wait six months to find out if they were correct about said developers.

One shorthand way to look for these developers is to find ones who have demonstrable skills in new-ish, hard-ish languages. These are the developers that you know for sure

1) Like new things

2) Aren't afraid to experiment

3) Enjoy a challenge

You have no idea if they're any good to work with, understand software architecture, have foul personal habits, or any number of other reasonable concerns for some other company. As a startup company, you don't care about most of that list (at first). This is why it's a smart move to look for people who have just coded up some crazy Arduino-Haskell-auto-shooting-usb-missile program. Those people will not be unduly dismayed when they need to reverse engineer a wireline protocol one day, and 'pick up couchbase' the next.

All this to say, sure, there's no such thing as an elite language. But, right now, there are a few languages that indicate strongly that you might wish to recruit a programmer for a stint at your startup. Clojure, Scala, Haskell are on my list.

Re: The Elite Programming Language Fallacy

#6
"So why does the term “elite” become attached to certain languages over others?"

Because the causality flows the other way. At any given point in time, there are certain languages that the elite programmers tend to flock to, because they spend more time looking out for new, good things that the average person (part of what got them to "elite" in the first place), and therefore finding someone who knows that language is evidence (though not proof) that they are elite.

That's not a logical fallacy; in Aristotelian logic, (A -> B) !-> (B -> A), but you can use probabilistic logic to combine "A -> B" and "B" to update the probability of A (when combined with a couple of other values). And that's how you get certain languages associated with elite programmers, even though the languages itself does not confer eliteness. It's actually all-but-inevitable that such processes occur in any community of sufficient size that has any sort of skill ramp. There's going to be at least one identifiable group that is the "cutting edge", and they are going to have certain characteristics or tastes or whatever that will tend to separate them from the not-cutting-edge folk.

Re: The Elite Programming Language Fallacy

#7
I blame the Internet. No, seriously.

Sites like HN and Reddit tend to have a vocal crowd who decide that certain languages and tools are the domain of the elite. This groupthink is religiously defended through self-righteous blog posts ("I switched from Java to C and became a better person!!!") and comment threads. Inevitably, posters go looking for something that the True Language is known to do well, and then overgeneralize their experience. The result? Karma, and another voice to add to the constant din of Conventional Wisdom. Intellectual honesty takes a backseat to conformity...as usual.

Developers looking to improve their skills should pick up new languages, especially those of different paradigms and abstraction levels. But the hegemony of 'superior' languages will always weigh in to these decisions, and potentially block out the idea that the language is merely a tool used in implementing the final solution. It was never the end goal.

Nor is being right on the Internet. This phenomenon is one of humans, and their politicization of engineering. We must be wary of the ego, and harness it for it's good uses, rather than always looking to appear badass or hip through our technologies.

Re: The Elite Programming Language Fallacy

#8
post #5

This sort of has a 'straw-man' feel to me. I've never heard the "Elite Programming Language" term before I saw it deconstructed in this essay. Most discussion around programming languages I see these days is centered around assessment of developer skills. This is understandable -- we're going through a period of massive technical talent shortage. Almost all tips we read through places like HN, including PG's notes, r…

I don't understand why those three things you listed would make a good developer. Who doesn't like new things? I want to find the person who sticks with the old thing, even after the shine has worn off. Everyone loves to code the prototype. And if you tell most devs they get to code the prototype and learn a new language at the same time they'd jump at it. In grad school, with every project I used a new language -- why? Because it's fun. But that doesn't make a good dev.

Again, I've never met anyone who is afraid to experiment. But I've met people who don't know when it makes sense to experiement.

And again, the problem I've had with programmers has never been because they don't enjoy a challenge. In fact, I'd say quite the opposite. I'd like to see more devs say early on that something looks difficult, and could use some mentoring or help on it.

I guess I'm just saying that this says almost nothing about the quality of the developer.

Re: The Elite Programming Language Fallacy

#9
post #6

"So why does the term “elite” become attached to certain languages over others?" Because the causality flows the other way. At any given point in time, there are certain languages that the elite programmers tend to flock to, because they spend more time looking out for new, good things that the average person (part of what got them to "elite" in the first place), and therefore finding someone who knows that language…

there are certain languages that the elite programmers tend to flock to, because they spend more time looking out for new, good things that the average person

I think that's a very subjective thing to attach "elite" to. I see a lot of people jumping between languages who are ahead of the curve, but nowhere near anything I would call "elite". At the same time, some of the most "elite" programmers I've seen have been doing things like the same old embedded programming for X years, getting really, really good at it.

Re: The Elite Programming Language Fallacy

#10
post #6

"So why does the term “elite” become attached to certain languages over others?" Because the causality flows the other way. At any given point in time, there are certain languages that the elite programmers tend to flock to, because they spend more time looking out for new, good things that the average person (part of what got them to "elite" in the first place), and therefore finding someone who knows that language…

There's going to be at least one identifiable group that is the "cutting edge", and they are going to have certain characteristics or tastes or whatever that will tend to separate them from the not-cutting-edge folk.

The problem is that there's no evidence at all that it's language which is the characteristic function. Looking at most of the devs that I truly respect and admire, few if any, are the ones that spend a lot of time with cutting edge languages. And most people I know who are famous devs that use cutting edge languages, are famous for using, writing about, or developing cutting edge langauges.

Post reply on HN