3 ms·
1) I think people really overestimate the effort required to learn a new language. When I've changed projects in the past, learning the language was much easier
by jomohke 16y ago
1) I think people really overestimate the effort required to learn a new language. When I've changed projects in the past, learning the language was much easier than learning the codebase and project/business requirements.
If I was assembling a team of Java programmers today, I'd prefer to hire an excellent Python developer than an average Java developer * . A great programmer can learn a language faster than an average programmer can become a great programmer. The great programmer could be reasonably productive with Java after two weeks, but an average programmer is unlikely to improve their problem solving skills, or their ability to cleanly structure large programs after the same period of time.
* Feel free to replace 'Java' and 'Python' with any two languages within the same paradigm. I don't mean to pick on Java as a language.
2) In the article he's ignoring many advantages that smaller languages have going for them:
- Much, much higher signal-to-noise ratio when hiring: The people who currently know Scala or Haskell learnt it because they love to program – they sure as hell didn't learn them to land a job. You can't say the same about Java, C# or PHP.
- You may make your company more attractive to the best developers: A company advertising for work in Java sounds very average (and a place to work for pointy-haired bosses). It will have to work a lot harder to stand out from the crowd. A company sounds interesting if it uses interesting languages.
- Great programmers will usually prefer to work with languages they are passionate about.
- Great programmers like working with other great programmers. I can assume I'm working with better programmers when joining a Scala team than a Java team. When hiring, you have to work harder to convince me you're good if you are a Java team.
- If you only hire great programmers, you can have smaller teams: ie, you don't actually need to hire as many programmers.
- And, of course, it ignores whether these languages may be more productive to work in.
- Dylanlacey 16y agoI agree with your first point, with one caveat: Only good developers try to learn new languages enough to get good at it. At the price of arrogance, the "Average" developer in the "Average" company is pretty bad at developing. The experience I've had is that learning things is usually a good indicator of the love for doing things well. The people who write crap code tend to also be the ones who don't even want to learn new languages, let along et good at doing so.