On Strange Little Computer Programs
Saturday • October 8th 2022 • 10:02:08 pm
Sometimes it is OK, for a computer program to be strange.
Not broken, but very unusual.
The way to describe, this strangeness...
Is found in the ratio of lines of code, to the the usefulness of the program.
But there are no strict declarations here, the program, is strange.
This is both about inventing on principle, and abstract art that becomes useful.
And in its best form, it approaches the UNIX philosophy...
Of do some one simple thing, and do it well.
No doubt this is never taught in school, and the professional programmer can't be strange.
But this is important, because often fixing the strangeness.
Destroys a beautiful work of art, it makes it overflow with code, and ugly.
It may come as a surprise, but the modern code editor is a strange program.
Here people are allowed to type, at something that greatly benefits from structure.
WHen compared to a visual programming language, a code editor, is an ancient and barbaric tool.
But even though a programmer can do bad things with their code editor - it is still allowed.
Wikipedia is an example of a strange program, anybody can add an article.
There is no way to tell what is a good idea and what is't, until someone create an article.
And a group of editors, give it thumbs up.
But how strange of an encyclopedia, and the WikiWiki behind it.
Has no concept of missing files, the early WikiWiki when encountering a missing page.
Would say the strangest thing in deed, "this page does not yet exist, do you want to create it?"
Some would ask, "why would I want to create something that I wanted to learn about?"
How strange, hooooow strange.
Early phones, when they first showed up, were a party line, where everyone could hear everybody else.
But just try to imagine, how simple the technology behind this was, you just tied a a bunch of wires together.
Everything just worked, a village could easily communicate, a fully functional communication network.
Today's strange little computer programs, don't need as much repair and hand holding as it may seem at first.
Making a tiny program complex, just to validate everything, and confine the user in a perfect little square box, destroys it.
Upgrading it, destroys it.
microjs.com is one example, of a list of tiny useful programs.
But what makes a strange little program even better, is a user interface, that eliminates most of the questions.
The the little dat.gui comes to mind, both because it itself is strange and simple.
And because it makes strange programs, somewhat more controllable.
In closing, I would say, command line programs are tiny and strange.
Perhaps even the filesystem tree, and certainly the concept of /proc or device as file.
But when you give them a simple and strange way to communicate, you get the world's most powerful operating system.
Do not fix strange little programs, let them be perfect and tiny.
Maybe connect them together, or parade them on your portfolio, but don't fix or upgrade them - let them stay strange.