As the saying goes, there’s only two hard problems in IT:
Caching, naming things, and off by one errors.
Honestly, having a declarative package manager is pretty important.
Consider the following: We’ve had the transition from Sys V Init to Systemd recently. But what does it actually mean?
It means, that instead of running a command to start a service, you now flip a switch in a clear, standardized way. The advantage is that you can get a table-like overview over all the services that are currently running. You get an overview, in other words. That is worth a lot because it brings structure and clarity into your system.
Now, with package management it’s the same way. Instead of running a command to install a package, we should instead give a list of all the packages that we want to have installed, and the package manager should take care of making sure that they are installed. That would improve clarity, because you get a list of all the packages that are installed. It might also increase efficiency if you’re installing many packages, because large parts of the work can be done in parallel. And importantly, you get reproducibility. Imagine you just have a file where it names all the packages that should be installed. You can just take that list and copy it to another machine. Now you’ve cloned your package installations. I guess things like Docker, with their docker files, are kinda already going in that direction. But it would be nice to have support for it in the mainline operating systems.
The problem is that they’re not really made for this task, both in hardware and available software. They typically specialize in routing and switching, but have insufficient internal hardware (memory especially) to run a full-blown OS.
So whatever you install on these devices, will probably not give you all the features that you would like to have. (For example, a full linux command line with all the typical programs installed.) Also, it doesn’t allow you to use HDMI to connect to a monitor, so there’s that. But basic linux things can be done on it, if you figure out how to get to the command line. But it’s very limited.
So wie die Ordnung stets ins Chaos geht,
wenn keine Kraft dagegen steht,
so herrscht das Chaos nie allein:
Es braucht die Ordnung, um zu sein.
you’re on a highway to hell.
I agree with you especially on the definition order of functions. I, too, define main()
first.
let the chaos reign
A large part of oil can be replaced with electricity. Please point to examples where neither solar power or renewable biomass are sufficient.
Also, beware the diseases. Milk can spread virus AFAIK.
But “idiot” isn’t a name, i guess?
/jk Sorry, I’ll show myself out.
While “having fur and producing milk” may have been the original description of mammals, biology no longer classifies things that way.
Today, all of the classification is based on Clades, which can be established by doing DNA investigation (similarity matching). So, “mammals” are defined as a clade. And whether somebody falls into it or not depends on their DNA similarity. And coconut clearly do not belong into there.
Regarding the problem of running out of oil, I look at it a bit like, “we are a plant (biological plant)”.
The plant starts in a seed, which provides it with nutrients (energy) as some kind of starting bonus. It can use these nutrients to develop itself and live, but it will recognize that at some point it will run out of calories and die. So it has to do something about it. What it does, is to develop leaves. These leaves collect the sunlight and this way, the plant has a constant and continuous source of energy/calories. So it can keep on living.
Society has a very similar problem. We have oil, but it is limited. We can use it to develop, but eventually we’re gonna run out of it. So we have to do something about it. Just like a plant, we develop solar panels to collect the sunlight, so we have a continuous income of energy. This way we can live waaay beyond the time of our starting bonus.
Oh no you can’t. Building a ship that can cross the ocean (without you drowning first of course) is actually quite difficult. Not only does it have to be extremely durable, you also have to have a lot of knowledge to navigate. And then there’s the economic problems, like who pays for it, how do you get enough food, etc…
“We’re pushing the can down the road. Problem is, we’re running out of road.”
How to write spaghetti code:
Yeah, it’s also very difficult for me to focus on something if I don’t know where I’m going.
IMO the best knowledge comes from doing practical examples that actually interest you. I wouldn’t rush that.
I honestly started out not liking systemd at all, mostly due to the reports that it did waaay to much, but nowadays, I like the concept.
It is basically officially moving daemon management from a script-based approach to a table/database-based approach. That improves static analyzability, therefore increasing clarity, and probably even performance.
I agree that we should abandon scripts and move towards declarative software management, and abandoning sudo
for a more declarative system seems like a good step to me.