If you have to learn just one language, and you're forbidden from learning another, you'll mentally hobbled, a technical cripple, like someone who's been forced to express their thoughts using only 5'000 randomly selected words of the English language.<p>The premise is completely flawed. No single language is enough to "be a programmer". You need other languages, if only to understand what your language does. And you need them because no language is the best tool for every job. Should a plumber choose "just one tool" to do their job with?<p><i>if you want to devote all your energies to becoming a proficient and productive programmer and want to learn one powerful, freely available, high level general-purpose language (not domain specific)</i><p>If you want to devote all your energies to becoming a proficient and productive programmers, you will need to:<p>1) Learn at least half a dozen different languages over the course of a few years or more (and by "learn" I mean learn them well enough to do something productive in them).<p>2) From this, arrive at a set of preferences for which languages you feel most productive in for the tasks which you tend to do.<p>3) Then, hone those few languages (there's gonna be more than one) to a sharp point.<p>4) Keep monitoring new language developments and get ready to jump ship if a better language comes along, which replaces one of your current languages favourably.<p>A one-language programmer is like a one-legged stool.
<p><pre><code> if (you_have_to_learn_one_language) {
make_highly_subjective_claims();
eliminate_good_candidates_for_specious_reasons();
arrive_at_questionable_conclusion();
} else {
broaden_your_understanding_of_programming();
be_able_to_evaluate_multiple_solutions_for_problem();
}
</code></pre>
The underlying premise is flawed. No one has to learn just one language and anyone who stops at one is limiting themselves to being a journeyman programmer for the rest of their career. At that point they should be asking "do I really like programming?" and if not, move along to something else.<p>A much better question is "If you have to start with just one programming language...".
I'm learning C# so I've got a little bias but the author says that C# never really took off? He doesn't even list it as failing one of his criteria. He says in the comments later he bases it off of it's listing here <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" rel="nofollow">http://www.tiobe.com/index.php/content/paperinfo/tpci/index....</a>. Baloney I say.
I didn't understand his reasons for eliminating Haskell and OCaml. It's not even that his reasons were subjective like with a lot of the other languages — he just didn't offer any. He names a bunch of things Scala can do that they can also do and then goes, "So I'm eliminating Haskell and OCaml." Like, does he not realize those languages can do monads and XML processing?
<i>I will eliminate Lua [because it is not a general purpose language]</i><p>Umm... what? It's really hard to take anything from this article seriously after reading that. Other gems include ruling out Clojure purely on the basis of syntax, Objective C because "it is mainly used in Mac OSX and iphone software" and Javascript "mainly for the same reason we don’t program in assembly any more — availability of highly optimizing compilers".
If I had to learn 1 language, I would go to Monster, Dice, whatever job site and search- On Monster.com looks like java is the big winner in Houston Tx, followed by C++, C#, VB, and javascript. Lua and scala are pretty much a great way to be unemployed in this city.<p>Job Search
Sorry there are 0 scala jobs<p>Job SearchPer page Previous 1 2 3 4 Next
85 c# jobs in Houston, TX<p>Job SearchPer page Previous 12345 Next
120 java jobs in Houston, TX<p>Job SearchPer page Previous 1 Next
6 objective c jobs in Houston, TX<p>Job SearchPer page Previous 1 2 3 4 Next
90 C++ jobs in Houston, TX<p>Job SearchPer page Previous 1 2 Next
30 php jobs in Houston, TX<p>Job SearchPer page Previous 1 2 3 Next
73 VB jobs in Houston, TX<p>Job SearchPer page Previous 1 Next
1 Lua jobs in Houston, TX<p>Job SearchPer page Previous 1 2 3 Next
65 javascript jobs in Houston, TX<p>Either way, why would you want to limit yourself to just one- even if its just for the sake of argument?
I like to think of programming languages as tools. You should always pick the right tool for the job. Otherwise, someday you will pick up your hammer and realize not everything is a nail.<p>Language design is all about trade-offs. Some languages are better at string processing, some make it easy to write quick scripts, some have good framework support, some have high speed, none has it all.
I think that programming languages are tools which aid the development of programs, but the program itself is really independent of the programming lanauge. I know that I write the same program no matter what the compiler (or assembler).
... then learn the one that everyone around you uses. This often extends to entire fields (genetics, etc).<p>Of course, it's never true that you have to learn just one language, and you're handicapping yourself if you arbitrarily do.