Autocomplete is a well known feature of Google Search. Start typing in a search, and Google offers suggestions before you have even finished typing. Autocomplete is designed to help people complete a search they were intending to do, rather than suggest new types of searches to be performed. Or simply put, these are Google’s best predictions of the query you were likely to continue entering. Google estimates that this AI-powered feature saves over 200 years of typing per day, and reduces typing overall by about 25 percent!
So the question is, why don’t we have a similar tool for software developers that automatically makes suggestions drawn from the wisdom of the community and autocompletes a line or block of code?
Well, I have good news for you! Kite, a freely available AI-powered programming assistant for Python, is here for you! And I have to admit that this tool does appear to have the potential to make everybody a better Python programmer, no matter your proficiency level, at a time when the market for Python based data science skills continues to explode.
Kite is not something completely new though. It has been around since 2014 or so. But when I first looked at it a couple of years back, I was put off by the fact that the intelligence behind the software lived on the cloud, and I was uncomfortable with any code leaving my computer. But today I was thrilled to read an announcement by the company behind this software that you can now run Kite locally on your own computer – i.e. you no longer have to send your code to Kite’s servers on the cloud! This was made possible by recent advances in machine learning techniques to make models more compact and easier to deploy on hardware with modest resources, such as a smartphone.
So how does Kite’s code completion logic work?
- Kite uses AI to infer what a developer is likely trying to do and uses that insight to predict the next part of a line of code.
- Kite’s code completion logic is powered by a machine learning model that has been created by scanning publicly available Python code on GitHub, the de facto online code repository. The model isn’t trained on the text of the code, but on abstract syntax trees derived from the code. This provides the model with some sense of the code’s intent and context, delivering auto-suggestion and auto-completion of common code patterns based on how you and other developers have written code in the past. However, it is worth noting that the design of the machine learning algorithm that powers Kite is not publicly available.
And finally, to wrap up this post, here’s a very short video clip of Kite in action.