The Python Paradox

The Python Paradox

August 2004

In a recent talk I said some­thing that upset a lot of peo­ple: that you could get smarter pro­gram­mers to work on a Python project than you could to work on a Java project.

I didn’t mean by this that Java pro­gram­mers are dumb. I meant that Python pro­gram­mers are smart. It’s a lot of work to learn a new pro­gram­ming lan­guage. And peo­ple don’t learn Python because it will get them a job; they learn it because they gen­uinely like to pro­gram and aren’t sat­is­fied with the lan­guages they already know.

Which makes them exactly the kind of pro­gram­mers com­pa­nies should want to hire. Hence what, for lack of a bet­ter name, I’ll call the Python para­dox: if a com­pany chooses to write its soft­ware in a com­par­a­tively eso­teric lan­guage, they’ll be able to hire bet­ter pro­gram­mers, because they’ll attract only those who cared enough to learn it. And for pro­gram­mers the para­dox is even more pro­nounced: the lan­guage to learn, if you want to get a good job, is a lan­guage that peo­ple don’t learn merely to get a job.

Only a few com­pa­nies have been smart enough to real­ize this so far. But there is a kind of selec­tion going on here too: they’re exactly the com­pa­nies pro­gram­mers would most like to work for. Google, for exam­ple. When they adver­tise Java pro­gram­ming jobs, they also want Python experience.

A friend of mine who knows nearly all the widely used lan­guages uses Python for most of his projects. He says the main rea­son is that he likes the way source code looks. That may seem a friv­o­lous rea­son to choose one lan­guage over another. But it is not so friv­o­lous as it sounds: when you pro­gram, you spend more time read­ing code than writ­ing it. You push blobs of source code around the way a sculp­tor does blobs of clay. So a lan­guage that makes source code ugly is mad­den­ing to an exact­ing pro­gram­mer, as clay full of lumps would be to a sculptor.

At the men­tion of ugly source code, peo­ple will of course think of Perl. But the super­fi­cial ugli­ness of Perl is not the sort I mean. Real ugli­ness is not harsh-looking syn­tax, but hav­ing to build pro­grams out of the wrong con­cepts. Perl may look like a car­toon char­ac­ter swear­ing, but there are cases where it sur­passes Python conceptually.

So far, any­way. Both lan­guages are of course mov­ing tar­gets. But they share, along with Ruby (and Icon, and Joy, and J, and Lisp, and Smalltalk) the fact that they’re cre­ated by, and used by, peo­ple who really care about pro­gram­ming. And those tend to be the ones who do it well.

Fonte: http://www.paulgraham.com/pypar.html

  1. Orig­i­nal post by mattusximus

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>