Software
March 26, 2022•374 words
I believe that software should be designed very carefully. I imagine that many modern programmers believe that Moor's law will save their inefficient code, but I think that this shouldn't be the case. I also believe that code should be designed to be simple, extensible, and open-source. In essence, code should be efficient and free (as in freedom)
Efficient code is code that runs quickly and has few lines of code. Thus efficient code should be thoughtful. This fits into my idea of entropy, as using simple code to do complex tasks is a a higher increase in net complexity than using a mess of code to do that same task. Even though making dumpster fire of code may be more complex in the number of states it can take on (definition of entropy), the end goal of software is to do things, and ideally these tasks increase entropy. Thus having simpler software will help one do more (in number of) complex things, resulting in more complexity. In addition, efficient code makes it being free much easier.
Code should also be free. This means access and modularity. The first can be accomplished with open-source and a sufficiently liberal license. This is important as instead of wasting the free-will information on building the efficient code, one can put it to doing work on building complexity. Thus a single code being efficient may multiply in the usefulness when combined with freedom. Modularity means that the code is powerful. It is simple and clear to add and adjust to the program to accomplish more complex tasks. In this way, the difficulty of making efficient code remains linear as time builds: it is by definition that efficient code is thoughtful, thus difficult. By releasing the efficient and free code one enables future others to extend your code to do complex tasks, leading to progress. Then, by releasing that code even later beings may use that code to accomplish their tasks. Thus even though the objectives increase in difficulty, the power of the code increases thereby relieving some difficulty in designed efficient code. In addition, by keeping code secret, one is simply using the code for your own gain. This opens the door to Moloch (see [1]).