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.
For example, Deep TabNine, IntelliSense (part of Visual Studio), and Kite have all issued their own versions of code “autocompleters.” Deep TabNine utilized neural networks (a crucial machine-learning technology) to predict what the coder will type next, then surface a small coding snippet that will fit; it’s currently available for a handful of programming languages, including Python, JavaScript, Go, Objective-C, and more.
In the past, Kite took a somewhat different approach from DeepTab Nine, which was one reason why it was only available for Python. Now the company has changed its underlying methodology, and its code autocomplete is also available for JavaScript. "We've kind of switched our technical approach to one that can scale easily across languages. And so that required a large upfront investment, and then each incremental language isn't that challenging," Kite CEO Adam Smith recently told ZDNet.
If you’re interested, Kite breaks down some of the features of its JavaScript autocomplete on its blog. The company claims that it trained its deep learning model on “22 million open-source JavaScript files to ensure Kite works with your favorite libraries and frameworks like React, Vue, Angular, and Node.js.”
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.