News

Artificial Intelligence applied to the development of applications (By Eugenio García)

2017 was the year that took Artificial Intelligence to the top of the podium of expectations and reflections. Let’s go over the scope of this technology with the following article by our Product Manager Eugenio García, which focuses on the close relation between AI and GeneXus for developing technology solutions

The introduction of software brought along a revolution in every industry. However, the software industry itself continues to build applications “manually”, with a craftsmanship that is more than 30 or 40 years old. With GeneXus, we seek a revolution that will change the paradigm of how applications are built. That is why we focus on simplifying and automating software development, based on AI algorithms.”

Eugenio García, GeneXus Product Manager


We tend to relate the expression “Artificial Intelligence” (AI) to science fiction movies where smart machines surpass man’s capabilities. At present, the software industry’s reality is quite distant from such scenario. Within the classification of the various types of AI, we may find specific examples where advances have been made. For instance, in the year 1997, a computer named Deep Blue –created by IBM– beat chess champion Garry Kasparov. That computer, liable of being classified as Reactive Intelligence, was a machine specialized in playing chess that used contextual information about the game at a given time for calculating the best possible options for moves, in order to make a decision based on this. In this case, the computer is not learning from past experiences, nor does it allow for training in advance.

Machine Learning and Deep Learning
Today, we witness a different level of progress in Artificial Intelligence. New Machine Learning techniques enable the creation of models that represent specific scenarios. With sufficient information, we may train those models and make them actually learn how to solve situations by resorting to previous experiences for that purpose. That type of AI advances have made it possible to develop driverless vehicles and process natural language (today, with software processing natural language, we may have virtual assistants in our smartphones that are capable of understanding voice orders to then execute the tasks we ask them to do).
In recent years, Deep Learning techniques have been consolidated in the Machine Learning area. The use of neuronal networks empower computers to process great volumes of data and learn for themselves.

Supervised and non-supervised learning
We can usually classify Machine Learning problems into two types: those requiring supervised learning, and those where we face non-supervised learning. A clear example of supervised learning is what we do on Facebook. Upon confirming that a specific individual is part of a given photograph, we are indicating to Facebook whether that individual is, or not, the person that it has suggested. Another example of this is Gmail’s SPAM filter algorithm, to which we indicate which email messages we consider to be SPAM. This training done by millions of users makes the filter increasingly accurate for detecting SPAM. One example of non-supervised learning where the computer did its own training was the case of AlphaGo Zero, where the machine learned and improved its game, based on actual Go games played by both professionals and amateur players. It was with such learning that, in 2016, AlphaGo defeated human Go champion Lee Sedol 4 games to 1. And if this were not enough evidence, this year, Google created an enhanced version called AlphaGo Zero with the particular feature of training as it played against itself, only having the game’s rules as the data available. This self-training took three days –the time necessary for playing approximately 4.9 million games– without the limitations of previous human knowledge. Faced with the challenge of competing against its predecessor, it achieved a landslide victory of 100 games to none of AlphaGo Zero over AlphaGo. For more details on this story, read "Stunning AI Breakthrough Takes Us One Step Closer to the Singularity".

We are still a long way from having computers able to create their own abstractions and capable of understanding the fact that people’s thinking and feelings define their behavior, in something that sociology calls “Theory of Mind”. In the meantime, we will continue to train AI models to aid us in repetitive tasks that are also getting increasingly complex, such as driving vehicles, detecting tumors in tomographies, or identifying individuals or objects in a photograph.

What role does GeneXus play in this world?
GeneXus was conceived as an expert system capable of automatically generating a software solution with a database, the executable code, and a user interface –based on a knowledge base and with the intelligence of an inference engine. This is what we have been doing since the very beginning of GeneXus, that is: making the vision of automating development tasks something real, and changing the paradigm with which we face software development. So, instead of being concerned with technical solutions (“how” something is programmed) users may focus on solving business problems (“what” needs to be programmed), using the knowledge that users already have about the business. It is on the basis of this knowledge that models are built in GeneXus, which is then enabled to automatically generate –by using AI techniques– the best possible code for the platform defined to run the system.

Artificial Intelligence in the cloud and integration with GeneXus solutions
The current era enables us to access various platforms with AI services in the cloud. In turn, these platforms allow access to AI models for integrating, in our applications, capabilities for natural language processing or for the processing of images and videos, whose development could prove very complex and costly otherwise.

Again, we encounter an interesting array of options that implies the need for learning how to interact with each of them. Aligned with its vision for simplifying the development of applications, GeneXus is currently building a Chatbots generator that resorts to these platforms, while simplifying tasks for creating a model to be trained, with the purpose of including Chatbots in the applications created in GeneXus. Additionally, we have created SDKs for the integration of the Machine Learning services of SAP Leonardo and IBM Watson, and we will be doing it also for other platforms like Microsoft Azure and Amazon Web Services, among others.

In sum, we believe that we are currently at an advanced stage of development and progress of Artificial Intelligence (particularly concerning Machine Learning), and we should find ways to integrate these capabilities in our applications. GeneXus is intended to simplify this task, and above all, to become integrated with the market’s main platforms so that users may generate the most sophisticated apps with the least effort necessary.

Every industry has undergone a revolution with the arrival of software, but, ironically, the software industry itself continues to build applications “manually”, as a craftsmanship, and using techniques that are more than 30 or 40 years old. With GeneXus, our idea is to generate a new revolution for changing the paradigm of how applications are built, and that’s why we seek to simplify and automate software development based on AI algorithms.

Read the original article and contact the author here