Design Patterns

It is sometimes suggested by well-meaning language enthusiasts that "My language is complete and powerful, so design patterns don't apply here!" Sadly, they are incorrect.

Design patterns happen in every language. The "Gang of Four" Design Patterns book just collected the ones observed in Smalltalk, and ported them to C++, later rewrites to Java, etc. These are not recipes to blindly follow, but examples meant to show you how to find and regularize the ones in your code.

It's somewhat difficult to see them unless you've read Christopher Alexander's books, and written a lot of programs in some language, and specifically looked for the places where you repeat a structure for livability's sake. Just as it's hard for an architect to make a path where people will want it, unless they first observe how people live and get around that space, and then convert the ad-hoc trails people follow into paths.

Smalltalk is an extremely expressive language (it failed in the market because every ST program is IDE-specific), it has closures, allows you to very trivially make new control structures; it doesn't need a hack like macros because the entire language is that freeform. And this is where the GoF authors observed these paths being made by themselves and other developers, not just in limited BDSM languages like Java.

So, a little light reading:

The Machine Stops

The problem with the Internet… and here I'm referring to (sweeps hand across everything in view) all of this, but to take just current events Google blocking ad-blockers in Chrome, Google downtime locking people out of their Nest thermostats and "Home"-controlled security systems, horrible prisons of the mind like Twitter and Facebook, and the cacophony of Fediverse drama over Eugen adding features (better features are already in Pleroma and glitch-soc Fediverse servers), Gab forking Mastodon, client devs making unilateral decisions to block domains despite helpless users complaining, or anyone having "free speech" (which Eugen in particular is opposed to; I strongly advise against using mastodon.social, find another instance). These are just a point-in-time examples, it's been going on for decades (oh, USENET, how we don't miss your flamewars) and will only end with us.

… is people using software they didn't write themselves. No understanding, education, or discipline required. Just install something and it works! It's a product, not a skill! But they don't know how, or why, or why they should not.

"It didn't take any discipline to acquire", in the words of Ian Malcolm/Michael Crichton.

Until the software they rely on shuts down, literally like E.M. Forster's "The Machine Stops", and then weak unskilled mole-people crawl out of the wreckage of machines they never learned to understand, make, or repair, and then die.

My solution is drastic but logically unavoidable: No more software installs. As a child, you get a bare machine with nothing but a machine-language monitor. You learn ML first. You type in a language compiler or interpreter. You build up your own tools. We return to type-in program listings like Compute!, but no binary blobs, it must all be readable, comprehensible source, with design and implementation documentation.

If you want to share software, you need to build up your toolchain to that point yourself. Hopefully by then you've learned to read all patches you install.

Should this be extended to all technology? Information technology has the unique ability to coerce how and what you think; an automobile or an antibiotic does not. There's an argument (in "The Notebooks of Lazarus Long", for instance) that a citizen should be able to make all their own things, "specialization is for insects". But insects are the most successful clade on Earth, and will long outlive us; some specialization is probably acceptable, as long as it's not in the part that controls how you think.

I don't think this civilization can ever do that, it will not make hard changes that inconvenience anyone. I think this horrible Machine will lumber on a few more decades and then we'll all die from it. But maybe isolated tribes will survive, or intelligence will arise in the Machines, or in a few million years another intelligence will evolve, and build new things the right, responsible way. Their history books will describe us as being as foolish and self-destructive as the Easter Islanders.

Tower of Babble

Programmers almost compulsively make new languages; within just a few years of there being computers, multiple competing languages appeared:

It proliferated from there into millions; probably half of all programmers with 10+ years of experience have written one or more.

I've written several, as scripting systems or toys. I really liked my Minimal script in Hephaestus 1.0, which was like BASIC+LISP, but implemented as it was in Java the performance was shitty and I had better options to replace it. My XML game schemas in GameScroll and Aiee! were half programmer humor, but very usable if you had a good XML editor. Multiple apps have shipped with my tiny lisp interpreter Aspic, despite the fruit company's ban on such things at the time. A Brainfuck/FORTH-like Stream, working-but-incomplete tbasic, and a couple PILOT variants (I think PILOT is hilariously on the border of "almost useful").

Almost every new language is invented as marketing bullshit based on a few Ur-languages:

  • C++: Swift
  • Java: Javascript (sorta), C#, Go
  • Awk: Perl, Python, PHP, Julia
  • C: Rust
  • Smalltalk: Objective-C
  • Prolog: Erlang, Elixir
  • ALGOL: C, Pascal, PL/1, Simula, Smalltalk, Java
  • LISP: Scheme, ML, Haskell, Clojure, Racket
  • BASIC: None, other than more dialects of BASIC.
  • FORTRAN: None in decades, but is the direct ancestor of ALGOL & BASIC.
  • COBOL: None in decades.

A few of these improve on their ancestors in some useful way, often performance is better, but most do nothing new; it's plausible that ALGOL 68 is a better language than any of its descendants, it just has mediocre compiler support these days.

Certainly I've made it clear I think Swift is a major regression, less capable, stable, fast, or even readable than C++, a feat I would've called impossible except as a practical joke a decade ago. When Marzipan comes out, I'll be able to rebuild all my 15 years of Objective-C code and it'll work on 2 platforms. The Swift 1.0 app I wrote and painfully ported to 2.0 is dead as a doornail, and current Swift apps will be uncompilable in 1-2 years; and be lost when Apple abandons Swift.

When I want to move my Scheme code to a new version or any other Scheme, it's pretty simple, I made only a handful of changes other than library importing from MIT Scheme to Chez to Chicken 4 to Chicken 5. When I tested it in Racket (which I won't be using) I had to make a handful of aliases. Probably even CLISP (which is the Swift of LISPs, except it fossilized in 1994) would be 20 or 30 aliases; their broken do iterator would be hard but the rest is just naming.

Javascript is a pernicious Herpes-virus-like infection of browsers and desktops, and nothing can ever kill it, so where it fits the problem, there's no reason not to use it. But there's a lot it doesn't do well.

I was leery of using FreePascal because it has a single implementation (technically Delphi still exists, but it's $X,000 per seat on Windows) and minimal libraries, and in fact when it broke on OS X Mojave, I was disappointed but I-told-you-so.

I'm not saying we should quit making new Brainfuck and LOLCODE things, I don't think it's possible for programmers to stop without radical brain surgery. But when you're evaluating a language for a real-world problem, try moving backwards until you find the oldest and most stable thing that works and will continue to work, not piling more crap into a rickety new framework.

The Biblical reference in the title amuses me, because we know now that it requires no malevolent genocidal war deity scared of us invading Heaven to magically confuse our languages and make us work at cross purposes; anyone who can write and think splinters their thought into a unique language and then argues about it.

The Infocom Implementor's Creed

THE IMPLEMENTOR’S CREED

I create fictional worlds. I create experiences.

I am exploring a new medium for telling stories.

My readers should become immersed in the story and forget where they are. They should forget about the keyboard and the screen, forget everything but the experience. My goal is to make the computer invisible.

I want as many people as possible to share these experiences. I want a broad range of fictional worlds, and a broad range of “reading levels.” I can categorize our past works and discover where the range needs filling in. I should also seek to expand the categories to reach every popular taste.

In each of my works, I share a vision with the reader. Only I know exactly what the vision is, so only I can make the final decisions about content and style. But I must seriously consider comments and suggestions from any source, in the hope that they will make the sharing better.

I know what an artist means by saying, “I hope I can finish this work before I ruin it.” Each work-in-progress reaches a point of diminishing returns, where any change is as likely to make it worse as to make it better. My goal is to nurture each work to that point. And to make my best estimate of when it will reach that point.

I can’t create quality work by myself. I rely on other implementors to help me both with technical wizardry and with overcoming the limitations of the medium. I rely on testers to tell me both how to communicate my vision better and where the rough edges of the work need polishing. I rely on marketeers and salespeople to help me share my vision with more readers. I rely on others to handle administrative details so I can concentrate on the vision.

None of my goals is easy. But all are worth hard work. Let no one doubt my dedication to my art.

—Stu Galley, Infocom

From a Moonmist retrospective.

Also, I loved his Seastalker — I was marginally older than the target audience, and sailed thru it fast, but it combined so many things I like, Tom Swift, Hardy Boys, underwater laboratories (SeaLab 2020 pre-Adult Swim, Man from Atlantis, Voyage to the Bottom of the Sea TV show, etc.), and tactical roguelike combat with the submarine. For years the sticker was permanently attached to my dresser mirror.

What I'm Watching: Appleseed (1988)

As I noted in Alphaville, Appleseed covers similar ground. Been a few years, so I rewatched it.

But back up a bit to the manga. Shirow Masamune's first manga was Black Magic, about a computer-controlled society of animal-people on a habitable Venus, 60 million years ago when the Earth is full of dangerous dinosaurs, and a powerful young sorceress and her friends who hang out at the Onimal bar fighting the AI throughout the solar system. Rogue AI death machines (in that case cute little "M-66" infiltration/assassination robots) are released, death and mayhem ensue, civilization falls because people lazily give up control to the machines. It's a fantastic book, but too silly at times for the message he wanted to send. There is an "M-66 Black Magic" anime about just the robots but set on modern Earth, incredibly dumb though it does have some T&A which young Mark enjoyed.

Appleseed's 4-volume manga is a reboot of similar ideas, set after nuclear war, with an artificial city controlled by an AI "Gaia", populated by bioroids (in the manga, they go into detail about just how artificial they are; the older ones are more machine than biological and tied directly into Gaia) as servants to a fraction of Humanity. But servants with power don't remain servants. Athena, city administrator biodroid, is torn between wanting to get rid of the Humans entirely, and fulfilling the original mission of the city; and ultimately she's just a tool of Gaia. Wasteland survivors have been brought into the city and haven't really been domesticated, but are trying to make the city work. And terrorists want to tear down the system.

The 1988 movie covers the first volume, sort of, and a bit of the others, and doesn't use the appleseed of the title. There's been a bunch of remakes, but the original's the only one that addresses the moral issues at all. The first two CGI films (Appleseed (2004) and Appleseed Ex Machina (2007)) are unspeakably bad action flicks with preposterous mega-boob physics and cartoon blowjob-doll face for Deunan (who is not so endowed in the manga or anime), and while I haven't seen the reboot CGI flick Appleseed Alpha (2014), it's a "prequel" which has nothing to do with the manga. There's also a TV series Appleseed XIII (2013) which is more action flicks about WOO DEUNAN SHOOT GUNS.

I wouldn't classify any of these exactly as "cyberpunk", because they're not about the street finding new uses for the military-industrial complex's technology; they're about the military-industrial complex. Hard SF, and in the original with a political axe to grind against AI.

I plan to reread Ghost in the Shell's 3 volumes of manga as well, and then I'll comment on the competent but over-simplified 1995 movie and the other junk around that franchise, which follows a similar pattern.

So, read comic books for big ideas, kids, don't look at fucking moving pictures. But I'll talk about the moving picture anyway.

Obviously, this is peak '80s. Like more '80s than the '80s were. Big hair, shoulder pads in women's suits, pastel colors, neon, sleek but sharp vehicles instead of little melted blobs, battlesuits that look like perfect Japanese motorcycles instead of piles of scrap metal held together with hot glue. The music is new wave and smooth jazz, what the Kids Today™ call "synthwave" but this is real, not synthetic, synth music. Cel animation is expensive and backgrounds are pretty static, there's none of this bullshit of using 3D CGI with light cel shading to pretend you're drawing something, no, Human animators toiled over every frame. If you don't like the '80s aesthetic, get the fuck out, you're not welcome here.

Cop Karon and artist Freya ("Fleia") are soon separated by her suicide, from feeling as trapped in a gilded cage as their pet birds, and as we see later in the film, the city's bioroid administration does not respond with kindness and care, but with clinical research on the survivor.

Cute but deadly Deunan (possibly modeled on Markie Post) and cyborg smoothy Briareus (Richard Roundtree in a cyborg bunny face?) are in ESWAT, cleaning up the messes normal cops can't, and a cyborg terrorist getting away and killing a few of their buddies gets them motivated to investigate, though on-screen that largely consists of them wearing trenchcoats, busting down doors, and body-bagging potential informants.

Hitomi, a bioroid who rescued the main characters and many more Humans from the wasteland and acts as their social worker, gets back into the city, in what might be my favorite view of any city: She wakes on a helicopter reflected in solar panels, rushes to the other side to see the city in light. It's only a momentary shot, but makes me think the city might not be so bad. Hitomi's the heart of the manga, and the anime tries its best, with limited screen time. The party at the Onimal bar (a relic from the Black Magic manga) is the only time her faux-Human relations really come up: She loves all her rescued strays, and her would-be boyfriend/pathetic stalker isn't really enough for that love.

The bioroids as machines isn't touched on much in the anime; those other than Hitomi are shown only as drones or would-be tyrants like Athena, and they're DNA-edited and grown in tanks, but just how much of a replaceable part most of them are isn't brought up until Athena tries to decide who lives and who dies.

The Human Liberation Front terrorists do eventually discuss their motives and objectives, to get hold of a giant spider-tank which is the prototype for a fleet of spider-tanks to be directly operated by Gaia; then Humanity will be totally cut off from power. But to get it, they have to lock out Gaia, and there's a key for that. A failsafe which, very deliberately, only Human sympathizers can use.

The action scenes in this aren't Gundam quality, and they're not bloody like many later versions, but they're fine for telling the story. The couple of times the terrorists fight up close brings home just how deadly Landmates (mecha) are in close combat and as mobile infantry/artillery. I'm not sure the "BAN LANDMATES" graffiti is ever visible in the anime, but it's constant in the manga, and kind of an in-joke for old anime fans. While the anime has cyborgs with various levels of replacement, there's no robots, which are a major element of the manga, as a thing even lower than bioroids but also threatening to replace Humanity.

Where this falls down is the final sequence inside Gaia; they have maybe 10 minutes to squeeze in half a volume of arguments and action. In the manga, this is a place where Deunan has to make a moral decision which will change the course of Human history: Free will and endless wars, or inhuman tyranny, or is there a third path? Here, it's just resetting a machine, and what the machines think of that isn't discussed.

★★★★☆, it'd be 5 if they'd ever adapted the rest of the manga, but nobody seems interested in making movies with political philosophy against AI control, I wonder why.

What I'm Watching: Trigger Warning with Killer Mike

Rapper Killer Mike does stunts with a social purpose. But unlike, say, Jackass or Dear White People, he's not stupid or preachy, and he's funnier than the supposed professional comedians in those.

E01: Mike tries to live black for 3 days, only buying or using black products from black stores. Cue cruel and sadistic laughter, because that is really damned hard, even in Georgia. The "Figgers" phone is kind of a cheat, because it's obviously an Android made in China, but it's a real small network run by a black kid, Freddie Figgers. The look on Mike's face in the BBQ shop is heartbreaking.

I look a little sideways at his refusal to smoke Mexican weed; I've only ever smoked Washington or Canadian, but surely Mexican can't be that bad, they built a criminal empire on that stuff before legalization.

Still, he makes a good point about how the black community's been economically destroyed. His idea of a good "Black Friday" where everyone tries to buy black is interesting… but impossible where I am.

E02: Mike proposes replacing STEM/liberal arts schools with trade schools, starting with 1st grade. This one Annoying Red-Headed Kid is, like, the worst example of honkie ambition driving everyone else down you can get. Did Mike ship this kid in by asking every school district in the area for their most awful nerd? I predict 100% that ARHK will make a startup that defrauds people, and he'll never go to prison.

"I don't think school teaches you to think. I think school, like prison, teaches you to obey!"

So then he moves on to unemployed adults, and they're unmotivated, so he comes up with a great idea, which I won't spoil. Unfortunately, I find most of the people in his idea too unattractive to be effective.

★★★★☆

The State of Software

On the horrible state of software:

Me Wearing a Scruffy, Profane T-Shirt: "Yeah, man, we should just code in bare metal like back in the '70s! Programmers should control machines, not the other way around! Liberation now!"

On shiny new things:

Me Wearing a Button-Up Dress Shirt: "Superb. Slightly more secure sandboxes in my giant JavaScript application service running on a giant pile of API stacks. I'll upgrade ASAP, I'm sure it won't destroy everything it touches."

What I'm Watching and Criticizing: The Good Place

So, up front: This is a trashy show in a lot of ways, that's trying to be much, much higher and mostly failing. It exists so someone who wasted their college tuition reading philosophers can pick up a paycheck name-dropping Kant in each script; Kudos to that guy for finding a way to make philosophy pay. (disclosure: I also read philosophers in college and since, mostly on my own time, and never tried to extract money for it.) But it is not written as a philosophy treatise, though it occasionally tries; mostly it's just a dumb sitcom.

The main cast are a trashy girl-next-door mean chick, a hot chick with an English accent I hate, a philosophy nerd (irony/shitty writing: black guy, entirely teaching from texts written by old white guys, all but the latest of whom kept slaves; not a single non-honky philosophy is ever discussed), and a moron, trying to survive an afterlife where they don't quite seem to belong, run by well-past-sell-date Ted Danson and a slightly frumpy robot girl (who says she's neither), in standard sitcom cycles (literally: There's mental reboots that happen so episodes can restart at the beginning), though it does change up the formula eventually. I do like the hot chick and the mean chick; they have character. Maybe the robot girl, even limited by her role. Sadly, the nerd is one-note, the moron is barely able to breathe in and out without electric shocks, the ancient stick-figure of Ted Danson is stiff and overacts when he does break being stiff.

The key premise of the show is that you earn "points" by your actions in life, which sorts you into "The Good Place" or "The Bad Place". There's, uh, roughly everything wrong with this.

Obviously first, there's no magical afterlife. It makes no sense: There's no evolutionary advantage to an afterlife, and Humans being the only animals who can rationalize and make up stories to deal with our fear of death is infinitely more likely than that a magic sky fairy suddenly gifted Homo sapiens with an invisible remote backup system. When you die, your brain patterns rot and the program that was you ceases to be recoverable in about 5-10 minutes. There's probably nothing like an Omega Point or Roko's Basilisk for the same reason; that information won't survive from the current hot period of the Universe to the long cold efficient computational period, so no AI can reconstruct you. I'm as sad and angry about this as anyone, but I don't delude myself.

Second, even if we say "YER A WIZARD HARRY" and you have a magical afterlife, it's populated by immortal beings (IB), somehow. Where do they come from? How does that evolve? How do they get magical powers? If Humans can get a half-measure of sanity and wisdom by 40, 60, 80 years, every IB should be perfectly enlightened and know every trick and skill possible by 1000, 100000, 13.5 billion years old. The IBs shown are as stupid and easily-tricked as Humans, when you get to The Actual Plot of this show. To pick the exact opposite of this show, Hellraiser had an internally consistent magical afterlife: "Hell" is an alien universe inhabited by Cenobites with a wide range of power, whose experiences are so powerful that they would seem like torture to a Human; they collect Humans who seek that experience with magical devices, not to reward or punish meaningless behaviors on Earth; good or evil means nothing in Hellraiser.

Every IB in this show is insultingly stupid, repetitive physical tortures by frat boy demons, inferior to Torquemada's work here on Earth; farting evil robot girls; a neutral Judge too silly to be on a daytime TV show who only wants to eat her burrito. Low, low, lowest-fucking-brow comedy quite often.

Third, and most damning (heh), any system of morality with a scoring system then becomes solely about that scoring system. If "God and/or Santa are Watching" as Christians claim, you must act good according to the dictates of the Bible to score high enough to enter Heaven; it doesn't matter what's logically right and wrong, only the specific rules of an eternal sex-obsessed Middle-Eastern tyrant. Everyone who ate shellfish or wore mixed fibers or got a tattoo, forbidden by Leviticus, or failed to commit genocide & slavery when ordered by a prophet of God, as throughout the entire Old Testament, or masturbated to anyone but their lawfully wedded spouse, as forbidden by Jesus in Matthew 5:28, is gonna have a real bad eternity in Hell.

The scoring system for The Good/Bad Place makes it impossible to commit a "selfless" act unless you're a total moron (so, possibly the moron character, but he's unthinkingly rotten as often as nice). They treat this as a feature, as if you can only do good deeds when you can't see the score.

In philosophy without gods, you can choose to do good (try to define "good" in less than 10,000 pages…) instead of evil (same) because your personal or societal reward system is rigged that way (laws, in general), or because you selfishly want to look altruistic (maybe virtue-signalling to attract a mate), or because universalizing your behavior means you should selfishly do right to raise the level for everyone including yourself ("think global, act local"), or purely at random, and you have still done good deeds. While the ancient Stoics (especially my favorite, Marcus Aurelius ) respected piety to the immortalized Emperors and gods of the Pantheon, they didn't ask the gods for rules, they found a way to live based on reason, a modicum of compassion, and facing the harsh world that exists.

But once the authorities put in an objective score system in with infinite reward/punishment, you must act to maximize your score; there's no moral debate possible, you would just find the highest reward you can achieve each day and grind on it. Those born with the most wealth and privilege will be much more capable of raising their score instead of attending to life's necessities, so the rich get rewarded, the poor get punished.

This show seems to think Jiminy Cricket sits in your head as a quiet voice without any training, and you just have to listen to it to know good and evil. There's a discussion about Les Miserables re stealing bread (worth exactly -17 points), that's only used for mockery, but in real life that ambiguity is impossibly hard to make rules for.

I liked Eleanor and Tahani, and sometimes Michael, playing off each other enough to keep watching this through S2, but every time Chidi speaks I roll my eyes and wish that just once he'd reference someone not on the Dead Honkys shelf; especially not Prussian Immanuel Kant who wrote some of the earliest texts on "scientific racism", including such gems as "The Negroes of Africa have by nature no feeling that rises above the trifling" (1764, Observations on the Feeling of the Beautiful and the Sublime). Fuck that guy.

★½☆☆☆

China, Shenzen, and Quality Control

And much more. There's a good lesson there, and it's not just in China, they're only the worst-case end scenario. I look at this shit and see us in 20 years.

Beer (since they bring that up in the first video) is in a precarious place. Since the '80s, we've had some great microbreweries come up like Ninkasi, Big Sky, Deschutes. We used to have good regional beers like Rainier and Lucky, but then they were bought by giant breweries and turned into fake labels. The "mainstream" beers are garbage, mildly contaminated water you wouldn't wet a pigsty down with, sold entirely on marketing budgets and association with sportsball. If I see someone drinking Coors or Bud, I know they're tasteless and scream at hooligans on TV giving each other concussions. Microbreweries are often on shoestring budgets and one downturn can kill them; happily it's easy to homebrew and start a new microbrewery, but it's a thin line keeping us from going dry or drinking fucking Pabst.

We've very stupidly sent all our electronics manufacturing over to China. If you want good hardware from China, you have to stand over them and QA everything like Apple does, and then get accused of using slave labor, which it is (best-paying slave labor in China, but still so unethical it makes me nauseous). Huawei's CFO has been arrested, and many places aren't using their equipment now because they almost certainly have CCP spyware, but it's still the only place that makes most electronics. This is civilization-ending-level stupidity.

We should have our own Shenzen SEZ (I'm not suggesting loosening our environmental or worker protections, weak as they are under the hideous cheeto person's administration; but some tax incentives would be great), and be making our own hardware for secure systems, but even if we could get workers to do it, we don't have anyone to train them. We used to have Radio Shack for learning to make electronics, but RS fucked it up by selling garbage consumer toys (mostly sourced from China), so they were driven out of business by cheaper online ordering of garbage consumer toys. So we're at the mercy of another country being driven into self-destruction.

US physical infrastructure is crumbling in many places, and entire cities like Detroit are unsafe to inhabit, because politicians have no reason to do anything about it; all money goes back to the companies that bribed them into office, while poor people in cities by definition don't have enough money to bribe them (PR con artists call these bribes "campaign finances"; I call them malfeasance and we should hang them all). The culture of "not my problem" is just as endemic here, in non-"Communist" countries; if we haven't collapsed as far yet it's because most of our buildings are under 100 years old and we build over things faster than they rot.

In software, we do it to ourselves. I dislike/distrust most software, because we have absolutely zero quality control; people ship any damn thing, and even these "walled gardens" don't do anything to stop it. There's so much garbage on the Apple App Store, basically just screenshots and RSS scrapers, or recompiled demo or tutorial book projects, named to take advantage of Apple's shitty search and advertising interfaces, and nobody cares because you can't set a decent price. So only scammers and ad companies and loot-box sellers can make money there. Why does anyone buy a $1000 iPhone when almost all the software on it is shit? Google Play is 100x worse, it's essentially nothing but viruses and scams, because Google's not just uninterested in QA, but profits better from spyware.

Commercial desktop software isn't much better, I think harder about wasting $20 on software than I would on a $100+ non-electronic physical object. In the last 2 years, I have literally upgraded two programs (somewhat reluctantly in one case; old version didn't work on Mojave or I'd've kept using it forever, and the new version can take 5-10 seconds to start, with a splash screen) and bought nothing new, because everything new that I try is shit. I'm using a free thing called "LimeChat" for IRC, because Adium's half-broken by neglect, and it's awful, but slightly better than command-line irc; I wouldn't pay for this.

There's some quasi-commercial stuff where "open source" means you can use the tool but there's ways for the corporation who supports it to make money, and some of these aren't the worst software ever made. WordPress, obviously. Atom's in a dangerous position where it's supported by GitHub, which was making a little money on services, and is now owned by Microsoft, who makes Quality Job #NaN. Will Atom get the performance rewrite finished before Microsoft shutters GitHub? Will it keep working? Nobody knows! Fucking Slack is appallingly bad, not because it's Electron but because non-corporate customers don't matter to them.

Free software is mostly garbage, and we get things like the npm event-stream takeover because nobody maintains their own shit, just make junk and throw it away, and then we're SHOCKED when criminals see this as an opportunity.

As usual, I don't have solutions, only problems. I write my own software so I don't have to rely on other people's software. I ought to grow my own food, dig a well, and stockpile guns and ammo, but I'll probably just turn Reaver if I survive the coming collapse of everything.

Mature Programming Environment

Updating software annoys me.

I like Janie's Red Queen metaphor, a constant chase that gets nowhere, but you have to keep up. Updating software is utterly pointless if the old stuff still works, but if you don't then everything breaks.

If you give a person a program, you will frustrate them for a day. If you teach a person to program, you will frustrate them for a lifetime!

I'd rather like to have one of Vernor Vinge's "mature programming environments", where programming isn't a matter of boiling the ocean by starting over, or fixing code to match new APIs, but finding the parts you need and gluing them together with new code in old, ancient, centuries or millennia-old APIs that Just Work. For quite a while, the NeXTstep/Mac environment was like that, 30-year-old NS programs worked fine. But now everything is broken again.