| Yes and yes and it's perfectly fine in my opinion. It seems to me that programming language count is overvalued in online discussions on e.g. HN or reddit.
The argument is that each extra programming language makes one a better programmer and it's one's duty to learn as many as possible. However, this is not realistic: * becoming fluent is a language means knowing the style, idioms, libraries and ecosystem and very importantly delivering software created with that language. It will take years to reach this level (see Norvig's essay about learning a programming language in 10 years). * knowledge has a half-life: not using a language means that your knowledge will slowly become obsolete, one will forget library usage patterns, etc. This can happen very fast for e.g Javascript or slowly for e.g: C. * a programming language is a very complex tool and it's really hard to be and remain fluent in (my estimate) more than three languages at the same time. As an example, I've already forgotten a lot of Java and a lot of Android in less than 9 months - I can ramp up pretty fast, a few weeks, but I won't be anywhere near the level of productivity of a full-time Java dev. I have the feeling that most devs that know many languages know them well enough, not inside out. * learning languages will take away time that can be better spent learning other important topics such as architecture, people skills, domain-specific topics, etc. Finally there's personal preference. Some people like X, have specialised in it and would like to use it as much as possible. Why shouldn't they? If you invest years of your life in something, you don't switch unless you have a good reason. As long as one is successful using this strategy, I don't see anything wrong. Software engineering isn't supposed to be a fashion show - we should use what works and switch only when there's a need. |