July 20, 2018

The first software-crisis is solved


Since the 1970s the term software crisis was used to describe a deficit in modern system software. Artifacts like operating systems, compilers, and graphic software were not available in the 1970s and the 1980s. A short look into mainstream journals from that area shows, that each new developed program and each operating system was welcome because the people were happy, if any software was available. The reason why minimalic operating systems like MS-DOS were at the beginning such a great success has to do, that a simple 3.5 inch floppy disc which can boot a PC was seen at the eight world wonder. To understand the situation better we must go back in the 1970s. In that area, no micocomputer like the Apple ii available, no system software and especially no software which could connect computers over the internet. The problem was, that in that area even computer experts were very bad in coding. If they had developed in assembly language a small text editor they have seen themself as god like programmers.
Early databases in the 1980's were at the same time extreme minimalistic but costs a huge amount of money. That means, the end user paid 10000 US$ and get a product with an upper memory limit of 20 kilobyte and no opportunity to store fulltext data in the software.
To summarize the software crisis from an economical perspective we can say, that hardware and software was simply to expensive. Programming a simple 10 kb application was done as a million US$ project and a simple memory extender cost more then an airplane. The perhaps most impressive development was, that the software crisis was at one time in history done. I would guess, that the mid 1990s can be seen as the turning point, because since then microcomputer were available for small prices and software to run them also. And the software industry has increased their productivity dramatically. Many researchers were not only interested to write a computer program, but they discussed about how to write programs more easily. As a consequence new programming languages like C, new concepts like object-oriented programming and multi-tasking operating systems were invented. This advanced technology was called in the area of it's invention 5th generation workstation computer and can be dated back at the late 1980s. Such computersystems looked very familiar to what is used even today. And programmer could write software on that machines without much effort.
The best invention to solve the software crisis was perhaps the GNU Open Source project. The main idea was, to create all the software which was available again but leave out the pricetag. At first time not only advanced C++ compilers and network ready operating systems were available but thanks Linus Torvalds such software was given away for free. This made the internet revolution possible and fired a development viewed backwards as dot com bubble.
The original problems called software crisis can be called solved. That means, the industry found together with academic researcher an answer to the challenge. If today somebody isn't able to find a compiler or an operating system to boot up his computer it is not a problem of the hardware or the software industry, but has different reasons. That means, cheap hardware and software for free is available and waits for everybody who is interested to learn.
The world is not very exciting if no crisis is there. The first problem was solved, but another problem is open. This time it is unclear how to fix it. The new problem has nothing to do with system software for booting computers, but with AI related software. That are packages for controlling robots, powering image recognition or realizing search engines. Such AI Related software isn't available, and like in the 1970s before, any small attempt in writing such a software is celebrated as the eight world wonder. If somebody in the world is able to program a walking robot (for example Boston dynamics) he will get applause from million or even billion users worldwide, because no other company can do so. That means, the knowledge of how to program robots is not available in the public domain, their costs are high.
I have no idea, how to fix the second crisis. It is way more difficult to program a robot, then to program a compiler for the C programming language. How to program a fast compiler is written in many books. And many people know how to do it. They are talking about the subject at stackoverflow or on their blog. And many examples are available at github. But nobody knows how to program a robot. The total number of people how is able to install the ROS software is smaller then 30. That are the employees at Willow Garage how have developed the tool, and they didn't documented their work. The same is true for specialized deeplearning hardware. It is unclear how the chips are manufactured or what the tensorflow software is doing really with the resources.
Is the AI software crisis really there or is it only an invention of the media? If somebody isn't interested in AI he see perhaps no problem. Because normal computer software is available and is working great. If computing is equal to writing a texteditor in C++ or a Linux hardware driver for controlling a wlan card, then no crisis is there. But some visions goes into a direction that computers are perhaps able to controll robots and then it would be nice to experience how to program them. If somebody is interested in such problems, he will notice the second software crisis. He will recognize that the given papers today are too complicated and that the amount of information of is too low. And perhaps he will recognize that his own skills are too weak to program AI related software. Perhaps he has tried to program a simple Pacman game AI which should simply avoid the ghosts and he fails. And then he has a problem, because he is powerless in front of his computer.
The shared experience of beginners in AI is, that they have too little knowledge to be successful. They have tried out simple AI puzzles, failed with the implementation and give up. They know, that AI is perhaps possible, but not by themself and not in their lifespan. This feeling of disillusion is very common for today's computer generation. It isn't a failure of the individual but from larger circles. It is unclear right now how to solve the problem. Perhaps it would be enough to bring Open Access forward, so that information about AI related topic will become easier available. Is this enough? Papers are available today, but they are to complicated and sometimes the authors have also no idea about the subject. The problems goes deeper. The main problem is, that AI was never before researched in the human history. IT is something which wasn't available in the past. And there are no methodologies available how to understand the subject or finding out new things.