I recently joined a company that writes Python after working for a Kotlin shop for the past four years. I miss Java/Kotlin every single day. I have no gripes with Python itself and I enjoy writing it, but I've still never seen a large python codebase that remains as coherent, structured and understandable as the average large JVM language codebase. It's as if the structure of the language itself materially informs the structure of the codebase as it grows.
jemiluv8|6 months ago
You moved from a typed - super object oriented/functional language/platform to a dynamic/untyped mostly procedural/functional language
Dynamic and untyped languages always had this issue - coherence, structure in large projects (without enforcing project wide conventions). Without strong conventions, the codebase will naturally grow in weird unrestrained ways. Whereas with the Java/Kotlin ecosystem, even things like naming of class files has conventions enforced by the compiler so you won't open a file like Person.class and find a People class defined within. Without enforcing conventions, that's what you get in python.