

4 Languages you should learn in 2009 - BigCanOfTuna
http://anassina.com/blog/?p=36
The Pragmatic Programmer Books suggests you learn a new language every year. I suggest you learn 4 that will be beneficial to your career in 2009.
======
schtog
"It is one of two official languages used at Google and it does power a lot of
their most profitable products."

One of 2? I thought 4: Java, Python, C++, Javascript.

And does it really power a lot of their most profitable products? Like which?

(Not bashing here, Python is my main language and I love it.)

~~~
whacked_new
To be blunt and disrespectful, after seeing the author confusing Cantonese and
Mandarin, I am quite skeptical of the assertions.

~~~
BigCanOfTuna
Oh, give me a break! I did approve the comment by the user who pointed out the
mistake, kindly thanked him, AND struck the comment rather than try to hide it
like so many other revisionist bloggers out there.

~~~
whacked_new
Pardon me for that, and I was aware of the undertones, but I still didn't see
anything particularly informative, especially provided that you submitted this
blog to HN: it is almost a _given_ that everybody here programs to some
degree. You did not make a strong case for any of your assertions. You merely
asserted.

This is different if your audience is, I dunno, designers, or people wanting
to get their feet wet. That is certainly not the case in this forum.

Also, a foreign language takes a lot of time and effort to even just become
functional in it. If you are thinking in terms of managing a foreign dev team
with your foreign language skills, you're thinking in terms of several years.
Not just "in 2009."

Maybe I have a bad temper today, but as you said you have over 10 years of OOP
experience, one would expect something jucier.

~~~
BigCanOfTuna
You didn't find it informative? That's unfortunate.

What is the audience of this forum. Looking through your list of submitted
articles reveals no indication. For instance, your last submission was
"Japanese Convenience Stores Thrive Despite Economic Downturn."

Foreign languages are very hard to learn. I know, I speak three. I didn't say
anything about managing a foreign dev team, just that you should learn a new
language. The world is flattening and I don't always want to speak English.

I don't know how 10 years of OOP correlates to a "juicy" blog post. All I can
say is that in 13 hour, with close to 3500 unique visits, some people found it
interesting.

~~~
whacked_new
Alright, well, I just expressed an opinion inelegantly, but may it remain just
one. I'll stop trolling already.

------
jwilliams
Not sure I get the logic behind the line: _With the economic slow down,
countries with emerging technology sectors and talented, well educated
developers will be getting a second look as a means of cutting
applicationd(sic) development costs._

Surely with the economic slowdown developers in "un-emerging" economies will
be more competitive?

------
cstejerean
I recommend checking out Clojure instead of Erlang.

~~~
jimbokun
Clojure comes close to answering almost all of my complaints with other
languages.

\- The mature libraries and deployment environment of the JVM. So your code
runs fast, runs almost anywhere, and a lot of work is already done for you.

\- Data literals for arrays and maps. One of the shortcomings of Common Lisp.
And catches up with (surpasses?) Python/Ruby/Javascript in this regard.

\- ISeq interface means that a single set of functions works across all
collection types. (Common Lisp has an amazing array of functions for working
on lists, but hit and miss for other collection types.)

\- Lisp 1. I know this is an aesthetic thing, but I much prefer how the code
looks than Lisp 2's.

\- Steals a lot of arc's good ideas, like abbreviated syntax for function
literals and semantics for arrays/maps in function position.

\- Common Lisp style macros. Just more intuitive, for me, than the hygienic
type.

\- Interesting place in the space of computer programming languages. Dynamic
typing, with an emphasis on programming to interfaces, macros, first class
functions, immutable data structures, and built in mechanisms to support
parallel programming. I don't know of any other language that chooses this set
of tradeoffs.

~~~
crabapple
i would recommend clojure if you want to learn "a lisp"...along the positives
you cite, it has a growing community, very active development, hype (in a good
way), and deployability.

------
vegai
Haskell instead of anything else. And then some Factor.

Mandarin is a nice touch. I'll try that. Indians, however, speak English
pretty well -- even if their accent might take some getting used to.

~~~
crabapple
haskell is the only programming language that made me reconsider most of my
assumptions. its not a tacked-on, hacked-on functional layer on something
else, its mind-bending at a fundamental level. because haskell makes no
comprimises, it also is showing some insane performance on multicore. its no
mistake that the google mapreduce tutorials use haskell in some explanatory
examples...

ten years from now, you _will_ be dealing with a multicore world, and you will
be using something that is conceptually tied to haskell. i see this as
inevitable.

factor i have looked at again and again, worked through some trivial
problems...not sure i will ever "get" it. i would brute-force understanding it
were it to take off.

------
sherl0ck
I think in 2009, I just wanna dig deeper about python.

~~~
truebosko
Same. I only got into Python this year, but I definitely want to say I'm an
expert by next year. Of course, won't ever stop learning new tricks even as an
expert :)

------
chris11
I'm surprised they didn't mention arabic with mandarin and russian at the end.

~~~
tapostrophemo
I just took an informal survey amongst my teammates (including Arabic in the
list), and "three out of four" developers said: Mandarin.

The interesting thing is that on my team, two are from Russia, one from China,
one from Lebanon, one from the UK, and one from India. The other two are
Americans.

~~~
wallflower
Classic essay: "Why Chinese is so Damn Hard"
<http://www.pinyin.info/readings/texts/moser.html>

"Someone once said that learning Chinese is "a five-year lesson in humility".
I used to think this meant that at the end of five years you will have
mastered Chinese and learned humility along the way. However, now having
studied Chinese for over six years, I have concluded that actually the phrase
means that after five years your Chinese will still be abysmal, but at least
you will have thoroughly learned humility."

~~~
curiousgeorge
Classic Moser essay. I thought this would be a post about spoken languages as
well, and would put mandarin at the top of the list as well. Since people are
still hiring here (especially in tech related fields), I will happily take
this opportunity to plug our Chinese learning product:

<http://popupchinese.com>

The ability to roll your mouse over the characters and see exactly what they
mean, or just change all of the characters to pinyin on-the-fly makes it an
incredibly effective way to learn Chinese.

~~~
light3
Instead of 5 years how about you move to China and study / communicate (as
opposed to having fun) everyday for half a year to the fullest of your
potential, you'll be up and talking and blowing Moser's article to
smithereens.

I say this because when I moved to Australia (I'm Chinese) I was speaking
English in 3 month, given I was 9 yrs old - but it just shows how much more
important your environment is compared to how much time you study a language
(unless its a very close language).

~~~
curiousgeorge
I don't know about English acquisition, but your timeline is way off for
Chinese language acquisition, even for younger children brought to China. An
aggressive timeline for adults in-country would be about 2 years to
conversational fluency, and less for younger kids. This is more or less the
pace you see for the faster Korean learners who come to China.

I'm happy you've had a good experience in Australia. You should remember that
the barriers to learning English and Chinese are fundamentally different.
English requires mastery of about 100 phenomes before reading and writing
skills reinforce each other and learning accelerates: the language gets more
difficult as you get better. In contrast, the difficulty curve for Chinese is
steep when you start but gets much easier as you improve.

Working hard is important, but equally important is giving yourself the tools
to maximize learning. Someone struggling to get through Dream of the Red
Chamber with a traditional dictionary is at a huge disadvantage to someone
using the proper tools and resources. Learning a language is like engineering
in the sense that one should use the best tools for the job, and then put in
the time needed to execute.

~~~
light3
My estimation may be biased because I am Chinese, 2 years sounds like a more
reasonably good figure, which is still a lot better then the 5 years Moser
claims. Also there must exist at least one language genius who can do it in 6
month :)

Indeed as you say the Chinese language is hard at the start and gets easier.
In my case when I moved to Australia I forgot a lot of my Chinese even after 1
year of not reading. 4 years later I could barely read, over the holidays I
was forced to study Chinese, I did nothing but read a novel, some 10 pages a
day which initially made next to no sense and took almost the whole day. But
after two weeks of continuous reading, I could understand a lot more, and was
reading much much faster(managed to finish a 400 page book). The trick to
learning to read Chinese is to get going and not stop, and skip most of what
you can't understand, and gradually you will pick it up.

I would also add that if you're not seriously committed to learning Chinese,
why bother? Your progress would be so painstakingly slow it would seem you're
forgetting as much as you learn - I'm trying to say don't do what Moser is
claiming, tackle Chinese with less than 100% with slow progress and find out
it is hard after 5 years.

It is also my view that much of the difficulty is a inherently negative mental
illusion that the language is hard, and that also hinders learning. If people
learned Chinese as if it were playing their favorite game, instead of
something inherently dry and boring (which is another argument) this will
speed up the learning process.

------
callmeed
Reminds me to break out my russian books ... I'm getting rusty

------
vesan
I recommend checking out Ruby instead of Python.

~~~
razzmataz
Out of curiosity, could you elucidate why?

~~~
pavelludiq
Chicks love rubies, but don't like snakes that much. :D

Seriously, you should probably learn both.

~~~
catch23
well if you already know one, you might as well spend the time to learn
something else that would give your brain a level up.

~~~
pavelludiq
yeah, a good tip, but still if you know one, you should at least go through
the other ones tutorial just to know what you're missing :D

