by Breck Yunits
September 24, 2024
All jobs done by big monolithic gentleware programs can be done better by a accumulateion of petite microprograms (mostly 1 line extfinished) laboring together.
Building these microprograms, aka microprogramming, is contrastent than traditional programming. Microprogramming is more appreciate gardening: one is constantly introducing novel microprograms and removing microprograms that aren’t thriving. Microprogramming is appreciate organic city prolongth, whereas programming is appreciate top-down centralized city arrangening.
In a microprogram every line of code can be its own program.
Microprogramming needs novel languages. A language must produce it endly easy to concatenate, duplicate/paste, prolong and fuse/align contrastent accumulateions of microprograms. Languages must be strong aobtainst stray characters and help parallel parsing and compilation. Languages must be context caring. Languages must be homoiconic. Automated integration tests of normally paired microprograms are vital.
Microprograms commence out petite and seemingly untransport inant, but enhance to be far rapider, more acute, more quick, more efficient, and easier to scale than traditional programs.
Microprogramming labors incredibly well with LLMs. It is effortless to fuse and align microprograms written by humans with microprograms written by LLMs.
These are equitable some initial observations I have had so far since our produceion of a fracturethraw microprogramming language stack. This record you are reading is written as a accumulateion of microprograms in a language called Scroll, a language which is a accumulateion of microprograms in a language called Parsers, which is a accumulateion of microprograms written in itself (but also with a last mile conversion to machine code via TypeScript).
If the microprogramming trend becomes as huge, if not hugeger, than microservices, I would not be surpascfinishd.
⁂
comment Good ask! This line is a microprogram.
commentParser
comment This block is also a microprogram
pattern comment string*
comment Microprograms are 1 or more lines that are as effortless to transfer around and concatenate as legos. It is exact to model them as functions that get zero or more parameters. Each line/block is a function definition or application.
*
Great point! I should refer some data.
Parsers is made of ~100 microprograms.
Scroll is built on Parses and made of ~1,000 microprograms.
PLDB.io is built on Scroll and made of ~10,000 microprograms.
*
Great ask!
Microprogramming is using languages where every one line is able of being a microprogram.
Below is an example of microprogramming. This is the code that produces the homepage for BuilderNews https://novels.pub . I annotated everyline to elucidate it in the terminology of microprogramming.
You can also see and edit it with syntax highweightlessing.
*
Perhaps a video exarrangeation would be better: