I'm not arguing that you can't be a decent programmer without "mastering language idioms", but there are good reasons why different languages exist. If you just pick up a language without understanding the problem it solves, you're just adding a tool to your toolbox without knowing how to use it effectively, when to reach for it and how to accomplish what it does when you don't have it.
Exceptions might exist for things like APL, and to a lesser extent "extremist" languages like Haskell, Lisp, Forth, which require paradigm shifts to think about effectively.
You're right in that the more languages you learn, the easier it gets to pick up new ones, but that only happens if you make an effort to master them, so you can learn the thought processes behind them.
Of course, after a while you'll hit the point of diminishing returns, where most new languages you learn won't have a boatload of new, eye-opening, paradigm-shifting concepts for you to discover and learn. However, there are two things to keep in mind:
1) You never know when a new language will teach you something important unless you try your best to learn it properly.
2) If you think you're going to spend a lot of time working with the language X or if you're going to dive into a huge codebase written in that language, then by all means try to master it. The better you are in that language, the less code you'll write in it and the less code there is to maintain, the better.
I'm curious as to why you think there is so little overlap in those two categories. There seems to be an awfully big PHP defence force here for example.
This is a very off generalization, the language you use doesn't effect your ability as a programmer, what does is the way you use it.
Anything you can build in Ruby or Python, you could also build in PHP, it may take longer, or less time, but consider this thought as a rebuttal to your elitism for just one moment:
If PHP is such a bad language, then to create equally good programs in PHP instead of Ruby would generally mean that the average PHP programmer is better than the average Ruby programmer.
That's an off generalization too, but since we are both throwing around random, baseless comments, there's another.
So, you are responding to a strawman because you just like to argue? Try reading my post again, I didn't say anything about PHP programmers.
Sure, a decent coder can learn to write "hello world" in any of those languages, but if you need to pick up a legacy system and understand what's wrong with it (I think this is 80% of the jobs) it takes depth. If you've got enough depth in how systems work you can get sort-of up to speed in various languages quickly, but there's no substitute for taking the time to know the details of what you're doing.
As for LOB work I can say that LOB systems can be a lot of fun to develop. Your average e-commerce or social media site is basically an LOB system. Developing a system of practices that lets you deliver LOB systems on time and under budget is a challenge, but in the right environment it can be done and there is something very satisfying about delivering something that makes people's work easier.
The trouble with LOB work is that it's usually not greenfield work when it comes to you. They had some junior guy who never heard of primary key integrity build an app in an access database and a year later the database is full of junk and the app doesn't really work.
The process of rebuilding the schema is tortuous and then you need to update every single screen and script to work with the new schema and then there's the long and involved process of reconstructing what the database contents should have been with minimum data loss.
Although maintenance programming can really widen your skills and ability to deal with "it" there's also something destructive about spending all day deeply understanding the logic of terribly flawed code.
That said, his point is still largely true - you don't need your entire team to be specialists. But don't underestimate the value of knowing <some significant technology> inside out, backwards, and upside down.
Picking up a new language to the point where 6 to 12 months later "nobody will notice" on average means pretty much that you know general principles of computer science so you can stay afloat by figuring out how to translate that into your new language by hitting Google 50 times a day.
It does certainly not require you to be fluent or master the language fully.
Not exactly my experience. I agree that there are many programmers that think they are fluent in a new language after a few months.
Learning the syntax of a new language, like learning how chess pieces move, takes a few hours. Mastering a programming language is like mastering chess, a lifelong journey.