7 ms·
python has one of the most fractured development ecosystems of any moderately used language. i’m pretty convinced python is a language that attracts poor develo
by foolfoolz 2y ago
python has one of the most fractured development ecosystems of any moderately used language. i’m pretty convinced python is a language that attracts poor development practices and magnifies them due to its flexibility. the people who love it don’t understand the extreme flexibility makes it fragile at scale and are willing to put up with its annoyances in an almost stockholm syndrome way
- bvrmn 2y agoThe reason is a popularity not a technical one. It's inevitable to get a diverse interest to improve different parts of ecosystem by different parties.
- Const-me 2y ago> a language that attracts poor development practices I agree, but note there’s another way to frame it: “python can be used by people who aren’t professional software developers”.
- miohtama 2y agoC/C++ is more fractured. While Python is fractured, it is nowhere near problems of C ecosystems.
- rbanffy 2y agoAs anyone who has tried to build multi-platform software with C or C++ can easily tell you. It's almost a relief AIX, Solaris, and HP/UX are either very niche, or going the way of the Dodo.
- _fizz_buzz_ 2y agoIt’s also fractured because it has such a massive user base that use it for very different applications with very different priorities.
- Quothling 2y agoI think any programming language with a lot of popularity attracts poor development practices. Simply because a lot of programmers don't actually know the underlying processes of what they build. The flip-side of this is that freedom and flexibility also gives you a lot of control. Yes, it's very easy to write bad Python. In fact it's probably one of Python's weaknesses as you point out. If you're going to iterate over a bunch of elements, you probably expect your language standard libraries to do it in an efficient way, and Python doesn't necessarily do that. What you gain by this flexibility (and arguably sometimes poor design) is that it's also possible to write really good Python and tailor it exactly to your needs. I think Python scales rather well in fact. Django is a good example, as it's a massive workhorse for a lot of the web (Instagram still uses their own version of it as one example). It does so sort of anonymously similar to how PHP and Ruby do it outside of the hype circle, but it does it. One of the advantages Python has, even when it's bad, is that it's often "good enough". 95% of the software which gets written is never really going to need to be extremely efficient. I would argue that in 2024 Go is actually the perfect combination of the good stuff from both Python and C. But those things aren't necessarily easy to get into if you're not familiar with something like memory management, (maybe strict typing?), explicit error handling and the differences between an interpreted and compiled language. Anyway I don't think Python is anymore annoying than any other language. The freedom it gives you needs to be reigned in and if you don't then you'll end up with a mess. A mess which is probably perfectly fine.
- gjvc 2y agopsst "reined in" https://www.merriam-webster.com/grammar/do-you-rein-in-or-reign-in-something https://www.merriam-webster.com/grammar/do-you-rein-in-or-re...
- Quothling 2y agoThanks! I'm not a native English speaker so I'll probably fuck this up again but it's nice to know. Reign would be cooler though. I guess I could say "you gotta reign your developers use of Python".
- trkannr 2y ago
- est 2y ago> most fractured development ecosystems of any moderately used language Can you elaborate? What's done wrong with Python and right with other "moderately used language" ? For start, C/C++ doesn't even have an official ecosystem. For Java or Golang, it looks better only because the "ecosystem" does not always include native extensions like cgo or JNI. Once you add them the complexity were no better than Python's
- rwmj 2y agoPython .pth files are horrific. Here's an actual .pth file I was dealing with the other day (from Google Cloud Storage) which completely prevents you from overriding the module using PYTHONPATH: import sys, types, os;has_mfs = sys.version_info > (3, 5);p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('google',));importlib = has_mfs and __import__('importlib.util');has_mfs and __import__('importlib.machinery');m = has_mfs and sys.modules.setdefault('google', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('google', [os.path.dirname(p)])));m = m or sys.modules.setdefault('google', types.ModuleType('google'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p)
- talideon 2y agoIf .pth files are the worst thing you can find to complain about, Python's doing pretty well. That horrific .pth file in question is better placed as the feet of its creators than the mechanism itself.
- rwmj 2y agoThe fact they considered allowing executable code in path lookups shows a certain attitude.
- oefrha 2y agoIt shows that the language is highly dynamic and you can patch anything? The .pth mechanism allows the party controlling the Python installation (site) to run some init code before any user code, basically an rc mechanism. Nothing more, nothing radical. Maybe you’re unhappy with the dynamism, in which case your complaint is misplaced.
- WhereIsTheTruth 2y agoit's not 'fractured', it's just fragmented, and it's not necessarily a bad thing, it gives plenty of room for R&D and experimentation if something doesn't end up working well, you pivot
- jaimebuelta 2y agoThere are only two kinds of languages: the ones people complain about and the ones nobody uses.
- poincaredisk 2y ago>the people who love it don’t understand the extreme flexibility makes it fragile at scale and are willing to put up with its annoyances in an almost stockholm syndrome way The people who love it understand that its extreme flexibility makes it applicable everywhere, while academic purity mostly doesn't work in the real work. They also prioritize getting things done over petty squabbling, but they know how to leverage available tooling where reliability is crucial. (See, I can generalize too)
- redman25 2y agoPython with types enforced by CI isn’t too bad. Or did you have something else in mind?
- analog31 2y agoWould some other language have become just as fragmented if it had gained the same level of popularity across such a broad range of user interests?
- slashdave 2y agoPerl says "hi"