When procedural programming languages gave way to object-oriented programming languages, there was an uproar in the technological realm. Fear of change is natural though. After all, why fix it if it ain’t broke? However, it didn’t take long for the skeptics of OOP to come around as they no longer had to about filling their screens with thousands of lines of code or use bizarre syntax to develop programs. OOP simplified everything by allowing developers to use more natural language to create their programs. Java, C++ and Python were the most used languages early on, and PHP came later on to assist in SQL based programs and of course web programs. The OOP era has brought about many groundbreaking systems that have had a profound impact on the software landscape. So imagine the progress that will be made in this field when the next evolution of programming techniques arrives, namely machine-learning.
Machine learning has taken the creation of systems and programs to a whole new level where the system is enabled with various elements of artificial intelligence to form a knowledge base from the inputs it receives from its environment. Unlike conventional OOP approaches, which take established code libraries and syntax and use them to write algorithms, machine learning has no overt coding involved. It’s more akin to teaching a child than programming a computer. The AI learns the new ‘programs’ by accumulating interactions with human beings or other systems and organizes them into skills that are constantly refined with time. An early iteration of this approach was the development of the Deep Blue computer, which was programmed with all of the great maneuvers from the history of chess and used them in a game in 1997 against then World Chess Champion Garry Kasparov to defeat him. It set the precedent that machines can be taught skills and apply them in live interactions with human beings.
Can It Replace Programming?
The concern for advocates of the hugely successful object oriented programming languages and even the less popular procedural programming languages is that machine learning will eventually eliminate the need for conventional programming. Although the skill set for conducting machine learning will certainly become more relevant and in demand, there will still be a market for those who will initially program the artificial intelligence systems with their framework algorithms.
Opensource Tools for Machine-Learning
Opensourcers are also jumping in and creating tools to facilitate machine learning. One such software suite written in Java is Weka. Developed by the Machine Learning Group at the University of Waikato in New Zealand, it contains tools for data pre-processing, classification, regression, clustering, association rules, and visualization. This workbench is intended to utilize the machine learning technique in the field of big data mining.
While conventional programming is geared towards specific instructions and a deterministic approach, machine learning attempts to create a system that can generalize from its experiences. Although both will be prominent fixtures in the future of software and systems development, machine learning will draw the most focus as it requires skillsets that aren’t as prevalent among today’s programmers.