In the movie Hackers (1995) was a famous scene, in which the computernerds are talking about books. They have given them special names like the “White book”, “Red book” and so on. A comprehensive list is available at http://blog.fogus.me/2004/07/08/242/ From a library point of view, it is simply a bibliography of computerrelated printed books. The list is not very long, not more than 27 books are on the list, which can be subdivided in the following categories:
• programming languages: Lisp, Smalltalk, Perl, Smalltalk history, Smalltalk-88, Pascal, C, C new, C++
• misc: Hacker dictionary, AI
• graphic: OpenGL, OpenGL Programming,
• Postscript: Postscript, Postscript Language, Reference, Adobe Type1
• computer science: Automata theory, compiler, compiler-design, computerprograms
• Unix: UNIX books, UNIX interface, POSIX, Unix environment
• operating systems: IBM PC, trusted computer system
The similar featuure of all the books is, that they are containing knowledge about the computerhistory of the 1970-1990s. That means, knowledge about creating a free operating system from scratch. It starts with automata-theory and what a compiler is. The next step a concrete programming languages like Lisp and Smalltalk, then a bit Unix implementation and on top some computerpractice with Postscript, OpenGL and security. Overall it is a nice list, which contains carefully selected books from all major disciplines. Some of the books, for example about the Pascal programming language are outdated today, others for example about Postscript or Unix are very relevant.
The perhaps most important book on the list is not the purple book or the green book, it is a book which has no direct color and is referenced as “other bibles”. The name is “Artificial Intelligence: A Modern Approach by Russell and Norvig”. It is a special book, because it doesn’t fit into the above categories. AI is not a programming language, not an operating system and has nothing to do with compilers. To be onest, the Russel/Norvig book doesn’t really fit on the book list, instead it can be seen as an open question.
The hackers of the 1970s-1990s have made their homework in a sense, that they have read all the other book and programmed working software. All the books can be summarized to the Linux operating system. It is Unix compatible, it is opensource, contains compilers for all major languages, and it has even a postscript viewer integrated. What the old-school hackers and programmers didn’t have realized must do the next generation. That is Artificial Intelligence. It is a category, which the old hackers were aware of it. In the hackers dictionary the term is explained, and most programmer know what it is. But in general, AI is unexplored land. And even the Russel/Norvig book brings not really a deeper understanding of AI into the world, it is only an introdution, but not a reference manual.
The reason why AI is different from the classical hacker discplines like programming and Unix has to do with the number of literature which is needed for describing the subject. Classical Unix programming can be explained with a small amount of books. In the above list, around 20 books are mentioned, and in reality, 100 books are enough for explaining everything about programming in a high-level-language, make a compiler from scratch and write a Unix clone. But for AI, 100 books would be enough. That means, AI is more complex.
The way to AI
Let us investigate, which books from the list are useful for programming AI and robotics application. The first surprise is, that the Lisp book “Common Lisp: The Language by Guy Steele” is not very helpful in programming such things. Lisp was invented as an AI language, but the manual is focused on compiler development. That means, Lisp is a good language for meta-compiling and operating system development. The famous Emacs editor was written in it. But the Lisp book has no iinformation about AI. Other books are way more helpful, for example the smalltalk bible which explain what objectoriented programming is, and the book about opengl, because with opengl it is possible to draw robots on the screen for developing an interactive testbed for AI development. The most important is not surprising the book “Artificial Intelligence: A Modern Approach” which gives a first introduction to the subject. The bad news is, that the book failed. It is not a reference manual, it is more a bibliography to find other information from a special subject. That means, if somebody is interested in neural network, he finds at the end of the book with a bit luck additional material which explains the topic. The book itself can’t do it. Because it has only 1200 pages, which is equal to 600 DIN A4 pages, which is equal to 60 shorts papers which were uploaded to Arxiv.
And here is the answer, what the real bible for AI researcher is. It is not a special book, but a preprint server which hosts million of papers. It has nothing to do hacking or systemprogramming, instead reading a complete preprint server is similar to studying a subject in depth.
In computer history, the term “Hacking” means to become familiar with the hacking books. That means to get an expert in compilers, UNIX, computer security and Postscript. The term hacking can be transferred to the subject AI. But what is the baseline there? What is the company or the book which has to be hacked? At first, AI can be recognized as information which is written down in academic papers about AI. I would guess, that around 10 million AI-related papers were written today. And 100% of them are published by publishing companies like Elsevier, Springer and so forth. AI Hacking means, to read the papers, understand it and perhaps become an publisher for its own.
The hero in AI hacking is Google Scholar, there is no doubt, because they have build a search engine for retrieving information already out there. I would call AI a topic from computer science, because programming and compiler-design is only a small part of it. At first, AI is a section in a library, which means it is a science written down in papers. Writing papers, and reading papers is primary task of AI researchers and AI hackers. AI can be compared with classical hacking, only with more information. The classical UNIX systemprogrammer needs not more than 100 books. This was enough to become an expert in C++ and Unix. The classical AI hacker needs million of papers, otherwise he is not familiar with important subject in the field.
Let us investigate the intersection between UNIX hacking and AI hacking in detail. If the Unix hacker was successful, he has programmed an operating system for himself, or at least some parts of it. Eric S. Raymond, Dennis Ritchie, Bjarne Stroustrup and Linus Torvalds are typical examples. If they have made their homework, a normal PC boots a Linux system until the GUI, and all user programs like the compiler, texteditor and graphics programs are ready. A Unix system programmer was successful, if the operating system is hardened against malware, has no major bugs, and gives the user what he needs. If the Unix operating system works, the systemprogrammer is out of the loop. It is up to the user, to do something interesting with it. The systemprogrammer only provides the compiler, the programming language, the GUI and the Postscript definition.
A working operating system can be seen as the intersection between Unix hackers and AI hackers. A bugfree OS is the result of what Unix hackers have done, and the startpoint for AI programmers. Now, let us observe the situation from AI programmers point of view. He powers up the computer, and gets a working environment. It has a highlevel texteditor which can output LaTeX, it contains of a objectoriented programming language which is compiled to fast machine code, and the software which is created runs under every POSIX operating system. And now, it is up to the AI hacker, to make something useful of it.
Today, this is unexplored land. It is unclear how to use C++ for programming a robot, or how to use a texteditor for writing an impressive paper about AI. There is a need for new generation of hackers, which are focussed entirely on the AI. That means, the classical problems like programming a compiler, inventing a programming language or program a multitasking operating system are done by the above mentioned heroes of the past. The wheel can’t be invented twice. New hackers must play on a different court.
Suppose, that one printed book is equal to 10 written papers. From the area of AI and robotics, around 10 million papers are available at Google Scholar. Printing them out would result into 1 million books. In comparison, the hackers dictionary is referencing to 25 important books about programming and Unix, while a AI hacker must have read around 1 million books.
Hardware vs Software vs. AI
Software developers see themself as independent from hardware developer. That means, they are not interested in how a CPU works, or what graphicscard a PC has. Instead the idea is to use the current hardware for doing something with it. The next step is to separate between software development, which has to do with operating systems, system administration, compilers and programminglanguages and on the other hand we have Artificial Intelligence. That means, an AI Engineer is not interested in a specific programming langauge or operating system. He is focussed on the algorithm itself and the paper which described him.
Even AI engineers are software developers too, both groups have not much in common. The normal software developer are interested in programming a computer. That means, they want to try out what a machine can do. For example, they want to print a character on the screen, or they want to write a mouse driver. From AI perspective this activities are not very interesting. Because apart from programming a computer, the focus is in developing autonomous systems.