Programmer’s Retirement; Or, Don't Let The Office Slow You Down
Friday • December 29th 2023 • 12:09:25 am
You retire from the corporate world, the moment you have your good idea, it will come early for most, just to give you an example, early 20s.
And to write a good program well, you neither make it more advanced, nor merely simpler, nor should you ever split hair about which simplicity is best.
Once you have your good idea, you begin role-playing, writing inspired documentation and creating a reference implementation.
This is just an elaborate Rubber Duck Debugging process, to get everything decompressed and nice and loose.
You will repeat this process many times, each time producing, not just a cleaner but leaner version of your idea.
When you sit down to write the final version, the one that feels like a little machine.
You must use sarcasm in the circuit, because you are writing code against complexity.
A foe unlike any other, complexity is a trickster that knows no bounds.
So you must speak its language, to put it in the place it belongs, a dark corner in a lonely attic.
So that you don’t have to spend, half you life there.
The compulsion to program an operating system, around your program, complete with services and even a virtual file system – is a trick.
Almost everyone gets nailed, and this should be a friendly joke among the OP Wizards.
Or the over powered who never code a program, without having a magnitudes more than they need.
As you get to the final test version, you will have discovered mechanical things, similar to automata.
And those are the mechanics you have to use, to make a Sarcastically Small final version of your creation.
To give some examples, of what Sarcastically Small means:
The WikiWiki is a Sarcastically Small version, of an infinitely large content management system,
Apples to oranges you say? well lets see the world encyclopedia running on your CMS of choice.
Do you need to reach a consensus? On a network of servers, give them a random UUID string for name, and just sort to pick the winner.
As information spreads on what is up or down, everyone eventually reaches the same conclusion.
You think this is trash when compares to your Paxos implementation, lets try to debug your code…
Need a database, suck it up and get used to disk sync at 500ms intervals, then create an in memory database.
By simply exposing whatever your programming language has got, over local HTTP, expose Array, Collection, Named Hash, Set, Map, integer.
Need sync, boot up all the database instances all at once, have the master send them the same commands it uses.
If something goes down, keep track in an integer of the last command, if it goes down hard, snapshot, same as redis.
It all feels flimsy, I know, that is the sarcasm in the circuit.
It is all really that simple, the dark imaginings come from lack of experience.
Either not having the right proportion of things, of doing something in the wrong spot.
That is why you must role-play writing documentation, and creating a wholehearted reference implementation.
Before you can make you idea, magnificent, you have to become a master of sarcasm.
It is also the reason why you have to retire early, you will need time.
And finally, you have to create a program, that the older you will build on.
Examples of those are HyperCard, ColdFusion, WebObjects, JavaSpring, Small Talk, CouchDB, MediaWiki, Music Trackers and Digital Audio Workstations.
NeXTSTEP Interface Builder, of Visual Basic Design Interface, Pure Data, Yahoo Pipes and the scrapers, NodeRED, Blender’s Geometry Node Editor.
Being a programmer, is a great power, you write your program, and program your future.
Retire early, so that mere office work never has a chance to slow you down, or make you old for a mere paycheck, and build, build all the way up.