

Programming languages that every developer should know - shin_lao
http://www.bureau14.fr/blogea/2009/12/programming-languages-that-every-developer-should-know/

======
leftnode
I'm not entirely sure I agree with this list. Here's some I would add:

PHP - even if you loathe its every existence, if you're a web developer,
you're going to come across it, might as well know it.

Perl - text processing, data scraping, all around great language.

Javascript - Like others have mentioned, I think its a great language, used in
front end web development, and now moving to back end.

Shell scripting - Of some sort, please don't be afraid of the command line.
Its so insanely powerful, you should definitely take advantage of its power by
learning some basic shell scripting.

~~~
daemin
I agree with you that a shell scripting language should be in every
programmers toolkit (even DOS command prompt and batch files count). Also if a
programmer is dealing with the web or web applications then JavaScript is a
must. However I must disagree on the other two languages, they do not need to
be added to the list.

Regarding PHP, you don't actually need to know it, as once you know C (and
HTML) you can easily interpret a PHP script, and make any minor modifications
if need be. I would only say to learn PHP if you intend to actively develop in
it (i.e. contribute actively to the development of an existing open-source PHP
application), as I've found that the existing PHP applications to be
sufficiently completed for my liking.

As for Perl, you can just substitute Ruby or Python (both of which are on the
list) for all of your text processing needs. Like the author I prefer Ruby,
but both languages seem to have a reasonably powerful text processing library
included.

~~~
whiskeyjack
I hate PHP with a passion but I think it's worth knowing about and I think the
claim that "knowing C" makes it easy to interpret a PHP program is not a good
assessment. Further, just knowning C doesn't mean you'll know the semantics of
webdev... which is what PHP is all about. You get domain knowledge along with
the language.

I'm also convinced that in almost every case that Ruby and Python are just
fine in place of Perl... except for text processing.

Perl's regexp engine is top notch and is an extremely key part of the language
in ways it just isn't in Python or Ruby, especially after the release of Perl
5.10. I don't see another language that can touch Perl there yet (feel free to
correct me because I'd be interested to learn).

------
bobzimuta
How about javascript? It seems most new interfaces are written in javascript -
node.js for instance, and most people need some rudimentary exposure to
javascript for web programming.

------
antirez
I could add the following languages:

SmallTalk (or SELF): After I learned some SmallTalk I realized I had never
understood the deep meaning of OOP before.

FORTH: It's the Nirvana of building abstractions in layers, starting from very
simple primitives.

Tcl: a few Tcl ideas are really worth understanding. The idea of having a
single data type in the whole language, and the [uplevel] command that
basically provides to the language the equivalent of Lisp macros but with a
trivial semantics. At implementation-level the dual-ported objects strategy is
a very powerful idea that little programmers are aware of.

Javascript or SELF: it's very interesting to understand how prototype-based
OOP works.

------
smikhanov
His C program is actually a C++ one. C does not allow declaration of variables
in the for loop (i.e. 'int i;' line has to precede the for statement). Better
not to take any programming advices from someone who can't tell C from C++.

~~~
pavlov
C99 allows this.

------
sailormoon
_There is, to me, no difference between Python and Ruby. It’s basically the
same language._

Ha!! I agree, and I'm a Ruby developer.

------
ThinkWriteMute
Why do C and C++ always get such a big fellatio in programming articles?
They're ugly languages with serious problems and bubble gum fixes.

~~~
ramchip
What other low-level language with a lingua franca status would you suggest?

~~~
ThinkWriteMute
There aren't any I would suggest. That's the problem! C is the highest used
solution and most praised when it happens to be a really bad solution for
_humans_.

~~~
docmach
C is not a bad language for humans. It's simple enough to be able to see how
the machine will execute it but not low level enough that you have to manually
manage everything, like assembly. It's not always the best choice, but for
some things it is. It's also good to know so that you understand how how
computers work instead of assuming that higher level languages are magical.

