3 comments

[ 3.2 ms ] story [ 27.1 ms ] thread
Hard agreed here. Combined with the language's poor packaging landscape, I've been finding python to be less and less productive as the team I'm on grows from 1 (me) to many. This includes using mypy religiously, always type-hinting, etc.

Many libraries just don't use them, or use them well and writing other sorts of code is harder. The language is differently adding better support for typing and generics, but I can't help but feel part of it is "too little too late".

Something like beartype is interesting: https://github.com/beartype/beartype , but at this point I'm more interested in languages like Rust, Nim, or even Kotlin (I'd add Go here as well, but it's language design ethos doesn't agree with me).

My take is that I do just fine maintaining stuff I write in Python but I dread the thought of handing it off to anyone else. Trouble w/ the packaging system and the variable configuration of the runtime in terms of character encodings is a lot of it.
> Note: Following blog post more or less applies to any dynamically typed programming language, e.g. Ruby. I am only sharing my experience and frustrations with Python, cos that's the language I use.

This post isn't about Python at all. The OP just is moving towards enjoying statically typed languages. Shortly they'll find that those languages have equal but different pitfalls, such that productivity over time will even out. Programming is hard.

Python specifically is a fine language with a terrible packaging/build ecosystem. Every language that exists has similar pros and cons.