Some good points buried among juvenile posturing, I guess the "old" part must be irony. Would you take programming language advice from someone who has learned the language in "a day or a week"? I realize the point is the language doesn't really matter but statements like that and the general tenor of the post don't inspire me.
No, most languages are isomorphic up to semantics. the outliers today are the logic languages, the HM typed languages and the macro languages.
javascript, qbasic, java, c++, c, c#, ruby, python, perl, they are all very similar, some with their knobs exposed, some without, some with bad environments, some with better, some with closures, some without.
Once you grok the inner similarity of software, it's just not very interesting to learn new languages.
"At the time that I wrote this book I knew about 20 programming languages and could learn new ones in about a day to a week depending on how weird they were."
He's saying the entire range is a day to a week. The ones that are isomorphic would take a day or two, I agree.
But he's saying the ones that are not isomorphic also take just up to a week, and according to other discussions with him, it's not because he's already an expert in those other types of languages.
As an old programmer myself, who has learned many languages over the years, and written programs for pay in most of them, learning languages in a day or week is not at all unusual, or difficult. Especially after learning assembly for a few different machines, with widely different instruction set architectures.
It probably depends on how we are defining "learned". Does it mean memorizing all the functions in language x's stdlib? Is it learning the grammar of the language? Is it coding a project of x many lines of code? Have you learned a language when you can write a compiler / interpreter for that language?
The concept of "learning" a language is so hopelessly ambiguous it has almost no meaning to me.
I would say that I know enough of many languages to use them professionally, but I have deep knowledge of very few.
I believe that "learned" means "learned enough to work professionally with".
Deep knowledge of a language is always very desired, but on the real world very few programmers have it, or even need it. (Not to mention that "deep knowledge" is a very abstract concept on its own too, lol)
Not every professional developer can, for example, write a framework or a compiler from scratch in their language of choice, but they're still productive and fundamental to their team...
1. It's not a "post", it's a single chapter in a whole book http://learnpythonthehardway.org/book/ which I'm guessing you won't read because you clearly can't read.
2. I am old compared to a lot of programmers, but yes it was kind of a joke. There's several exercises where people know my age.
3. It's a good thing you're not my target audience. It's a lot harder for me to write in 2nd person passive voice like you're used to reading in all those academic papers you devour.
Zed, thanks for replying - I had heard of your book and actually quite like the style. Much better than the academic papers I usually devour, I just didn't really think that last chapter was very good.
By the way, I enjoyed track 2 of week 2 of your "random improv".
When you get to the point where you understand that all programming languages are just implementations of turing machines (some more limited than others), and have much experience with a few languages, I'd say yes, you can give quite good advice regardless of the language, even if you've never once used it.
If you only measure the computational power of programming languages, then it is mostly equivalent (though there are some languages which are not Turing-complete, because they have proofs of termination).
If you also measure other properties, like what kinds of guarantees your language gives you, then they differ even more.