Computer assisted coding – how the development of advanced suggestion mechanisms will affect the production of software?

software-development

During the recent years, the technological unemployment subject travelled from the narrow circle of futurists – both well established, as well as, homebred amateurs on the internet – to the public consciousness and mainstream media, read by millions of people that are in no way associated with IT. However, the automation hazards are discussed primarily within the context of services and production employees. Still, the numbers are rising. There are more and more voices, raising the issue of the increasing automation of the profession, that many would place on the far end of the technological unemployment queue – we’re talking programmers.

Due to IntelliCode and ML Complete the machines will programme themselves?

There is an abundance of voices, claiming that, in the future, software development will be conducted without the human factor. In the worst case scenario, the human may lose the grasp on understanding the way, the machine approaches solving problems by means of programming itself. The computer will become a magic box, that flawlessly accomplishes various tasks. It is worth remembering that the process has already occurred – while a part of the users have any understanding of how a computer works, the majority of them would be overwhelmed with the necessity of repairing it, or replacing its individual hardware components. Still, a few decades ago, simple home improvements regarding computers were an obvious thing.

However, let’s get back to the automation of the development of coding. In recent years, the progress is gaining speed. As contemporary developers, we have the opportunity to observe the process from a first person perspective, as it practically unveils in front of our very eyes. We’re talking about the  implementation of the increasingly advanced suggestion mechanisms, available in the most popular programmer environments or code editors. Suffice to say, the impressive achievements of Microsoft regarding Visual Studio, and Visual Studio Code, therefore, the IntelliCode function, or the novelties implemented in Dart SDK by Google. The largest software developers in the world, are independently and effectively developing the mechanisms based on the machine learning of the behavior and the contextual code analysis, that speed up the coding process. However, as a programmer, I think that there are no reasons to fear the soon-to-come automation of my profession. Why?

Don’t worry – it’s the automation of means, not solutions

The answers was already given – both the Microsoft IntelliCode, and the ML Complete (Machine Learning Complete) developed by google, automate the coding, but not software development. These are entirely two different planes. In the aforementioned comparison of the computer and a magic box, there is one major flaw – the magic box doesn’t know, how to solve problems. In order to be able to do it, someone must show it a path, a way of solving them. While the advanced mechanisms of automated code make a huge impression, and with time, will speed up the creation of applications even more, they in no way ease the issue of solving problems. The code itself is only an instrument, a tool. If we consider automation of problem solving, we find out that we face – at least currently, and pragmatically – a void. In this aspect, the contemporary coding environments, and editors offer little or nothing.

There is no doubt, that the development of such IDE components, as the advanced suggestion algorithms, based on machine learning and deep contextual analysis, will progress. Due to it, the work with the editors will progress much easier, and much more efficiently, and one cannot overestimate, that the code created by such means will contain much less bugs, difficult to identify. In extreme cases, one can imagine that the creation of software at the developer part, and in broader terms – the software houses, and software developers organised in any way – will be reduced solely to presenting the machine with a proof-of-concept, a conceptual model of solving issues, that, in an automated way, will be processed into a code by the intelligent coding environment. However, the role of the developer cannot be automated, or overestimated.

Work with veryfied partner

Schedule a free 15-min consultation

X

What Can We Help You With?

    How useful was this post?

    Click on a star to rate it!

    Average rating 0 / 5. Vote count: 0

    No votes so far! Be the first to rate this post.

    Let's talk about your project

      Fields marked with* are required.










      +48 22 882 25 16