The Python Paradox
The latest issue of the Zinc Prod podcast discussed, among other things, the so-called Python Paradox.
Oddly enough, on Habré there is practically no mention of this paradox. Despite the fact that, despite its simplicity, the idea is very interesting
Back in 2004, when Python was something unusual, non-mainstream, an article by Paul Graham came out in which he shared his empirical observation: the Python programmers he knows are much more savvy than Java programmers.
Later, Paul explained that he did not mean that Java programmers are dumb. He simply emphasized that people who write in Python (then a little-known language) are geeks who program for fun; they are broad-minded people who see the flaws of some languages and the dignity of others.
It is important to emphasize that Java was a common language, but Python was not - that’s the whole point. It was impossible to find a job in Python, they wrote on it only because it was liked as a language, as a hobby.
Transferring this situation to today's realities, one could say that the average Rust or Elixir programmer will, on average, think better than the average "pure" Java or PHP programmer.
Hence Paul Graham draws two conclusions, paradoxes
Conclusion of Paul for business
If a company chooses a relatively esoteric language for a new project, then those whom it hires will be excellent programmers, because they did a great job of learning the language, and they did it for their pleasure. And they will be interested to work.
Paul's conclusion to the programmer
The language you need to learn in order to get a good interesting job is the language that people learn not only to get a job.
A couple more of my findings
- As the saying goes, one cannot just take and return 2004. Now everything has changed, it has become somewhat easier. For example, microservice architecture allows you to use the zoo of languages and technologies, and thereby attract motivated programmers in esoteric languages who will be happy to work for days and even nights, joyfully solving problems that will get in their way
- It is not necessary to divide everything into black and white. A mixed approach is also possible. If the project has already been written in conditional Java, and it is necessary to hire Javists, then you should definitely ask at the interview what languages the person wrote. If he has projects or pull-quests in languages on the github that cannot be properly found for work , then this is a FAT plus
- When a language just releases a stable version, motivated pros write on it. But over time, due to the increased popularity, the whole people will fall there, and a bunch of govnokoda will appear. It is especially interesting to observe the Go language: a language with a rather low threshold (the syntax is very simple), while it has become very popular and highly paid. Now there, I feel, average quality will drop dramatically