If you have to ask “can’t you just” the answer is almost always no.
If you have to ask “can’t you just” the answer is almost always no.
And who actually writes tests like that?
I mean, do you think tests do the calculations again? You simply have well defined input and known, static output. That’s it.
Tests first is only good in theory.
Unit tests typically test rather fine grained, but coming up with the structure of the grain is 80% of the work. Often enough you end up with code that’s structured differently than initially thought, because it turns out that this one class needs to be wrapped, and this annotation doesn’t play nice with the other one when used on the same class, etc etc.
Especially then I’d test the shit out of everything? I’m getting paid for writing correct software.
For local development, it should be super quick. However, I’m currently building a small project where a device (or rather the library using it) can’t really be used with a debugger. So 500 print()s it is.
Yes, but it’s not Unix. That’s literally part of GNU/Linux’ name.
Mac OS is more Unix than Linux.
And a lot of people would call that incapable.
This is a form of learned, or rather forced to internalize, helplessness. People don’t even want to understand things, even though they absolutely could and ought.
I think you don’t distinguish enough between professionals and capables.
All your points are either “sysadmin” or “complete buffoon” and nothing in between. That’s not how reality works.
You absolutely are expected to be able to check your oil and just a few years ago, you were expected to be able to change your tires. That doesn’t make you a car mechanic, but a capable user.
I’m absolutely not a car guy, but I know how to change a tire. Why? Because it’s necessary knowledge. I also know how to file my taxes, even though I’m not an accountant or tax consultant. Again, because it’s necessary.
The sentiment should rather be, that the system maintains itself. And that’s actually something I would get behind.
Tinkering around is cool, but I’m in my 30s and when my girlfriend’s build pipeline finishes, I’ll be a father, I can’t spend 4h every week fixing stuff, I need a reliable platform to work on. Currently that is indeed a mix of Debian and Nix for me.
At least the normal update process should work completely transparently for the user.
Not a sysadmin, but a capable user.
People shouldn’t just accept technology as magic. They should understand at least the basic principles of the technology around them. Corporations want us to be dumb and incapable. Look at cars, you seriously can’t expect a normal person to fix anything on them. But that’s not because of inherent complexity, but because corporations want us to just buy new parts when they think it’s time.
Sapere aude was true in the 19th century and it’s true today as well.
Could you please start a job at Nestle, Microsoft, BP, Raytheon? Either would be fine, but you need to weaponize your god level incompetence for a good cause.
I wouldn’t even call it that. It’s a weird lack of a sense of scale combined with organizational hurdles.
They basically can’t estimate, how much resources a proper app would need and they don’t know how to manage teams to work on a common codebase. So they simply draw a diagram of the functionalities, spin out each block as a “Service”, assign that to a team and call it a day.
I’ve talked to several of them about this and I had to do very simple math directly in front of them to convince them. I’ve had to explain to a grown man, an experienced engineer, that 16 cores and 96gb memory are more than enough to handle a million simple inserts per day in a batch mode. He wanted to split the job into 4 services, each essentially running 10 lines of actual business logic, each using the resources mentioned above. Absolute madness.
Also, supersonic air travel already exists. It’s not a technical hurdle anymore and the Concorde was even profitable in her later years.
There’s a lot of research addressing the very real problems you pointed out and it seems plausible that they’ll at least be mitigated to a degree in the near future.
Hyperloop is a (vacuum) pipe dream. It sounds super cool, but the more you think about it, the less realistic it gets.
Gitlab feels also a bit weird to me, though.
The git part is perfectly fine, but at my job we’re trying to get our cloud tool landscape to work with gitlab CI and it’s really a struggle.
Something as simple as packaging the same artifact in two different ways or running tests in docker images before pushing them is really hard. Gitlab seems to insist on having a single commit as its entire context and communication between stages (especially on different runners) is almost laughably limited.
Jenkins on the other hand has at least the option to have a shared workspace. Yes, this has its downsides, but at least I have the option. Gitlab forces you to use outside tools in very involved ways or follow exactly their own, highly opinionated approach.
Their single vote pods cancelled the upvote button.
Maybe a niche issue, but “that doesn’t scale!” In the context of software development.
We’re writing software for usually very well defined user groups, but so many of the architects and seniors want to build a second Netflix, which costs 4 times as much as the simple solution and in the end usually isn’t even better, because those morons have no idea how to do that.
Currently, I’m in a project where I fought tooth and nail to avoid having a micro service architecture for a batch job that inserts less than a million entries per day.
I’ve seen several waves of spamming, weirdly enough mostly hyper specific local businesses from India or the Philippines. Like, best my leather finishing tool in Hyderabad.
Never heard of it, makes total sense, but I’d guess 95% of developers just nuke the directory raw.
That unfortunately means, you can’t play a lot of games. And for most people it’s practically unknowable what the installer is doing, they don’t expect a game to nuke their computer.
There needs to be accountability and a certain level of trust. Microsoft shouldn’t allow kernel drivers for crap like anti cheat.
Because you don’t know what you’ll need that wrapper beforehand, that’s my entire point.
Unless you’re only doing trivial changes, the chances are very high that you won’t be able to design the class structure. Or, you end up essentially writing the code to be able to write the tests, which kind of defeats the purpose.