42 karma · joined July 12, 2022
Instead, we get pageful of whining about how bad bad big tech pissed on authors cornflakes. Hate? I don't see any reason to hate the guy. But I also don't see a single bit of reason to take him seriously.
…until they try to do JOIN. Or subselect. Or CTE. Or just about any other powerful SQL feature. Materialized views, triggers, sharding, atomic operations, you name it. At which point ones who are actually clever realize this idea has some serious limitations and drop it. Not because it can't be done – there are some nifty and well working ORMS out there – but because its bound to end just as complicated as sql itself. So why bother?
IMO main reason for existence of the ORM libraries is because back in the day, true object databases failed to take off for various reasons.
This pattern avoids transitive dependencies, especially "errors from faraway lands".
This seriously reminds me of Java zealots in worst days of Java Everywhere circus.
- listviews are limited to 50 items. MSDOS apps running on 640kB memory could do better back in eighties.
- Adding a new item does not refresh listview. I had wits to do that when I was 13yo toying with qbasic.
- UI "windows" are just floating <div>s that can't be moved, with controls wherever UX monkey happened to have dropped them. Heck, even the (fake) close button can't have consistent left or right position. Compared to that mess, Windows 3 apps look like work of art.
- Many actions take long clock-to-display time. How come that rendering a few lines of text and some buttons is slower on gigahertz class multicore machine then pitiful 200Mhz celeron?
- Even the early, amateurish web apps from nineties, pushed through pathetic dialup internet had the common sense to check session timeout BEFORE displaying a form for user to fill in. Google today? Not so much.
I could continue, but this makes me sad.
105102414410138859640127147104
IMO real problem with caps is that this was not invented by VC backed startup, which makes it ideological challenge to some people.
Yeah, package management that actually works must be terribly confusing to some people.
I wont say it's impossible problem to tackle. But I doubt any solution you find could work better or be less complicated then regular packaging. Unlike docker, debhelper, rpm, ebuild and others were designed for this task, and have decades of experience in the field.
Then again, every attempt at dethroning C++ came with it's own crowd of fanatic cultists, so maybe it's just that C++ is cursed.
We start with learning that we absolutely need this Poetry thing because… it's what everyone else uses. It's refreshing to see author who can skip usual badly argued justifications and just plain admin that he does not know shit and is just following rest of the herd. Then we continue by "solving" depependencies by usual way of ignoring them and just freezing whatever happens to be present.
Then there is inevitable firing up of virtualenv, because that's just what you have to do when dealing with messed up dependencies.
Next one is new to me. Apparently, one does not just set up git hooks nowadays but use separate tool with declarative config. Because if you ever happen upon something not covered by the Tool, that would mean you are no longer part of the herd.
Then we push our stuff straight to pypi, because of course our stuff can't possibly have any dependencies outside of python herd ecosystem. It's not like we knew our dependencies anyway.
Then comes the fun part, pulling in tox, because when you have special tool to handle dependencies, what you just need is another tool with different environment and dependency model.
Code quality section I will just skip over, seeing what pass for code quality these days makes me too sad. What follows is setup of several proprietary projects that modern opensource seemingly can't exist without. What is more interresting is "tyding up" by moving code from git root to subdir. Now, this is of course perfectly sensible thing to, but I wonder why is it called 'src'? Maybe some herd memeber saw compiled language somewhere and picked it up without understanding difference between compiled binary and source code?
Now don't take this as if I have problem with the article content in itself. No, as a primer to modern python packaging it's great. It's not authors fault that his work is so comprehensive it lays out bare all the idiosyncrasies, herd mentality, cargocultism and general laziness of python ecosystem these days. Or is it?
resizeImage(imagePath, 300, 200, {crop: true})
Python use this pattern everywhere, with keyword params it just feels natural.