Over the past few years, several interlocking trends have emerged that aim to streamline the process of coding. Not only have we seen the rise of no-code and low-code app-building platforms, but some companies have also attempted to build “predictors” that utilize machine learning to forecast what a developer should code next.
The effectiveness of such tools hinges on the comprehensiveness of the database used to generate those snippets, as well as the initial training (Deep TabNine utilized 2 million files from GitHub as its training set). For any platform, adapting to new frameworks, libraries, and features is also key. For example, if you were designing an autocomplete platform for Swift, Apple’s rapidly evolving language for iOS and macOS development, you would need to issue a pretty comprehensive update every six months or so in order to take the new, big feature additions into account.
It’s easy to see how these tools could evolve to become quite sophisticated. But how will that change developers’ jobs and workflows? While some technologists might fear that an A.I.-powered coding platform will take their jobs, it seems unlikely that software will end up swallowing the bulk of development work.
For instance, take the rise of no- and low-code tools in the context of game development; platforms such as Google’s new Game Builder platform dangle the possibility that even folks with virtually no programming experience could build a great game. But development is so much more than just coding; it requires creativity, problem-solving, and an understanding of theory—and a tool simply can’t replicate those kinds of abstract things.
It’s a similar situation with tools such as Microsoft’s PowerApps or Google App Maker, which allow employees to build pretty simple apps; but if you want to construct something with deeper functionality, you’ll need a development team that knows its way around databases, the principles of good coding, and effective UI/UX.
Coding autocomplete is a tool for speeding up coding, but it seems unlikely to tip the balance of power away from developers, since you still need to have pretty extensive knowledge of a programming language to use it. Nonetheless, for developers who are pressed for time, such tools could eventually prove lifesavers.