It is possible, however, that you haven’t heard of a language called LISP.
Now what is LISP and why is it going to be important to custom software development companies in 2021 and beyond? Now before I answer that question I’m going to make a bold prediction: Artificial Intelligence as it is practiced today has many severe limitations and LISP is going to help resolve some of these limitations. You see it is no surprise that LISP has been referred to as the go-to programming language for AI research since its creation in the 1950’s by John McCarthy. Not only is it STILL being taught in computer science programs at schools like MIT and Stanford it is literally the parent language that gave birth to the more visible and mainstream languages you hear about. Powerful properties like the if-then-else construct, new types of variables, recursion, garbage-collection, encapsulation, inheritance were gifted to us by LISP. Since this is not a hardcore technical article let’s just say that all these things are used in custom software development and mobile app development. And yet LISP is relatively unknown and has been relegated to the esoteric corners of academia and research labs. Why?
Well with great power comes the responsibility of actually knowing what you’re doing and not blowing things up. You see LISP is actually difficult to master to the point where you use it effectively in production. It takes patience and passion and commitment and so many other dirty words that you don’t have to deal with when you can just do most of the same things in JAVA or python “in just one line of code.” It’s like having to deal with the politics and regulations of building a nuclear reactor versus just building a dam and using turbines or, God forbid, those carbon-emitting petrol generators. Yes, some of these flashy development technologies used by software development companies are trend-driven and ultimately cause more problems in the long run. (hence the need for some of those annoying ‘security’ updates).
Now what makes LISP so powerful that I compare it to a nuclear reactor? It’s something called polymorphism and it basically means the ability of a program to dynamically change its own form in real-time as the need arises. But before I finish justifying this analogy, let’s look at a major shortcoming of A.I. in general then we’ll talk about how I believe LISP will help resolve this shortcoming.
So Machine Learning is all around us. It ranks our search page results. It powers speech- and facial- recognition. It recommends your Youtube Videos. It has beaten the world-champion in the ancient Chinese game of Go and very soon it will be driving you to work. These are all very impressive feats but if yours is one of the development companies involved in the actual work of developing and fine-tuning these Machine-Learning algorithms to the point of achieving these human-level results you know the massive amounts of man-hours and diverse skillsets and domain-specific knowledge required to deliver such custom products. A lot of A.I. is just like the great Wizard of Oz except here you have a whole team of puppeteers behind the curtain. The success of a lot of Machine-Learning techniques involve the ability of the computer to cycle through an extremely large space of possibilities and extremely large datasets
very quickly to form a ‘concept’ or a model of what we humans want it to ‘learn’. It’s basically a geometric structure stored in memory used to identify a similar structure or concept in the future
The problem is it can’t identify anything else that is very different from what it ‘knows’. If you build a model of a gold-fish it may be able to recognize other types of fish but it could recognize a cat or a dog. That is to say it can do local generalization but it can’t do extreme generalization. It can’t really reason or think abstractly. You still need a human brain to do that.
This is where the power of LISP comes in. Its unique programming model and a very powerful feature called Macros allow you to write custom software that has rules of logic encoded into the program that allow it to modify both its own instruction set and codebase dynamically effectively mimicking the reasoning and thought process of the programmer who wrote it. Now this is not easy to do; it takes experience and intuition to master. But if you get it right the benefits are tremendous. You can read how Silicon Valley investor Paul Graham and his team used LISP when they were a small software development company in the mid-90s to beat their competition here.
Now there has been a rise in the field of AI called program synthesis which means a whole bunch of programs are generated automatically and then the best candidate that fits a given specification is selected. Now you can do this in many programming languages but in my opinion LISP is most suited for this type of logic programming by design and exemplifies true polymorphism. Machine-Learning expert Francois Chollet who is also the designer of the Deep-Learning Framework Keras has been a strong advocate of such so-called hybrid systems. He postulates that to achieve true extreme-generalization an AI system will have to incorporate both geometric models learned from data and logic-processing units interacting with each other. He released a paper thoroughly discussing the issue which you can read here and a Kaggle challenge to go along with it. If you are a custom software developer or you run a custom software development firm it would greatly benefit you to look into these technologies in the coming year.