"A civilization grows great when old men plant trees whose fruit they will never eat." Or something like that. I'm a bit of a treehugger
to be honest. A literal treehugger, not an environmentalist. Burn the coal, pump the oil, mine the ore, civilization needs to advance. Trees
are special to me though. I don't give a flying fuck if you fill in all the swamps, plow under all the prairies, and pave all the deserts
into soulless, inhuman subdivisions outside of Phoenix, but you keep your goddamn filthy hands off the trees. You can't just replace a
tree. You have to plant a small one and let it grow for decades. There's no undo button on trees. It infuriates me when cities cut down
an old tree because of powerlines or sidewalks; just fucking move the powerlines or route the sidewalk around the tree. The tree
is more important because moving a light pole or sidewalk is trivial in comparison to replacing the tree, which, once gone, is lost for a
generation.
Boomers are especially bad about this. There's nothing a Boomer loves more, apparently, than cutting down a tree. They get a kick out of
the destruction, like when Frito was cheering the destruction of his own car in Idiocracy. My father gleefully butchered all the trees at
both houses he owned, and now those trees are dead and the houses look like shit. Our neighbors did the same and now the neighborhood sucks.
The city of Renton ripped out all the huge trees they had
in downtown around the central plaza for apparently no reason during a completely unnecessary renovation, and now the plaza is bleak and dead
feeling. I can't count the number of times I've seen some city cut down an entire street of hundred year old trees because they were
slightly too close to a power line. Just put it underground, retards. The whole city is worse now.
But it's not just the trees, and not just the Boomers. Everyone and everywhere and every thing in the US is like this now, and it's spilling
out into the rest of the world too. Nobody values the future. It's always whatever is the most expedient right now. Retirement accounts
are empty, infrastructure is falling apart, food is shinkflated, appliances are shitflated, and nearly everything that isn't plastic chinesium
trash is designed to fail anyway no matter how much it costs.
My KitchenAid food processor broke after a year of occasional use. The flimsy plastic hinge on the lid broke.
My high-end Samsung fridge has plastic hinge springs. One already broke.
I can't find good shoes anymore. Surely they exist, but I can't find them and I don't have entire days of time to waste
running around trying on every shoe from every brand every time I need a new pair, which is frequently because they fall apart so quickly,
even name brands. Especially name brands. Skechers wore out after six months. New Balance feels like cardboard now. It probably is but they still
want a hundred bucks a pair. Cheap Chinese imports and domestic Mexican shoes are seldom made in my size.
Companies lay off tens of thousands of dedicated, skilled, loyal employees in order to make quarterly stock goals. What about next quarter? Who
cares, we'll sell off one of our respected brands to be gutted by some foreign company. And the next quarter? Leveraged buybacks, let the
next guy deal with the crushing debt. And the next quarter? Shutter the factory and outsource. And the next quarter? Consolidate with another
husk of a company, repeat ad nauseam until there isn't a drop of blood left in the corpse.
America is the fattest country on the planet. It's striking even in comparison to Mexico, and there are a lot of fat people here too compared
to Asia. Why? Because the pleasure of eating sweets and drinking soda in the present is preferred over the pleasure of being healthy, attractive, and
long-lived in the future. Viagra sales would plummet a few years after a total soda ban.
The Unites States has the biggest military on the planet. It now spends more on interest payments on the national credit card than on the military.
It spends even more than that on healthcare, heavily due to the previous point. The people are deep in debt too; as above, so below. Why? Because
now is always more important than later. That's the whole point of debt, paying a premium to have money sooner.
Software is not exempt. In a way, anything that isn't hand-crafted macro assembly is robbing the future, and this Staw Man is used to justify
atrocities like React and Electron. Windows, even before the enslopification, was barely usable depending on your definition of "usable". Microsoft
kicked the can down the road for decades and it finally landed in the mudpuddle of needing a gig of ram to show the desktop. Modern Microslop can't
even render a lag-free start menu. Notepad has security holes. Updates might randomly prevent your machine from booting. This is one of the biggest
companies in the world. Microslop could trivially afford to test every update on every hardware configuration there is. All of them. But no, they need
to shove the updates out yesterday. And sometimes they really do need to shove out an update yesterday because it fixes some other critical
problem they failed to catch by not caring about software quality.
Startups are notorious for shortsighted software decisions. It's all about the next pitch, never about what happens three years from now. Often
a startup needs to get revenue quickly since they don't have the luxury of an infinite tap of stock market money. The problem is the kind of
person that gambles on starting your typical startup has his time preference slider set all the way over to the left and hires other people with
the same setting. This results in major technology decisions that save a few days right now, nothing even to a thirsty startup, but slow development
speed by half or more, forever. React lets you get a demo page with a calendar widget and a chat box up and going from nothing today instead of on
friday. React also requires endless boilerplate to do anything sophisticated, shackles you to its toolchain dependencies, and imposes significant
ongoing maintenance in practice. Meanwhile, vanilla js takes a little longer up front but completely eliminates time wasted on toolchains and
dependency-induced maintenance. It's also faster and much smaller. With a developer who has sufficient zen, it quickly ends up being quicker
to develop features in. There is no downside except having to know what the hell you're doing and invest a couple weeks up front. If you
don't have a couple weeks up front to save months later in the same year then you don't have enough runway to start a business.
The shortsighted decisions seldom pay off. The success of a startup has nothing to do with how quickly the CEO gets to see an early draft of the website
and everything to do with how good he is at sales and schmoozing investors. In the event that the startup does succeed, the shortsighted mentality
remains despite millions of dollars of profit because the shortsighted people remain and continue to "be pragmatic" or whatever excuse they give
for not paying off their technical debt and invest in the future now that they can.
FOSS has its own troubles but at least it's not always sales pitches and quarterly profits. Bad time preferences in FOSS typically manifest
as architectural decisions like choosing to write something in Python to "save time" versus writing it in a language that has its shit together.
Portage is a good example. Always new features, never a freeze to rewrite in C and remove the clusterfuck that is Python versioning and package
management from the core dependencies of Gentoo. There have been some attempts, but they got bowled over by the mindless drive for MOAR FEATURES
in the python version. And Gentoo suffers for it; one time my python environment broke and recovery from this was tricky to say the least since I
couldn't run emerge. Git hosting websites are few because all the decent git web-hosting software (so far) is a glitchy pile of webshit that
nobody wants to deal with and is impossible to maintain.
The cost, like when all the trees get cut down, is that the software world becomes a miserable place to live. Software is slow, glitchy, and a
pain in the ass to set up. Developing in it is a nightmare and requires bloated IDEs just to wade through the boilerplate and contorted,
ever-changing APIs. It's so bad that there are now multiple layers of bloatware just to try to wrangle the bloatware below it. Electron + React
is too complicated? Throw it in Docker. Docker too complicated to set up? Kubernetes. Kubernetes too complicated? Claude, which brings us
full circle.
Or... or, and hear me out, we could just not have basic software be a clusterfuck to start with.
We don't have to be retarded. We can look forward and invest in the future. We can decide to take the path with logarithmic costs
instead of the hip one with exponential costs because we can see what happens at x = 1. We can decide to invest the money to move the power
lines because we would rather live in a town with beautiful, shady streets than save two cents per month on the power bill. We can rip up a row
of parking to reroute the sidewalk around the old oaks at the park because we can see that a park that chooses parking spaces over trees isn't
a park, it's a parking lot.
First and foremost, heirloom software needs to be written in an heirloom language. C has been around for nearly fifty years and has barely changed.
Modern compilers, which are many, can still handle the earliest code without significant issue. It exists on every platform and supports every feature of the hardware. There is
little that C can't do, and those things are largely small, platform-specific, kernel-related things like ring changes, which C accommodates
trivially by allowing inline assembly and lexical macros to choose among platform-specific sections. A compiled C program need not include a single
instruction not related to its platform, and at no cost to other platforms, nor more contortion of the code than simple macro if blocks. C has no
build system, meaning you get to choose the build system, if any. C has no package manager, meaning there is no central authority nor central
namespace nor any of the problems, politics, or supply-chain vulnerabilities that come with an official package manager. C interfaces directly
to system calls and executables and binary libraries (.so's, .dll's). C doesn't care what language is on the other side, so long as that
langauge can handle the most trivially basic features of structured data, pointers, and system-ABI-compliant functions. The fact that any supposedly
serious language struggles with those is ridiculous in its own right.
For example...
Contrast this to Rust. There is one compiler and it can only be compiled by exactly the previous version of itself. The language changes so fast that
code from a few years ago is considered obsolete, for no good reason. There is a built-in package manager, bypassing your distro and exposing you
to the same insanity
you find with npm. Rust is slow, except in contrived benchmarks or when turning off the features that are supposed to be its whole selling point.
Rust has only been around for twelve years at the time of writing, so who knows if it will be around after another dozen or two after some newer,
hipper language comes along. It can't interface with the rest of the system without turning off its special features. It only supports a handful
of platforms. You would be excused for thinking that Rust is an op by some national intelligence agency, especially since it's actively pushed
by several of them. Nobody wanting to write heirloom software should even consider having anything based on Rust in their entire dependency chain,
much less in the main application.
Consider Python. After well over three decades, there still isn't a native compiler. University students write compilers as school projects, but
the entire Python ecosystem is so collectively incompetent that they can't manage it. There have been a few partial attempts, but they keep getting
abandoned and none of them supported the entire language. FFI is possible but awkward. Python is slow as fuck (see lack of a compiler). Basic
features like pointers and structured data with machine-native types are completely missing. Python's package manager and package loading is a
disaster; you have to create special environments to install packages locally as opposed to clobbering the system, and even many years after the big
disaster migration from 2 to 3, Python code in practice is still very version-dependent leading to you having to have multiple copies on your system
at once and more overhead to choose between them. Python is a perfect case of choosing the present over the future to zero long-term benefit; if you
plan to run the code again a year from now, Python is a bad choice.
Many other languages are worse than Rust and Python. Rust and Python at least have a few shortsighted selling points, whereas the
existence of Ruby and PHP should be stricken from your memory. Rust, in theory, could be salvaged if its community wasn't so mentally ill. It
would be no worse than C++, which is a deeply flawed language but at least is stable, widely supported, fully featured, and forces no dependencies
on you in practice. C++ is a valid choice for heirloom software, especially if the version is permanently pinned to some sane standard, like '98
or '03.
Second to the language itself is dependencies. Heirloom software should have as few dependencies as possible, and those dependencies should themselves
be as heirloom-grade as possible. Every 3rd-party dependency is an open door to whatever nonsense may happen to that project in the future. It may
be abandoned, or it may incompatibly change language versions, or it may convert to a different language entirely. More likely, it will pull in some
other massive chain of bloat because nobody can leave anything well enough alone these days. Now your software and any system that wants to run it
depends on that entire tree of vulnerabilities dependencies with ever-expanding surface area.
Heirloom software takes more time and effort to write than slop. Heirloom boots cost more than chinese flip-flops. If you want to use Shein-quality
software, then be my guest but don't complain when clicking the start menu has noticeable lag.
The last release of Fluxbox was 11 years ago and that was a minor bugfix. It's simply complete, nothing excessive, nothing lacking.