[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ESR "Waning of Python" post

On 2018-10-09, Paul Rubin <no.email at nospam.invalid> wrote:
> If anyone cares, Eric Raymond posted a big rant saying
> basically he's giving up on Python and porting a big program
> he's working on to Go. Reasons he gives are

> performance (Go is 40x faster for his app)
> memory footprint (high overhead of simple Python objects cause
> his 64GB 16 core box to OOM on his data)

As Stephen said, it's sort of silly not to be aware of those
issues going in.

> the GIL (15/16th of his CPUs are unused, of course there are
> ways around that but I'm summarizing what he says even when I
> don't fully agree),

Channels are a big selling point of Go, no argument there. Using
them right is considerably trickier than it appears at first, but
they have good syntax and feel lightweight.

> Unicode (he says Go's uniform use of UTF8 is better than
> Python's bloaty codepoint lists),

Go's system for character encoding is objectively worse, IMHO.

Both Python and Go require you to decode to an internal unicode
storage format on the way into your program, and to encode it
again on the way out.

But the internal storage formats are not equally usable. The
internal storage format is UTF8 in Go, but it's regarded simply as
bytes by most normal operations and functions. You must carefully
use a different set of functions and operators to regard the
bytes as unicode code-points. So Go makes it easy to do things
incorrectly, a la Python 2, which is a benefit only if you just
don't care to do things correctly.

On the other hand, I only used Go until it made me feel really
annoyed that I couldn't build my own data types and interfaces
without feeling like they were 2nd or 3rd class citizens, forced
to carry around heavy, clunking chains, while the builtin types
and interfaces enjoyed unfair syntax and usability privileges.

I tried to be open minded about the error propogation mechanism
in Go, but it remained stubbornly frustrating, especially when
designing my own interface.

> It is ranty and there are parts I don't agree with, but I think
> it is worth reading.  It is around 300 lines, followed by
> several pages of reader comments.
> http://esr.ibiblio.org/?p=8161

Thanks for sharing it.

Neil Cerutti