Over in the discussion of this topic:
http://news.ycombinator.com/item?id=901101
Seven Languages in Seven Weeks
http://rapidred.com/blog/seven_languages
people were talking about how useful it is for programmers to know non-mainstream languages.
jlgosse said:
http://news.ycombinator.com/item?id=901335
I love that you are supportive of random
languages! I feel bad for you because you
will never find a job working in any of
those languages.
In the reply, dschobel said:
But there's a high correlation between
companies which trust their programmers
to use the right tool for the job and
companies which "get it" (*it* being how
to develop and maintain technology).
This is absolutely true, but there are two main points I'd like to make.
Firstly, the real benefits in having knowledge of (but preferrably experience and skill in) other languages, is not getting a job using them. The real benefit is to you, the programmer, having more ideas, knowledge, tools and skills under you belt. Even if you only ever program in C++ or Java or PHP, learning Lisp or Haskell or Prolog or Lucid will make you a better programmer. No longer will every problem look like a nail, because no longer will you only have a hammer.
Along with that, though, is the questionof experience. Reading about these techniques and ideas doesn't really help, you have to use them for real to get the benefit.
In medicine there is the mantra "See one, do one, teach one." It applies equally in programming.
Secondly, a point about companies employing programmers. When tendering for a contract in my field, it is often required that the bidder attest to the fact that the system is written in ...
> a well-known, mainstream language that
> supports modern programming techniques.
They then usually add a phrase that makes it clear that they mean C++, and if your system isn't written in C++ then you won't pass the first phase of reviews.
You, as I do, may howl and rage at such short-sightedness, but there are industries where such things are stated in contracts.
For example (and this is not my area) can you imagine supplying an Air Traffic Control system written entirely in Scala? Technically it may be a brilliant choice, but in the ultra-conservative world of ATC (and other safety-critical fields), systems written in what they will see as an untried, untested language, by programmers who by necessity only have a year of experience in that language, are a dangerous experiment.
"Nobody ever got fired for buying IBM" is still a prevailing mantra, only now it's about langauges, as well as hardware. You can't supply anything other than COTS (Commercial off-the-shelf) hardware, by which they mean PCs.
In the fast-paced, nothing is the same week-to-week world of web development and web-based applications it doesn't matter, but in my world it does.
I just thought it might be interesting for some of you to hear about a different context.
http://news.ycombinator.com/item?id=901101
http://rapidred.com/blog/seven_languages
http://news.ycombinator.com/item?id=901335