4 ms·
> But the other problem, though, is that because Python is (was?) so simple and so ergonomic to use, new developers have been flocking to it, and adopting it fo
by guitarbill 7y ago
> But the other problem, though, is that because Python is (was?) so simple and so ergonomic to use, new developers have been flocking to it, and adopting it for use in building large production systems that might have been better off written in different languages that are much less suited to exploring but more suited to long-term, stable systems.
That statement... first, there isn't any evidence this is true. For the Instagram example, if you're that big, you're going to have scaling issues, but it's an incredible position to be in. I've seen Java GC issues at large scale. That's the price you pay for GC.
That is to say this is a feature, not a bug. CPU is cheap. Productivity is hard. C code can be slow if written badly. Obviously Python isn't without it's trade-offs, but to imply it isn't suited for long-term, stable projects is incorrect.
It takes time for developers to learn a new language. Who's to say they wouldn't have made similar mistakes in other languages?
Again, course there's a trade-off, and Python isn't without it's flaws. But to pretend another language would have solved everything - development doesn't work that way. And scaling issues are a sign of success. You might not have made it that far with another language.
So pick wisely, and build stuff, and remember the choice isn't final.
- ggregoire 7y agoThe part you quoted is not about scalability.
- gloflo 7y agoWould you mind being so kind as to explain what it is about then? Saying something is wrong without saying why or how is just noise.
- ggregoire 7y agoShe's talking about Python being a dynamically-typed & interpreted language, making it "simple and so ergonomic to use [for] new developers" and "[suitable] to exploring", but "[less suitable] to long-term, stable systems". It's not specific to Python. Big projects written in dynamically-typed languages are hard to reason about and maintain. And the lack of compiler makes it harder to catch typos, incorrect types, non-handled null/None values, etc… before runtime.
- guitarbill 7y ago> And the lack of compiler makes it harder to catch typos, incorrect types, non-handled null/None values, etc… before runtime. linters exist for a reason. it isn't so clear-cut any more, either, with type hints in python that can now be enforced, although honestly i haven't experimented with that much, since i don't think it's necessary. > Big projects written in dynamically-typed languages are hard to reason about and maintain. let's not pretend statically-typed languages are always easier to reason about. throw enough interfaces into a Java project or templates into a C++ project and they're also hard to reason with. you may have had bad experiences with dynamically-typed stuff, or simply prefer static typing, but these seem more opinions than facts. and again, i'm happy to argue that it's hard to predict the future. many projects benefit more from the increased velocity dynamically-typed languages offer at the start (the exploration if you will), than trying to build a system for millions of users from the start. that probably makes sense for FAANG projects, but for most it's overkill. so the suitability towards "long-term, stable systems" is half true. hindsight can be powerful, but can also be misleading.