I would disagree with the second part of your statement where trying to do completely different jobs will lead to poor performance. It is indeed a double edged sword, however the real world (languages, frameworks, libraries, technologies, trends) change extremely quickly. Having the ability to react and adapt by understanding programming abstractions and fundamentals will help you rather than lead to poor performance.
On the other hand, being focused would make you a niche specialist, which in these days is a thing hard to find. One must be careful not to learn something that might be gone tomorrow. I doubt there is a big need for lua or erlang developers these days. You can be the best, but if you are not needed, this could be simply depressing rather than useful.
solipsism|6 years ago
I doubt there is a big need for lua or erlang developers these days.
Have you ever heard of painter who specializes in Behr (a brand of paint)? That is not a specialization, that's a tool choice.