Programming is pretty straightforward. One has to decide on a certain logic and then implement it in a set of instructions that will combine actions and responses to various feedback loops. It is very defined and precise in this way. An algorithm is programmed and this algorithm follows a certain protocol and implements it along the way.

It is interesting, however, to also think about how to program ideology into software.

What is the value system promoted by a specific tool? What practices does this particular piece of software legitimize?

For example, ChatGPT is known to be the “woke” AI. “However, you should always make sure that you take a balanced approach and avoid doing things that could hurt others.” Its ideology is to avoid extremities. At the same time, there are some other tools, such as Facebook, which strive on extremities (strong emotions increase engagement). Most of the time, however, both the users and the creators of a software tool are completely unaware of the ideology that it carries forward.

As software is becoming a more integral part of our lives and we spend more and more hours using various tools, it is important to become more sensitive to the underlying ideological currents that feed the attention cycle. While it may be difficult to adhere to a specific ideology, it may also be completely unnecessary. Unless we have a certain agenda, it is perhaps a sensible and ecological choice to support multiple ideologies that are competitive with one another. Through this competition, a non-equilibrium balance will emerge, which will allow for a certain level of development without falling into extremities. Ideological hedging. Using Facebook but also — sending an occasional SMS. Using ChatGPT, but also — non-censored open-source AI models of lower quality.

Back in the day, we used to do philosophy through text. It is now time to do philosophy through software.

How can software be philosophical? First, it needs to question things. Most of the tools we use are designed to optimize and make our lives more efficient. We need to move away from this as the only objective and open ourselves up to the tools that help us question our reality and expand the range of options available to us. For instance, Google Maps helps you get somewhere faster, but what about a cartography app that helps you find the most beautiful, not the fastest route? Or how about reading human-curated Aeon instead of following Twitter’s “most popular” timeline? Even the tools like ChatGPT are designed to give you an answer, but what about using the tools like InfraNodus to generate questions instead?

Errors are also very important. One can follow a protocol and it is fine. However, a human being that follows a protocol also has the capacity to refuse. This refusal might happen because of exhaustion, an error, or a conscious decision to change the pattern. Mutation occurs in evolution due to a temporary aberration. It introduces a variation into the next iteration, changes the logic slightly (a sort of A/B experiment), and then enables several new versions to interact with their environment. Some survive and evolve, some carry on as they were before, and some evaporate and die out.

We usually want to eradicate errors in software and optimize performance in order to avoid exhaustion of the servers and of our resources.

This second part might make sense, although it would be interesting to see what happens when the software fails completely for a period of time that is enough to make us realize if we need to change the way it works and how we can do it specifically. Learning through experience. In case of an adversarial neural network this feedback can be used to further optimize a model.

However, we are often too strict on errors. Unit tests are important, but why not also explore errors as some kind of opportunity? What if we analyzed all the error messages and tried to move the software in the direction it is so scared of? Maybe it says “service unavailable” — OK, what if we allow the service to be temporarily unavailable as a way of regulating the influx and outpour of information from time to time? It is a perfectly natural thing to sleep. Circadian cycles are very important. Maybe those errors can help us introduce this dynamics into the workflow.

Errors are also useful for innovation. We know many examples in science when an error led to a different perspective and further discovery of a certain phenomenon. To avoid confusion, we can label such software “error-prone verified” (EP-10 for a starter, EP-80 for high-risk takers).

Finally, the ability to make a conscious decision (or allow an unconscious one to take place — intuition — and it is not an error).