The second software crisis

The original software crisis starts in the mid 1970s and defined as lack of lowlevel software for running a computer. Namely Compiler, operating systems, applications for text processing and network operating systems. The original software can be called solved, because today everything is available both as commercial product and since the 1990 as Open Source software, called Linux. If somebody today needs a compiler for translating object oriented sourcecode in machinecode he has the choice between at least 100 different alternatives. Some of them will cost money (Visual C++) others are for free (GNU C++).

Identifying the key components which have solved the software crisis is easy. With the advent of microcomputers, the computing idea became a mainstream subject. In the 1980s even kids were able to program small BASIC programs at home. In parallel the software industry growed and created a huge market for all kind of applications. Learning to program is a standard subject in any university course around the planet and online forums like Stackoverflow extend the idea further that everybody is welcome in learning it.

But there is a second software crisis at the horizon. That is software not for running a computer, but for realizing Artificial Intelligence. This time it is much more difficult to solve the problem. That means, the former infrastructure which solved the first crisis is not enough to come up with the second. The software industry today combined with github, stackoverflow and programming courses at university level are not enough in teaching what AI is. That problem is, that AI is not only a computer science topic but has a much broader impact. The AI topic is discussed mostly in academic papers, without writing a paper it is not possible to grasp a subject in detail. The problem is, that until now, there is not a real infrastructure available to create and dristribute AI related papers. This bottleneck prevents a raising Artificial Intelligence community.

It is important to separate between programming itself, and AI programming. Programming itself is easy. It is described in the literature since the 1970 and contains subject like compilers, object-oriented programming, databases and operating systems. The problem is, that even somebody is an expert in all of these subject he isn’t prepared for Artificial Intelligence. AI is something which is more complicated then only programming. AI is a combination between computer programming and AI theory.

Programming of an operating system needs surprisingly less scientific effort. It is enough to have read 10 major books and the newbie can start to write his own compiler, driver or operating system. Programmers are mostly only programmers, that means, they have understand the computer system but they are not academics. In contrast, the AI topic is located primarly in the gutenberg galaxis. It contains of around 1 million different papers written by others, and a beginner should have read all to can discuss current developments. Without access to Google Scholar it is not possible to contribute in any useful way to the AI community. If somebody doesn’t know what a LSTM network is, what STRIPS mean or what reinforcement learning is, he will not understand more difficult ideas.

Become a good programmer can be realized without knowing the academic literature or simply ignoring it. Trying the same in the AI domain isn’t an option. AI can be visualized as a huge mountain of books which has to climbed until the top. It is not possible to bypass the mountain or pretend that it doesn’t exist. The problem is, that browsing through Google Scholar and writing papers alone is nothing what is teached in today’s university system. And that is the reason, why AI failed in general. There are simply no students available which have read enough papers and written enough by it’s own, to call themself an expert. That means, the total number of people who are familiar with the AI subject is very very small. This results into a second software crisis. That means, they are virtual no programs available and no tutorials how to write such programs. AI is hidden behind company door and is done in secrecy.


2 thoughts on “The second software crisis

  1. Hello Manuel, nice article. I just want to add that the problems that ai solves are highly specialized with
    a mathematical background. I tried to unterstand the algorithms of Schmidhubers LSTM Networks in his
    paper “LSTM: a search time odyssey” for my bachelor thesis but couldnt fully grasp it. I watched a
    video from andrey karpathy where he gave a course in standford about lstms but says at minute 47 that he didnt get the original concepts. I think this is why they are using their own equations (rather than the original ones proposed in the paper).


  2. @Max You can’t understand LSTM networks, because the network itself isn’t able to predict the data. Usually, neural networks are combined with previous defined handcoded domain models to predict earthquakes, speech, handwriting or walking. Focussing only on the neural network and ignore the handcrafted model is an anti-pattern. The better way is to ask at first for the model (which is mostly created with matlab) and then ask, how the neural network was able to fit to that model. So called model-free learning, in which the LSTM networks learns directly the rawdata never worked, and the recognition rate would fall under 1%. A detailed look into published papers, for example about Central pattern generators for human walking showed, that such a model-free learning wasn’t used by the researchers. Before they have trained the neural network, they have created first the domain model, but this step isn’t very well documented because it would help to reproduce the work.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.