Software Sucks!
The world of software is in a complete mess today. As a result, software, to be vulgar, “sucks.” Strangely, when I try to translate this into socially acceptable terms, it doesn’t quite work. I could say “Software is bad,” or “Software has problems,” or “Software doesn’t work well,” or “Software is inadequate,” or “Software is hard to use,” or “Software doesn’t do what it should be able to do,” but… see what I mean? Software sucks! This includes operating systems, websites, and devices with software in them (such as automobiles, televisions, remotes, etc.)
If you talk to a programmer, it’s not hard to get an agreement from them that, overall, “software sucks.” When you talk to a non-programmer, you first have to get past a general impression that they feel stupid or that they don’t understand software. Once they realize that it’s not their fault and that there is something wrong with the software, then they will agree… again, that “software sucks.” The reason for this is primarily because of the architecture and how it is built.
The main problem is that there is no overall plan that programmers use for how software should be built or how software is supposed to interact with other software. Everybody just “does their own thing.” If you want program A to interface with program B, then you have to write specific code to try to make that happen, but that’s very difficult because, to one degree or another, the programs are speaking very different languages.
It’s like a city where there are no agreed-upon building codes or standards. Some bridges are strong enough for cars or trucks, but not all of them. Some people do plumbing and electricity one way, others do it another way. If one person decides to save money and use water pipes in some way to carry electricity as well, then his next-door neighbor gets electrocuted in the bathtub and he “should have known better than to take a bath.” When a heavy rainfall causes an adobe high-rise to collapse, people die and the road is blocked for months and “the tenants should have known better than to live there.”
You get the idea. The world of software is like that, only worse. The reason that Apple and Microsoft will never be able to do the things ExoTech can do is because they are living in, and building, that city. They don’t seem to think there is anything wrong with it. That’s only a rough analogy, of course. Software is potentially much more complex than any city. There are millions and millions of separate parts, and automatic actions to take into account. It takes very careful planning to get everything inter-operating with everything else. This planning has never really been done, partly because nobody imagined that software would end up where it is today, controlling almost everything we use. People have been building software like mad for almost 50 years with no thought of the future.
ExoTech has started from scratch, taking lessons from the past, especially from practices that have been successful and from those that have been disastrous. It is built on a framework that can do any of the things that existing software can do, but in a way in which the parts seamlessly communicate with each other and with the user. In ExoTech, meanings in the languages that we use are built into the framework from the lowest levels, allowing for very intuitive interfaces and even language control. In classic “state-of-the-art software,” the same problems are solved over and over again with new code in slightly different ways, resulting in an enormous hodgepodge, very much like in the imaginary city of “DoYourOwnThingVille” described above. This is not so much because of advantages or disadvantages of the different ways of doing things, but because today it’s very difficult for a programmer to connect to, and use, functionality which has been already worked out previously.
By contrast, in ExoTech, every piece of solved functionality is properly labelled and available for any future building. More importantly, every piece of functionality is accessible using a common, standard protocol that is flexible enough to deal with any type of data. Any part can communicate with any other part.
This results in a platform where data and functionality can be built upon as if it were made of Legos.
But it’s much better than Legos, because it is very fluid, and these bricks have meanings; you can refer to them and “talk to them.” The bricks can be instantly copied, changed, searched and transferred at light speed across the Internet. This is very different from and clearly much better than the current world of software.
But what of the current world of software? Do we have to replace it all at once? If not, how does ExoTech interact with it? Well, we start with an ExoBrain, which is a relatively small collection of software written this way. It does all of the basic tasks that one expects of a computer today, such as notes, calendars, word processing, spreadsheets, email, text, storage, retrieval, etc. It can interact with other ExoBrains over the Internet. An ExoBrain can also interact, import and export, in a limited way, with other non-ExoTech programs and websites, based on the constrained capabilities of that type of software.
But an ExoBrain ultimately has the potential to do any of the things that other software or websites can do and, when it does so, to add a great deal of functionality to it that was not available before. Anything that has been done in software can be done using the ExoTech method of construction in the ExoTech platform as well as things that are hard or almost impossible to do today. An ExoBrain is fully programmable but, instead of the complex and specialized drudgery that programming has become, ExoTech programming is fun, relatively easy and terrifically fast.
This time around, though, applications (ExoApps) are coordinated and in communication with all other ExoApps. Users will see how much better things are in the ExoBrain, with much greater ease of use; programmers will build the functionality needed, and the users themselves will assemble the applications to do all the things software does today, such as audio/visual editing, computer-aided design, games, banking systems, social networks, and much more and do them in a more thorough and integrated manner than is possible today.
That’s why we can expect an inevitable viral adoption of the ExoTech platform which will be unstoppable.