Live data from Hacker News

The Elite Programming Language Fallacy

blog.fogus.me

41–50 of 58 posts

Re: The Elite Programming Language Fallacy

#41
post #17
post #15

Earlier quoted context omitted.

J2EE (what most people are referring to when they talk about Java sucking) is a really awful, verbose thing to write programs in, and I had those feelings well before I started reading articles about it. It's not a shallow criticism. The JVM, on the other hand, is great, and lots of great tech has come out of it. I haven't seen too many people disparaging the JVM. There is also quite a lot of useful, stable library c…

j2EE != Java. J2EE is a framework. More accurate to compare J2EE and Rails. Or compare Swing to Qt. You can program in Java without J2EE and Swing (which suck). The criticism is against Java. You are adding your own qualification.

I suppose, but it's what a lot of people are stuck writing in enterprisey Java shops, and it's been my impression that people mix the two up when complaining. That might be wrong, though. I suppose the core language has a number of problems of its own as well. I don't think people think the JVM is one of them, though, and it's not really what most people are talking about when they talk about programming in Java.

Re: The Elite Programming Language Fallacy

#42

Earlier quoted context omitted.

because they spend more time looking out for new, good things that the average person Yet I think the best programmers I know use languages that are 20 to 30 years old as their main weapon of choice (C/C++ for example). I'd also care to say that once you reach a certain skill level, you see beyond the language and don't find yourself looking for the latest shining new stuff.

>> the best programmers I know use languages that are 20 to 30 years old as their main weapon of choice (C/C++ for example). C is 40 years old and C++ is 32 years old. (Visual Basic is 20-30 years old, though.)

Well if you want to be pedantic, C++ is actually twenty eight years old (1983), but as the language evolved a lot, modern C++ is probably less than ten years old. It depends on what you can a language and what you call a dialect.

C is indeed almost forty years old.

Re: The Elite Programming Language Fallacy

#43

Earlier quoted context omitted.

I have to agree. The Internet somehow does create these weird pissing contests where people seem to want to show that they are cool and everyone else sucks. For example, in an internal mailing list where I work, there is currently a thread between two idiots over whether iPhone or Android is superior. What a completely ridiculous waste of time! The mature "elite" programmer knows that solving problems is more importa…

I don't like flame fests any more than you do, but honestly is making money always the most important factor? Especially in our profession there are far more rewarding goals than money.

No one here said it was.

Re: The Elite Programming Language Fallacy

#44

So I say that even a notoriously difficult language like Haskell is only difficult because you haven’t learned it yet. Can't say I agree with this. Haskell embodies a lot of fairly advanced and much more formally rigorous concepts than most programming languages. It may be that there's a corresponding payoff in concision or correctness but Haskell has this reputation for a reason.

Not just rigor. Haskell is very difficult to debug performance issues of, and is hard to use when manage changing state.

Haskell shines when used to manage a sophisticated computation of a static result, not a constantly changing dataset.

Haskell is a great way to learn stateless pure programming style, since it forces a lot of discipline. Haskell makes you a better Java/Lisp/Python/C programmer. (Except that it will make you write inefficient Java if you get too accustomed to the idioms that are efficient Haskell)

Re: The Elite Programming Language Fallacy

#45
post #39
post #13

I think the post somewhat misses the point of "elite languages" by denying their existence in teh first sentence. To see the absurdity of the claim, reword the argument thus: "There are no clubs that will make you “elite”. In fact, there are no “elite” clubs." But, of course this is not true, there are clubs for which membership shows eliteness. This is not a physical property, it is agreed upon by the relative strat…

But, of course this is not true, there are clubs for which membership shows eliteness. This is not a physical property, it is agreed upon by the relative strata of society. This is a weak analogy. Elite clubs do not make the members elite; they are "elite" to begin with. These clubs are not admitting the janitor. On the other hand programming languages do not admit members. Anyone can pick one up and learn it, but th…

I think you are agreeing with Jun8, but it is confusing because "elite" has a subtle meaning (not just "99%ile quality") and it is not being defined here.

Re: The Elite Programming Language Fallacy

#46

Earlier quoted context omitted.

I have to agree. The Internet somehow does create these weird pissing contests where people seem to want to show that they are cool and everyone else sucks. For example, in an internal mailing list where I work, there is currently a thread between two idiots over whether iPhone or Android is superior. What a completely ridiculous waste of time! The mature "elite" programmer knows that solving problems is more importa…

I don't like flame fests any more than you do, but honestly is making money always the most important factor? Especially in our profession there are far more rewarding goals than money.

Getting things done is usually the most important factor in a business setting.

Re: The Elite Programming Language Fallacy

#47
"Having said that, there are languages that are designed to solve hard problems."

Which kind of says that there are actually elite languages, right?

I agree that people conflate their use of an "elite" programming language or framework with actually being an elite hacker.

And certainly there are masterful hackers in any given language.

There is no substitute for getting things done, but my own programming life would have been more productive earlier had I simply known more programming paradigms to start with. The wonderful idea in an "elite programming language" is that the thinking hacker is forced to look at least a little at languages that support different programming paradigms. Then, their mental modeling of problems may be forever changed - improved even.

Re: The Elite Programming Language Fallacy

#48
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 -- w…

Perhaps you aren't trying to find a great dev, you are trying to weed out the pigs in pokes. Anyone who isn't a total fraud of a programmer is lauded as an excellent hire.

It seems to me that just as with reading and writing, nearly anyone could be taught to program. The problem is that there are many people who are completely illiterate. Of those that have been trained, there are still many who are functionally illiterate (they can write godawful code slowly).

Anyway, I've seen plenty of bad code in Common Lisp. You'd have to assume that any language with significant market share would produce more bad code. This is because of bandwagon effect.

i.e. 'There are a lot of companies that want to work in lang_x, therefore everyone gets trained in lang_x, and if you just want a job, you learn lang_x.' All of the programmers who have been taught but never learned 'know lang_x', so you get them producing bad lang_x code.

The elite programming language fallacy solves this, by eliminating the people who only 'know lang_x'. If you had trouble learning to program lang_x, you aren't going to go out and read a book on your own time about lang_y or lang_z.

So lang_y and lang_z become 'elite' even though elite really means 'a bare minimum test if you could possibly to produce good code'.

Re: The Elite Programming Language Fallacy

#49
post #17

Earlier quoted context omitted.

j2EE != Java. J2EE is a framework. More accurate to compare J2EE and Rails. Or compare Swing to Qt. You can program in Java without J2EE and Swing (which suck). The criticism is against Java. You are adding your own qualification.

Java, the Programming Language, not the Development Environment, is what I think he was talking about. The JVM is awesome and will be one of the platforms that defines the next generation of languages (e.g. Clojure, Scala). Java the language is painful after writing in Lisp, Clojure, Ruby, et al. Edit: C# is also widely regarded as "superior" to Java.

> C# is also widely regarded as "superior" to Java.

It feels like saying Stheno and Euryale are Medusa's pretty sisters.

Re: The Elite Programming Language Fallacy

#50
post #39
post #13

I think the post somewhat misses the point of "elite languages" by denying their existence in teh first sentence. To see the absurdity of the claim, reword the argument thus: "There are no clubs that will make you “elite”. In fact, there are no “elite” clubs." But, of course this is not true, there are clubs for which membership shows eliteness. This is not a physical property, it is agreed upon by the relative strat…

But, of course this is not true, there are clubs for which membership shows eliteness. This is not a physical property, it is agreed upon by the relative strata of society. This is a weak analogy. Elite clubs do not make the members elite; they are "elite" to begin with. These clubs are not admitting the janitor. On the other hand programming languages do not admit members. Anyone can pick one up and learn it, but th…

> Anyone can pick one up and learn it

This is horrible to say, but, in reality, it's not anyone. Not everyone will ace the SAT or have an IQ of 140+ much like not everyone can run 100m in less than 10 seconds. Maybe anyone can learn Java or Haskell or Python, but not everyone will be capable of writing excellent (or even correct) code.

Post reply on HN