Programming Existence

All existence can be defined through mathematics. All forms of Science, from Physics to Psychology, rely heavily on measurements of reality to communicate their discoveries. Without the capability to quantify our world through the concrete language of math, we would have no common foundation of reality to agree upon.

The emergence of society depended on the mutual understanding of mathematics. Individuals trading goods will come to a more equitable exchange when both parties are able to mentally quantify the amounts in question. Currency required the development of abstract quantification. Consider the child who readily trades a dime for the larger nickel. Individuals incapable of abstract quantification were put at a disadvantage and were less successful.

Through the advancing development of Cognitive Prostheses we have refined our mathematical understanding of the Cosmos. From written equations preserving the endless strings of numbers we could not hope to memorize, to the abacus and the calculator, and now exponentially increasing computer power, we are taking billions of variables into account in our models of existence. We are predicting the weather, the movement of galaxies, and other macro-systems with ever-increasing accuracy; however, the rules of chaos are still in effect, making it yet impossible to quantify everything.

Still, we try.

Computer Programming

For six years I have developed Web applications to handle various aspects of business. Computer programs may be thought of as mathematical constructs designed to account for all of the conditions that occur in the real world. These programs cannot dictate business rules, but allow everything in the real world to occur within the program; therefore, we must always program to the exception, not the rule.

There are three stages to programming, the development, production, and maintenance phases. In the development phase, we attempt to account for all variables found in the business model, even the exceptions. As many perspectives are sought from those working in the real world as possible, but problems will always arise when the application goes to the Production phase and thousands of users are unleashed upon it.

Users are chaotic; they will use the application in unpredictable ways. They will discover unintended short cuts, ways to work around the business rules, and ways to break the system. Many application enhancements emerged from the user-chaos, but the majority of user-chaos results in application malfunctions, similar to biological mutations. Each malfunction requires us programmers to refine our code even further. A process of user-feedback and application-refinement begins, which is the Maintenance phase.

Games

Games attempt to imitate certain aspects of real life. Monopoly imitates the capitalist market system. Chess and Risk imitate war strategies. Board games, such as these require a great deal of abstraction in order to see how the games relate to their real-life counterparts.

Games have evolved with the improvements to our Cognitive Prostheses. From the board game’s finite dimensions, video games have taken on potentially infinite expressions of variables. Entire worlds are constructed, populated with artificial beings, and furnished with natural laws.

Video games fall prey to the same problems as Web Applications when they go into production. Even though the game is constructed from the ground up, absent external dictates, players will find ways to take advantage of the system. Game rules are combined in ways the designers did not intend, giving players infinite lives, money, or other resources. Gaming magazines call these “cheats,” but they are actually the user working the system.

Another problem with most games is that they only have two absolute outcomes: win or lose. One player wins, one loses, or in the case of multiple players, one players wins, many lose. Even the award-winning game Civilization III requires the player’s civilization to conquer all other civilizations to win–in complete contradiction to our real-world experience.

Game Theory

In real life there is not the one ultimate outcome of win-lose, but three. There is win-win, win-lose, and lose-lose. These three results exist in market systems, warfare, the environment, politics, and any other complex macrosystem. Bring two competing sides to an issue and there are endless degrees of these three outcomes that may result.

Simulation games are one popular challenge that lacks a definitive winning scenario. Sim City, Sim Life, and The Sims are never-ending, like the old Atari 2600 games, they lack conclusion. Unlike the old Atari Games, the player cannot fail out of them. When the situation gets bad, like when our simulated city falls into a chaos of poverty and crime, we must either climb out of it or start over of our own accord.

Simulation games are modern expressions of the ant farm or chemistry set. They are virtual laboratories, where the scientist may experiment boldly without fear. The observations taken from the game environment are not proofs for the real world, because the game exists within the laws set down by its programmer, but games do allow us to draw hypotheses for the real world. What are weather and astronomy simulations but glorified games?

In order to draw stronger proofs from simulations about society, our application must include the complexity of human minds as variables within their equation. Games are emerging that emulate this reality. The Sims, Everquest, and Ultima are online communities without definitive criteria for winning. Players join the community, develop their character, and attempt to achieve some degree of success in relation to others in the community. Psychologists and Social Engineers are just now beginning to realize the potential for experimentation in these virtual worlds.

Beyond…

It’s hard to think of the World Wide Web as still being in its infancy. More difficult is to imagine where it will go from here. We are dealing with technologies and programming architectures that will certainly be obsolete in ten years and perhaps viewed as primitive in fifty.

Perhaps intelligence will emerge naturally from the Web, like in Robert A. Heinlein’s 1966 novel “The Moon is a Harsh Mistress.” Such an event is not difficult to imagine. One species of single-celled organism naturally evolved to congregate into a community resembling a multi-celled organism, the slime mold. Is it inconceivable that, with the trillions and trillions of lines of code and processes running around out there on the Internet, that an array of programming components could cluster to form a simple intelligence?

Program Gardening

As computer programs become increasingly complex, the raw programming code slowly becomes incomprehensible to the human mind. User interfaces are developed, such as Microsoft’s Visual Basic, to make development easier, but these are ultimately only a temporary cognitive crutch. Eventually a new way of programming must emerge.

Computer Scientists are increasingly learning to exploit the best programmer we have at our disposal, the computer. Supercomputing legend Danny Hillis used a process of randomly generating programming logic to design number-sorting algorithms. The majority of these were completely non-functional, but those that did work were allowed to compete and crossbreed with one another and he selected the most successful again. Through this emergent process, he developed the most efficient number-sorting algorithm known. The process of natural selection took longer than a human mind writing the program, but the emergent end result was far superior to the designed one.

Emergent programming harnesses the process of natural selection to evolve programs that suit our needs out of a “primordial soup” of programming code. While the simultaneously pragmatic and random process of natural selection weeds the less effective biological expressions out of our environment, the programmer’s needs become the criteria for selecting which programs may continue to reproduce and which are erased to free up resources for the successful code to mutate into new expressions.

Artificial Intelligence

Without Emergent Computer Programming, the development of AI remains an impossibility. The current approach to AI, the process of systematically adding variables to some massive equation meant to mimic human intelligence, will never achieve real intelligence.

Intelligence requires the ability to learn, to combine existing data in new ways, to encounter mistakes and account for them in the future. With Artificial Intelligence we are attempting to construct a cognitive prosthesis far more intuitive and adaptable to our needs than a simple accounting program or word processor. At present, using our current programming methods, it is the programmer who serves as the cognitive prosthesis for the AI.

Futurist Stanislaw Lem hypothesized that all biological life would eventually give way to mechanical. When the human race has figured out enough of the cosmic equation to harness the power of emergent design, this hypothesis may become theory.


Posted

in

by

Tags: