Remix.run Logo
felipeccastro 3 hours ago

It might be the opposite. Python apps still get written despite the performance hit, because understandability matters more than raw performance in many cases. Now that we’re all code reviewers, that quality should matter more, not less. Programmer time is still more expensive than machine time in many cases.

jact 3 hours ago | parent | next [-]

Are Python apps really so easy to understand? I seriously disagree with this idea given how much magic goes behind nearly every line of Python. Especially if you veer off the happy path.

I certainly am no fan of C but from a certain point of view it’s much easier to understand what’s going on in C.

fwip 3 hours ago | parent | next [-]

Well-written Python apps are very easy to understand, especially if they use well-designed libraries.

The 'magic' in Python means that skilled developers can write libraries that work at the appropriate level of abstraction, so they are a joy to use.

Conversely, it also means that a junior dev, or an LLM pretending to be a junior dev, can write insane things that are nearly impossible to use correctly.

awesome_dude 3 hours ago | parent | prev [-]

One of the (many) reasons that I moved away from Python was the whole "we can do it in 3 lines"

Oh cool someone has imported a library that does a shedload of really complicated magic that nobody in the shop understands - that's going to go well.

We're (The Software Engineering community as a whole) are also seeing something similar to this with AI generated code, there's screeds of code going into a codebase that nobody understands is full across (give a reviewer a 5 line PR and they will find 14 things to change, give them a 500 line PR and LGTM is all you will see).

Larrikin 3 hours ago | parent | prev | next [-]

I've cooled significantly on Python now that there are a number of strongly typed languages out there that have also gotten rid of the boilerplate of languages Python used to compete with.

Readability gets destroyed when a function can accept 3 different types, all named the same thing, with magic strings acting as enums, and you just have to hope all the cases are well documented.

awesome_dude 3 hours ago | parent [-]

Type systems document data movement throughout applications :-)

And the other problem with functions accepting dynamic types is that your function might only in reality handle one type, it still has to defensively handle when someone passes it things that will cause an error.

All the dynamic typing really did is move the cognitive load from the caller to the called.

viraptor 3 hours ago | parent | prev [-]

I'd much more prefer to review something written in Rust or Go, even if I'd much rather write it in Python if I had to do it manually.

The better structure and clear typing makes the review much easier.

awesome_dude 3 hours ago | parent [-]

My biggest reason for liking Go, over Python can be summed up in one word: Discipline.

Python was supposed to be embracing the idea of "there's only one way to do it", which appeals after Perl's "There's many ways to do it", but the reality is, there's 100 ways to do it, and they're all shocking.