Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

on the python paradox

70 views
Skip to first unread message

Sabrina Almodóvar

unread,
Dec 5, 2022, 8:38:05 PM12/5/22
to
The Python Paradox
Paul Graham
August 2004

In a recent talk [1] I said something that upset a lot of people: that
you could get smarter programmers to work on a Python project than you
could to work on a Java project.

I didn't mean by this that Java programmers are dumb. I meant that
Python programmers are smart. It's a lot of work to learn a new
programming language. And people don't learn Python because it will
get them a job; they learn it because they genuinely like to program
and aren't satisfied with the languages they already know.

Which makes them exactly the kind of programmers companies should want
to hire. Hence what, for lack of a better name, I'll call the Python
paradox: if a company chooses to write its software in a comparatively
esoteric language, they'll be able to hire better programmers, because
they'll attract only those who cared enough to learn it. And for
programmers the paradox is even more pronounced: the language to
learn, if you want to get a good job, is a language that people don't
learn merely to get a job.

Only a few companies have been smart enough to realize this so
far. But there is a kind of selection going on here too: they're
exactly the companies programmers would most like to work for. Google,
for example. When they advertise Java programming jobs, they also want
Python experience.

A friend of mine who knows nearly all the widely used languages uses
Python for most of his projects. He says the main reason is that he
likes the way source code looks. That may seem a frivolous reason to
choose one language over another. But it is not so frivolous as it
sounds: when you program, you spend more time reading code than
writing it. You push blobs of source code around the way a sculptor
does blobs of clay. So a language that makes source code ugly is
maddening to an exacting programmer, as clay full of lumps would be to
a sculptor.

At the mention of ugly source code, people will of course think of
Perl. But the superficial ugliness of Perl is not the sort I
mean. Real ugliness is not harsh-looking syntax, but having to build
programs out of the wrong concepts. Perl may look like a cartoon
character swearing, but there are cases where it surpasses Python
conceptually.

So far, anyway. Both languages are of course moving targets. But they
share, along with Ruby (and Icon, and Joy, and J, and Lisp, and
Smalltalk) the fact that they're created by, and used by, people who
really care about programming. And those tend to be the ones who do it
well.

(*) Footnotes

[1] Audio of the talk, also attached to this post
http://origin.conversationsnetwork.org/Paul%20Graham%20-%20Great%20Hackers.mp3

David Lowry-Duda

unread,
Dec 7, 2022, 11:07:31 AM12/7/22
to
On Mon, Dec 05, 2022 at 10:37:39PM -0300, Sabrina Almodóvar wrote:
> The Python Paradox
> Paul Graham
> August 2004
>
> [SNIP]
>
> Hence what, for lack of a better name, I'll call the Python paradox:
> if a company chooses to write its software in a comparatively esoteric
> language, they'll be able to hire better programmers, because they'll
> attract only those who cared enough to learn it. And for programmers
> the paradox is even more pronounced: the language to learn, if you
> want to get a good job, is a language that people don't learn merely
> to get a job.
>
> [SNIP]

I wonder what the appropriately esoteric language is today?

We can sort of think of go/rust as esoteric versions of C/C++. But what
would be the esoteric python?

Perhaps Julia? I don't know of any large software projects happening in
julia world that aren't essentially scientific computing libraries (but
this is because *I* work mostly with scientific computing libraries and
sometimes live under a rock).

- DLD

Weatherby,Gerard

unread,
Dec 7, 2022, 1:10:05 PM12/7/22
to
I use asyncio in a couple of places. Haven’t quite grokked it yet, though.

From: Python-list <python-list-bounces+gweatherby=uchc...@python.org> on behalf of Stefan Ram <r...@zedat.fu-berlin.de>
Date: Wednesday, December 7, 2022 at 12:28 PM
To: pytho...@python.org <pytho...@python.org>
Subject: Re: on the python paradox
*** Attention: This is an external email. Use caution responding, opening attachments or clicking on links. ***

David Lowry-Duda <da...@lowryduda.com> writes:
>I wonder what the appropriately esoteric language is today?

How many Python programmers grog metaclasses or asyncio?
So, I'd say: The two streams have converged. Python is the
esoteric mainstream language.


--
https://urldefense.com/v3/__https://mail.python.org/mailman/listinfo/python-list__;!!Cn_UX_p3!mvBtuPjNnWaXWGLt8aXlimysNpjtW4fP_ls5-vLPv8qWMyafvYcP6sgo0jcV7ngjmV1E3F0zJ5ipXlbjkBF8_l8$<https://urldefense.com/v3/__https:/mail.python.org/mailman/listinfo/python-list__;!!Cn_UX_p3!mvBtuPjNnWaXWGLt8aXlimysNpjtW4fP_ls5-vLPv8qWMyafvYcP6sgo0jcV7ngjmV1E3F0zJ5ipXlbjkBF8_l8$>

Martin Di Paola

unread,
Dec 11, 2022, 8:58:52 AM12/11/22
to
>On Mon, Dec 05, 2022 at 10:37:39PM -0300, Sabrina Almodóvar wrote:
>> The Python Paradox
>> Paul Graham
>> August 2004
>>
>>[SNIP]
>>
>>Hence what, for lack of a better name, I'll call the Python paradox:
>>if a company chooses to write its software in a comparatively
>>esoteric language, they'll be able to hire better programmers,
>>because they'll attract only those who cared enough to learn it. And
>>for programmers the paradox is even more pronounced: the language to
>>learn, if you want to get a good job, is a language that people
>>don't learn merely to get a job.
>>
>>[SNIP]

I don't think that an esoteric language leads to better programmers.

I know really good people that work mostly in assembly which by today
standard would be considered "esoteric".

They are really good at their field but they write shitty code in higher
languages as python.

That same goes for the other direction: I saw Ruby programmers writing C
code and trust me, it didn't result in good quality code.

I would be more inclined to think that a good programmer is not the one
that knows an esoteric language but the one that can jump from one
programming paradigm to another.

And when I say "jump" I mean that he/she can understand the problem to
solve, find the best tech stack to solve it and do it in an efficient
manner using that tech stack correctly.

It is in the "using that tech stack correctly" where some programmers
that "think" they know languages A, B and C get it wrong.

Just writing code that "compiles" and "it does not immediately crash" is
not enough to say that "you are using the tech stack correctly".


On Wed, Dec 07, 2022 at 10:58:09AM -0500, David Lowry-Duda wrote:
>On Mon, Dec 05, 2022 at 10:37:39PM -0300, Sabrina Almodóvar wrote:
>> The Python Paradox
>> Paul Graham
>> August 2004
>>
>>[SNIP]
>>
>>Hence what, for lack of a better name, I'll call the Python paradox:
>>if a company chooses to write its software in a comparatively
>>esoteric language, they'll be able to hire better programmers,
>>because they'll attract only those who cared enough to learn it. And
>>for programmers the paradox is even more pronounced: the language to
>>learn, if you want to get a good job, is a language that people
>>don't learn merely to get a job.
>>
>>[SNIP]
>
>I wonder what the appropriately esoteric language is today?
>
>We can sort of think of go/rust as esoteric versions of C/C++. But
>what would be the esoteric python?
>
>Perhaps Julia? I don't know of any large software projects happening
>in julia world that aren't essentially scientific computing libraries
>(but this is because *I* work mostly with scientific computing
>libraries and sometimes live under a rock).
>
>- DLD
>--
>https://mail.python.org/mailman/listinfo/python-list

Sabrina Almodóvar

unread,
Dec 11, 2022, 1:22:31 PM12/11/22
to
On 11/12/2022 10:57, Martin Di Paola wrote:
>> On Mon, Dec 05, 2022 at 10:37:39PM -0300, Sabrina Almodóvar wrote:
>>>                         The Python Paradox
>>>                            Paul Graham
>>>                            August 2004
>>>
>>> [SNIP]
>>>
>>> Hence what, for lack of a better name, I'll call the Python paradox:
>>> if a company chooses to write its software in a comparatively
>>> esoteric language, they'll be able to hire better programmers,
>>> because they'll attract only those who cared enough to learn it. And
>>> for programmers the paradox is even more pronounced: the language to
>>> learn, if you want to get a good job, is a language that people don't
>>> learn merely to get a job.
>>>
>>> [SNIP]
>
> I don't think that an esoteric language leads to better programmers.

When you say this, I interpret it as a theorem, A implies B, but surely
nobody would be so foolish to claim such thing, so perhaps you can
review your reading or writing.

> I know really good people that work mostly in assembly which by today
> standard would be considered "esoteric".

So, I wouldn't consider assembly esoteric, but I certainly would not try
to define esoteric.

> They are really good at their field but they write shitty code in higher
> languages as python.

I bet. If all they know is assembly, then they master very few
linguistic abstractions.

> That same goes for the other direction: I saw Ruby programmers writing C
> code and trust me, it didn't result in good quality code.

A Ruby person who doesn't know C must also know very little about
machines and operating systems, so that is bound to failure in C.

> I would be more inclined to think that a good programmer is not the one
> that knows an esoteric language but the one that can jump from one
> programming paradigm to another.

That makes a lot of sense. Such person knows so many ways of
expression, which most likely implies mastery of linguistic abstractions
and expression.

> And when I say "jump" I mean that he/she can understand the problem to
> solve, find the best tech stack to solve it and do it in an efficient
> manner using that tech stack correctly.

Got ya.

> It is in the "using that tech stack correctly" where some programmers
> that "think" they know languages A, B and C get it wrong.

I agree with that too.

> Just writing code that "compiles" and "it does not immediately crash" is
> not enough to say that "you are using the tech stack correctly".

So true.

Good thoughts.

Abdur-Rahmaan Janhangeer

unread,
Dec 11, 2022, 3:43:43 PM12/11/22
to
I choose Python and still stick with it as default as I choose
Python because of its design beauty. Typing does not mean
mandatory braces. There can be an indentation-based language
that is strongly typed.

Python is beautiful in itself. Beautiful to look at. Source code should
be easy for the average human to relate to and connect with easily.
Being more alien-ware-like does not magically increase performance.
Our taste and quality bar should be high after so much time has passed.

I don't see a language as beautiful as it is front-end wise.

"And people don't learn Python because it will
get them a job; they learn it because they genuinely like to program
and aren't satisfied with the languages they already know."

Kind Regards,

Abdur-Rahmaan Janhangeer
about <https://compileralchemy.github.io/> | blog
<https://www.pythonkitchen.com>
github <https://github.com/Abdur-RahmaanJ>
Mauritius

Sylvia Else

unread,
Feb 11, 2023, 4:57:35 PM2/11/23
to
On 06-Dec-22 12:37 pm, Sabrina Almodóvar wrote:
> The Python Paradox
> Paul Graham
> August 2004
>
> In a recent talk [1] I said something that upset a lot of people: that
> you could get smarter programmers to work on a Python project than you
> could to work on a Java project.
>
> I didn't mean by this that Java programmers are dumb. I meant that
> Python programmers are smart. It's a lot of work to learn a new
> programming language. And people don't learn Python because it will
> get them a job; they learn it because they genuinely like to program
> and aren't satisfied with the languages they already know.
>
>
Then we're doomed, because Python is appallingly slow. Not even Moore's
law can save us.

And God help us if someone devises another popular language that is
interpreted by a program written in Python. I expect people are working
on something at this very moment.

Sylvia.

Computer Nerd Kev

unread,
Feb 11, 2023, 5:35:47 PM2/11/23
to
In comp.misc Stefan Ram <r...@zedat.fu-berlin.de> wrote:
> Sylvia Else <syl...@email.invalid> writes:
>>Then we're doomed, because Python is appallingly slow. Not even Moore's
>>law can save us.
>
> Well, then what language do you use for what kind of projects?

Cue flame war.

> BTW: Maybe you are new to this newsgroup? So let me inform
> you that if you post to comp.lang.python, sometimes, a computer
> set up by a mailing-list person will make a copy of your post and
> automatically post it to his Python mailing list, which possibly
> also might be published in the Web - all without your consent.

We all show up on narkive.com (and probably elsewhere) anyway, even
you with your X-No-Archive header.

--
__ __
#_ < |\| |< _#

Sylvia Else

unread,
Feb 11, 2023, 5:47:01 PM2/11/23
to
On 12-Feb-23 9:19 am, Stefan Ram wrote:
> Sylvia Else <syl...@email.invalid> writes:
>> Then we're doomed, because Python is appallingly slow. Not even Moore's
>> law can save us.
>
> Well, then what language do you use for what kind of projects?
>
> BTW: Maybe you are new to this newsgroup? So let me inform
> you that if you post to comp.lang.python, sometimes, a computer
> set up by a mailing-list person will make a copy of your post and
> automatically post it to his Python mailing list, which possibly
> also might be published in the Web - all without your consent.
>
>

I can promise you that I am totally unconcerned about that.

Python is reasonably useful for building a framework for running other
programs, though I still wish it were strongly typed, rather than using
the wishy-washy duck typing. But for any serious computing, forget it,
and I've seen it used for neural-networking projects, for Pete's sake.

Sylvia.

Anton Shepelev

unread,
Feb 13, 2023, 5:48:52 AM2/13/23
to
Stefan Ram:

> Well, then what language do you use for what kind of
> projects?

Julia is faster and expressively more powerful than Python.

--
() ascii ribbon campaign -- against html e-mail
/\ www.asciiribbon.org -- against proprietary attachments

Anton Shepelev

unread,
Feb 13, 2023, 5:53:51 AM2/13/23
to
Stefan Ram:

> Well, then what language do you use for what kind of
> projects?

Python, IMHO, is overestimated. Its popularity is mostly due
to the enormous amount of very good libraries, written in C
for speed. Nothing efficient can be written in bare Python.
0 new messages