Tuesday, June 04, 2024

Software Development As Reinforcement Learning



Imagine there was some way to discipline software development with a singular metric so objective that no matter how many billions you had to hire Developers Developers Developers even Steve Ballmer could produce higher quality software than anything imagined by Linus Torvalds in his wildest dreams of Linux kernel quality.

There are two types of readers of the above sentence:

  1. Huh? Of course spending billions hiring Developers Developers Developers can result in higher quality software than an open source project like Linux!
  2. That's almost inconceivable since the kinds of "Developers" attracted to huge steaming piles of cash are going to elbow out of the way anyone remotely resembling someone I want anywhere near software I'm going to rely on.

Only the second type has any hope of comprehending a revolution in software development so simple as to beggar the imagination:

Reward software developers that reduce the size of a bootable image that installs the software and passes the test suite.

This might be called Software Development As Reinforcement Learning (henceforth SDARL), but don't get hung up on replacing human programmers with LLMs or some such. It works regardless of the form(s) of intelligence acting as "developers". To be clear, there is a connection to the the foundation of artificial intelligence in Algorithmic Information Theory. The metric for the benchmark is called the Algorithmic Information Criterion for model selection (henceforth AIC). AIC is the most principled information criterion for model selection. AIC formalizes Ockham's Razor.

Before we go further into this revolutionary idea, let's ground it in an exemplar:

The Linux Kernel

The aforementioned "test suite" is, for the Linux kernel, produced by The Linux Test Project.

With that context, here's the FAQ:

Q: Are you talking about the size of the bootable ISO image that installs Linux?

A: Not likely. The bootable image might expand into something like deployable image of Linux but it would be limited to the kernel only.

Q: Of what value is reducing the size of the kernel?

A: It reduces both the attack surface and the argument surface.

Q: What is the "attack surface"?

A: The number of ways that an adversary may exploit complexity in a system.

Q: What is the "argument surface"?

A: The time spent in arguing over design decisions because humans are using non-standard terms for the same concepts.

Q: Doesn't favoring space over time in kernel installation ignore the high cost of time compared to the low cost of memory, storage and bandwidth?

A: You're thinking of deployable images again -- not the reward criterion for a kernel candidate.

Q: What is the difference between a deployable image and a kernel candidate for SDARL?

A: The deployable image will likely be a partially-expanded version of the kernel candidate.

Q: What is to prevent the "winning" Linux kernel from being a minified version of the Haskell Operating System that no one can read but the authors.

A: Open source means the original "source" must be available along with the minimizer for source code review.

Q: What is to keep such an interpretive operating system from winning when it would be so slow as to be worthless?

A: The same thing that keeps any slow software from being accepted: Testing. In the case of the Linux kernel, we're talking growfiles, doio, iogen, etc. tests.

Q: Where would the money come from to reward winners?

A: What is the value of quality software? In the case of the Linux Test Project the contributors are "SUSE, Red Hat, Fujitsu, IBM, Cisco, Oracle and others." In fact, the value of quality software is up there with the value of high quality science: trillions of dollars a year.

Q: Are quality developers really motivated by money?

A: Exceptions, such as Fields Medalist Grigori Perelman's famous refusal of money, are "exceptions" because generally people really are motivated by money. That includes gifted software developers as well as gifted mathematicians. Artificial intelligence software generators are another matter but the principle is the same: those who develop those generative agents are, themselves, subject to reinforcement learning.

Q: Are you saying all software can be funded in this manner?

A: At least the most critical software -- such as the Linux kernel -- if not entire desktop distributions -- such as Ubuntu.

Q: Won't there be knock-down-drag-out fights between different programming language "religions"?

A: Language wars have a long history extending into the natural sciences, mathematics and philosophy. Indeed, SDARL would meta-discpline those disciplines to the extent they form the intellectual substrate for software models of reality.

Q: Where can I sign up?

A: Get involved with The Linux Test Project and figure out how to help them to see the SDARL light.

5 comments:

Sam J. said...

Maybe what you seek already exist or at least a good beginning.

http://jehanne.h--k.it/pages/overview.html

https://github.com/JehanneOS

Also

https://en.wikipedia.org/wiki/L4_microkernel_family

Jim Bowery said...

Rather the AIT criterion is what folks involved with JehanneOS seek. What *I* seek is for people to recognize the AIT criterion for model selection including software as model of its use cases, is what *they* seek. My seeking is at a meta level of abstraction so that people get out of the habit of palavering at each other about how what they are doing is achieving elegance and start specifying what they mean by "elegance". See the difference?

Sam J. said...

I forgot to add, one of the biggest problems is software drivers for various hardware.

Some possible ways around this is to have an AI analyze driver code and covert it into some sort of generic driver code that could then be converted into code for any type processor/OS.

Even better would be software that makes writing driver code super easy for any processor/OS. Especially Windows, Apple, Linux/Unix and "new, other, OS". Then, hopefully, developers would use this code to write universal driver code and ignore the specific driver interfaces of all the OS's. I don't think this would be easy.

It would be even harder to keep this OS/Driver/whatever code project protected from capture from hostile forces.

It appears to me that Linux has been captured by "woke" groups as very little money is spent on the OS.

"Linux Foundation spends just 3.4% of its money on Linux"

https://lunduke.substack.com/p/linux-foundation-spends-just-34-of

I also believe that Linux GUI software, and some BSD projects have been deflected and/or captured deliberately by other forces. This occurred to me the 3rd time I saw this.

The first was when the desktop "Enlightenment" came out for Linux. It needed bug fixes and was not perfect, but the features were better than Windows at the time. Instead of fixing a few bugs, the primary people responsible for Enlightenment decided to rewrite ALL the code and left the whole thing in limbo for, 10 years...or so. One Linux distribution, Bodhi Linux, sent tons of fixes and said he was ignored or sent excuses. Eventually he forked Enlightenment because the software was in disarray for so long.

The second was Gnome which worked perfectly fine and then they rewrote it, taking away a ton of features and making the desktop into some sort of sudo phone'tablet type interface that annoyed people to no end. This went on for five years or so.

The third, which is when I realized what might have gone on, was when Desktop BSD decided all of a sudden to change their name to True OS, and then, they abandoned BSD for Void Linux as a base ????? They stop all work on a promising BSD desktop distribution. This was too much for me to ignore. They work on something for over ten years, then abandon it suddenly for some not very clear reason??? Too obvious.

It then occurred to me that if you were Microsoft and had a multibillion dollar stream of cash coming in, you could send a lawyer with non-disclosures and a huge sack full of cash to these cash poor developers and get them to torpedo the main line of work on desktops or OS's they were working on. I bet it cost them less than say, $250K per developer for five years or so. During that time the of no progress, nothing would be done. It would be a bargain for MS.

I think it's likely the Potters systemd and the absurd long time it’s taking for Wayland desktop software to be created is just more of the same.

I would be willing to bet good money that if you looked at the tax returns of these developers, they would have had around or shortly after the software was sabotaged a large cash infusion from some odd source to their personal accounts. Lennart Poettering even went to work at Microsoft after foisting systemd on Linux.

Linux removal from the top, likely some sort of honeypot blackmail op that installed woke wreckers in power.

Sam J. said...

"...get out of the habit of palavering at each other about how what they are doing is achieving elegance and start specifying what they mean by "elegance". See the difference?..."

I don't mean to be offensive, really, really don't, but I see what JehanneOS, and others, is/was trying to accomplish as the better route as they are making stuff that we need instead of philosophizing about it. Just thinking about it, this will lead to a lot of naval gazing and nothing accomplished. I get that defining what you want is imperative, but I see these small OS's doing that but by action and positive reinforcement based on results as being of much more use than trying to define some overarching principle. I would suspect that 99.999%, (pulling number out of a hat), of what is needed is simple sorting of data, comparing data, computing resource allocation and math functions. Is that not good enough???

And it’s likely that what you are talking about is over my head because I see the best way to get what you want to actually build something. Musk is a great example. Look at all the space this and that writing ad infinitive, but he started building with pressure fed and constantly improved and...see where he is now.

By the way your post on vortex islands is one the most brilliant things ever. I have linked it all over the place when people say we are doomed resource wise or that there are too many people. It’s just not true.

I would add to your idea that with genetic engineering we could engineer food to be created by yeast and bacteria cultures, fed by sugar electrically created with solar, or vortexes, and have whatever we wanted. Prime rib, melon, rice, whatever. The efficiency is extraordinarily higher than plants of any sort. Likely over one order of magnitude.

https://solarfoods.com/solar-foods-oy-gets-two-million-euros-in-startup-funding-for-producing-food-out-of-air/

And throwing a whacky idea out there. What if you combined an accelerated fission reactor, "energy amplifier", with Wakefield accelerators to make them shorter?

https://www.scientificamerican.com/article/cerns-pioneering-mini-accelerator-passes-first-test1/

or

https://en.wikipedia.org/wiki/EMMA_(accelerator)

https://en.wikipedia.org/wiki/Energy_amplifier

Build it on a huge, massive boat built very much like your vortex Island. Use electricity to make genetically engineered food from the reactor, and the boat could go anywhere in the Ocean. I mean a BIG boat. Really big. Without the vortex, you could put all resources into boat living space. The boat would be Edencrete with post stress cable reinforcement.

Jim Bowery said...

Ya'll are welcome to pursue whatever ya'll think is the best route to achieving whatever ya'll's goal(s) is(are). But lest ya'll be characterized as "naval gazing", "philosophizing", "abstracing", etc., how about ya'll specify ya'll's test suite as an operational definition of what ya'll's goal(s) is (are)?

Once you've done that, ya'll be in a better position to characterize my recommendation that people take the quite concrete and rubber-meets-the-road step of getting involved with The Linux Test Project as less practical than that which ya'll propose.

Having done that, ya'll will be in an excellent position to apply the AIC to reward objectively verifiable progress toward ya'll's purported goal(s).