Silly Bytes has moved - Silly Bytes se trasladó

www.sillybytes.net

20 abr. 2016

The Python Paradox is backwards

Paul Graham wrote a great short article back in 2004 called The Python Paradox where he states that if you look for python programmers you will end up with the best ones. The logic behind this is as follows:


Python is an esoteric language that universities and schools don't teach, so people that knows python are self thought, they know that their python skills wouldn't get them a better job so they do it for fun only; Considering that learning a new programming language can not be precisely a trivial task and that python knowledge wouldn't rank you higher for hiring we can infer that it takes a really passionate person, a hacker, to learn and use python.


That was very true 12 years ago, but now almost every single school and university not only teaches python, but use it as the primary language, and even as the only language!. Nowadays even some non technical schools teaches programming as a form of introducing their students to computers-logical thinking and they all use python precisely because of its simplicity; They even tend to over simplify an already simple language so their less clever students can catch it with ease.



This leads to the current situation: if you look for python programmers you will get a lot of good programmers, thats for sure, but you will also get some of the very worst ones; Actually the most part will be bad programmers. As the language gets more and more popular this disproportion continues to grow in a way that the paradox tends not only to completely fail but also to get reversed.

Today everyone knows python and maybe is the only language they know because is the only language they were forced to learn in school. For others, python is the language they use the most because it was the main language of choice in university.

Those excellent passionate programmers and real hackers who learned python because of fun 10 or 15+ years ago are now an infinite reduced minority buried among of tons of lame programmers mass produced at PhythonSchools which is nowadays kind of the new Joel's JavaShools.
Mr. Graham said:

I didn't mean by this that Java programmers are dumb. I meant that Python programmers are smart.

And here I'm not saying that python programmers are dumb. There are a lot of excellent programmers out there that use python as their language of choice, but if you're going to use python as the filter described in Graham's essay in 2016+, be prepared to end up looking for a needle in a haystack.

Even though I think the Python Paradox does not longer work, I totally agree with Graham's thoughts in a deeper way. The language of the original paradox (python) may no longer be a badge of great programmers, but because of the paradox's time sensitivity it tends to shift towards another languages that may or may not be the newer ones.

These days C and C++ programming languages are very rarely used as teaching languages and students will only get lots of Python and Java in the class rooms. I acknowledge that this might be very geographical sensitive and that schools and universities in different parts of the world will take different approaches, but still Python gets far more attention for teaching than C or C++ does. Lots of students will get a C/C++ semester or so (Over simplified C/C++ in most cases) but then forget about it and continue to write Python or Java only.

Now consider the fact that C/C++ are by a fair amount harder to learn and use than python if it's the first time you get in touch with computer programming, and that if you're not doing operating system programming you wouldn't actually need to write C and can perfectly make a whole career using whatever language you like without ever write a line of C/C++.

The Paradox might now point to (but not be limited to) C/C++. Take a bunch of new generations programmers out of a Python/JavaSchool, pick those who know and like to write C/C++ and chances are you'll end up with passionate hackers.

Take into account that the Paradox point to different languages over time, but it does not point only forward to newer languages but also to older ones, and that this pointer can actually tend to move away from the trending languages. Take {Perl, Lisp, Scheme, Haskell, Rust, Go} as another example; What kind of people would like to learn by them selfs a "difficult/complex" language that is not used as much as Python or Java and that will not make you more appealing for a job? - Real passionate hackers that enjoy it, and do it well, just as the paradox predicts.