5 ms·
They should just go ahead and make breaking changes after a big announcement so that everyone is clear that will no backward compatibility at the next major rel
by lenkite 3y ago
They should just go ahead and make breaking changes after a big announcement so that everyone is clear that will no backward compatibility at the next major release. Otherwise the majority of design, development and mental energy will be spent in compatibility issues leading to full-burnout with little to no feature gain.
You only need to look at C++ papers where superhumanly smart and driven IQ 200+ people desperately try with all their will to define a language or stdlib feature/improvement that preserves ABI backward compatibility and then finally give up and throw the towel after two dozen iterations and rejections. And also suffer from severe burnout in the process.
- EchoChamberMan 3y agoPretty sure Deno for Node has similar problems. Sometimes you just gotta let the past go.
- LunaSea 3y agoOnly if the delta of the improvements is big enough which isn't the case for Deno
- EchoChamberMan 3y agoSorry what? I'm saying Deno suffers due to Node backward compatibility. A write up about it: https://www.baldurbjarnason.com/2024/disillusioned-with-deno/ https://www.baldurbjarnason.com/2024/disillusioned-with-deno...
- zokier 3y agoOr just make new project and let community deal with requests if they want.
- meitham 3y agoI don’t see a market need for a new one. Python’s own stdlib urllib is pretty good for most cases, except async, and aiohttp is covering that gap.
- simonw 3y agoHTTPX is the new one, and it's very popular. I've been using it in place of Requests for a few years now. https://pypistats.org/packages/httpx https://pypistats.org/packages/httpx - 2 million downloads a day (requests has 15 million https://pypistats.org/packages/requests https://pypistats.org/packages/requests)
- meitham 3y agoDownload count is an interesting measure but I can’t tell if urllib3 is more popular than request or it ranks higher up only because it’s a direct dependency of botocore! I wish there was a way to categorise these downloads by python versions.
- SushiHippie 3y ago> I wish there was a way to categorise these downloads by python versions. I don't know if I maybe misunderstand your wish. But if you scroll down on the pypistats link, there are the download numbers split up by python major and minor versions.
- simonw 3y agoBreaking changes in requests would be a disaster. The problem is that they're not just a library people use directly: they're a library that is often used by other libraries. The worst possible form of dependency hell is when you want to use libraryA - which depends on requests<3.0 - and libraryB, which depends on requests>=3.0, at the same time. At that point, you're simply stuck. You cannot use both libraryA and libraryB at the same time until they both upgrade to the same underlying requests dependency. Python projects are affected by this because it isn't currently possible to have two versions of the same library installed at the same time, because they clash with each other in the sys.modules global namespace. This isn't true of all modern programming languages - I've been meaning to dig around and figure out which ones are affected by this problem and which are not - I think Node.js and Rust have mechanisms for this, but I don't think Go or Java do.
- mixmastamyk 3y agoIt can be handled "kludgingly" by incrementing the name. e.g. foo --> foo3
- edflsafoiewq 3y agoNot sure why that's "kludgey".
- vvanpo 3y ago> I don't think Go or Java do. Go's module system was specifically designed with this problem in mind: https://go.dev/blog/versioning-proposal https://go.dev/blog/versioning-proposal I think Java projects get around this when they have to with shading, but that's a bit clunky.
- taeric 3y agoJava had some magic classloader ideas back in the day. OSGi, I think it was? I don't remember them using the term shading, but I also don't remember ever liking how that went. Usually very confusing for all involved. (Unless you were on the happy path, I think.)
- taeric 3y agoContrary view, they shouldn't make breaking changes to a library. Stability is a nice thing. If there are truly better ways of doing things /that matter/ in some space, find a way to incorporate them. Easy parallels to screw driving options. I'd be surprised to not see a flat head on outlet covers in any house. I'd be surprised to see traditional drives (philips, flat, or the one that looks like philips...) on most anything made by a crew nowadays. There are objectively better drivers, but it would be obnoxious to constantly have a different driver for every item in your house.