The End of Nerds?

by Peter Chapman

0211nerds_sub_microsoft

Computer languages with the help of programmers allow us to create programs that model almost anything, both real and imaginary. For instance, Microsoft’s Halo program simulates very realistically alien worlds. Our technology and tools today allow computers today to do things that rival and exceed Human intelligence. There is a claim to build a Strong A.I. engine that you need to have the same computing power as a Human brain. I am going to argue that you don’t. And if I am wrong, with Moore’s Law it doesn’t matter anyways. If a single low-end XBOX game console can give you Halo, surely Google’s computing power is more than enough.

So if we have the hardware to do Strong A.I., what is the problem? Answer: It’s those pesky programmers and their computer languages. To make a computer do a thing, you need a programmer and a computer language. Given specifications, time and money, and a good programming team, you can do almost anything on a computer. The problem though this is a very slow (and expensive) process. One reason for the slowness is that end user specifications must be translated into source code in a computer language such as Java, C# or C++. The next reason is that the computer languages themselves were designed from a bottom up design based on the computer hardware, not the problems they would eventually solve. As the computer languages themselves evolved and new ones created, each generation moves closer to the language of the problem set. For instance, object oriented programming introduces classes and instances to more closely model the real world. But no computer language today can use any Human language such as English directly.

What if we had a new computer language called English? Like any computer language, this new language would compile English statements into code to be executed by a computer. If we had such a thing, would we still need programmers? We might still have a need for System Analysts. These are people who take the rules of a particular problem set and compile them into well formed specifications. Even if you have English as your programming language, you still need the specifications to be coherent (which is a skill set onto itself).

This is the approach we have taken for facts collection. We are building an English compiler. Unto itself this is not Strong A.I., because you still need some special sauce to get to the next level. But an interesting step, none the less, along the path to Strong A.I. Even without the “thinking component”, an ability to parse English and compile a large interrelated set of facts is commercially useful. If any of the search engines could parse the assertions or facts from web pages on the Internet, a more useful search engine could be built. In the land of A.I., this is called knowledge representation. So our next goal is taking English as input and generating code to form fact storage.

I hope to post a video of this working later this week.

And back to the title of this post, clearly, if something like this could be built, then the need for so many programmers would be greatly reduced over time. For those old enough, I think the same thing could happen to software engineering as what happened to hardware engineers in the 1980s.