After 25 years developing and selling the GeneXus product, which among other things writes software, now we hear a lot of buzz regarding the significance of automatic software writing.
I‘m particularly motivated to write about this topic as a result of an article published in Info Technology and titled “Will software that writes code alter tech’s script?”. It was a translation of the original article by Richard Newton’s[*], which was published by Financial Times.
Is it possible to automatically write the software required by a given organization?: Yes, it is.
Is writing the software automatically all we need?: No, it is not, but it’s a good start though!
When clients require and expect greater flexibility and freedom, in addition to strongly economizing in costs and time, we must necessarily do a little extra when we develop software, and that includes:
Automatic maintenance. Maintenance may be automated with the result of significant cost reductions in relation to time, money, and the introduction of new errors.
Multi-platform. In today’s world, and even more so in the future to come, we must work with multiple platforms and their combinations: Operating Systems, Programming Languages, Database Management Systems, Devices, Architectures, Clouds, IoT, Big Data and so on.
Integrated active documentation.
Agile and functionally complete prototyping. A great help in spotting analysis errors early, when corrections still do not imply significant costs.
“Futureproofing”. Systems today must allow for easy evolution in accordance with business needs and the new technology available in order to facilitate ongoing innovation.
The future of business and technology. What future do we have ahead? What will companies need in the future? What new technologies will we have available? All this is hard to tell now, but one thing is sure: they will all grow increasingly and exponentially. At present, we are already experiencing numerous unsatisfied needs and a vast amount of technology available that is scarcely used or applied in a very basic manner.
In manual development environments, programmers adapt so slowly that the adoption of new technology takes too long, and this process is likely to become even more burdensome.
Companies should focus the excellent human resources they have — which are never enough — on comprehending business problems instead of performing repetitive and tiresome tasks of little added value and full of errors, such as manual code writing.
The good use of automatic system development and maintenance tools is indeed necessary.
Undoubtedly, software capable of writing code will certainly change the script of technology.
Why did some initially successful code-writing products prove to be unsuccessful in the end?
The reasons for this may be multiple, such as changing market conditions, the arrival of new technology calling for strong investments, and financial errors, among other possible causes. However, I dare believe that the main reason for such outcome could be decisions too conservative and attached to low-level elements like files, access mechanisms, operating systems, and languages, or even hardware.
My opinion is that, when we work on low-level specific elements, we might advance faster at the beginning; but, as the environment gets more complex or sophisticated — implying the requirement of support for new needs, new architectures and new technology — we will be encountering very important difficulties. From my perspective, this is the reason why some companies, which proved very successful from the start, finally faded with the passing of time.
What We Do At GeneXus
In the 80s we tackled the field of software development and maintenance with a comprehensive and rigorous approach, which took us towards methods of logic, mathematics and artificial intelligence in order to make a major breakthrough in the software automation field.
For a number of years now, GeneXus has been doing the automatic writing and maintenance of all the software necessary for business systems, and specifically those that are mission-critical, for numerous companies, regardless of their scale and field of activity. Today, GeneXus is the tool applied in more than fifty countries by a community of over 120,000 developers who carry out all of their professional work based on GeneXus.
But, what is different about GeneXus? What have we achieved with it? The answer to these questions is found in a very clear concept: “a very good automatic management of business systems knowledge.” Generating and maintaining systems automatically is simply a by-product of such management.
[*] Newton, Richard. “Will software that writes code alter tech’s script?”http://www.ft.com/cms/s/0/6c6ccace-521d-11e5-b029-b9d50a74fd14.html.Last accessed: 24 February 2016.