JetBrains Platform
Plugin and extension development for JetBrains products.
Codota, AI, and Boosting Productivity
Today Dror Weiss (@drorwe), Codota CEO, joins us to talk about the Codota and Tabnine plugins for IntelliJ IDEA and other JetBrains IDEs.
Hi Dror, and welcome to the JetBrains Platform blog! Please tell us about Codota’s AI technology.
Codota is an AI code completion plugin. It completes lines of code based on millions of programs and the developer’s own context, helping developers code faster with fewer errors. We operate two plugins with different names, Codota and Tabnine, which have slight differences under the hood in terms of the machine learning models, with Codota being more applicable to IntelliJ IDEA and Tabnine to all IntelliJ-based IDEs.
Codota helps users get an even better code completion experience in JetBrains IDEs. Users who enable Codota enjoy AI-based code completion that is able to predict code with a high level of accuracy. This provides a better programming experience using JetBrains IDEs as well as improved productivity. We complete millions upon millions of lines of code for our software developers users every month. If you search for us on Twitter, for example, you’ll see developers sharing their “wow!” moments nearly every single day. This makes us really proud and pushes us to continue doing what we do.
What is the Codota plugin?
Overview
The Codota plugin provides AI-based code completion to help you code faster and better. The completion provided by Codota is based on models trained on billions of lines of code from public sources. The advanced models behind Codota enable it to provide accurate, real-time predictions based on the local context from your IDE. Both Codota and Tabnine provide the same functionality, with Codota focusing on Java in JetBrains IDEs, and Tabnine targeting all other programming languages (and IDEs).
Your code stays private
Codota doesn’t send your code to an off-site server. The plugin only sends minimal contextual information from the currently edited file that allows Codota to make predictions based on your code’s current local scope.
Full Line AI Autocomplete
Codota for Java
Codota completes lines of code based on millions of Java programs and your context to help you code faster with fewer errors.
Tabnine – for all languages and IDEs
Tabnine for JavaScript
What’s different between Tabnine and Codota?
There are two main differences: in terms of languages and IDEs, Tabnine supports almost all of them, whereas Codota supports Java only and is available mostly across JetBrains IDEs.
In terms of the AI models, Codota uses a semantic model which reads the actual meaning of the code. Tabnine uses a GPT-2 model, and its model understands text and runs on a very large neural network that powers this entire learning process.
Why did you decide to create these plugins?
All modern IDEs provide autocompletion suggestions. These are designed to reduce boilerplate code. They are usually set up based on a certain set of rules. Codota is based on machine learning models that allow it to learn, adapt, and predict code based on what has been learned from billions of lines of code.
I’ve been working as a software developer for many years, and Eran, my co-founder and CTO, has been researching code behavior for the past two decades. Eran is also a professor at The Technion, “Israel’s MIT”. Both of us are very familiar with code not only in practice but also in theory, including the philosophy behind code.
What we’ve seen in recent years is a great advancement in computing power that makes it possible to pursue such a mission, which is based on machine learning and neural network applications. In addition, there’s already enough high-quality open source code in the world that we felt we could finally apply our vision based on these new conditions. This would have been impossible to do 10 years ago.
We realized that AI isn’t an integral part of writing code, and we knew it was only a question of time until it would be. We figured since most of the code has already been written, and developers spend a lot of time searching for code snippets – why not allow it to be auto-completed as you code? Luckily, we were totally spot on with our assumptions, seeing how fast Codota is growing.
What is the current state of the plugins, and what are your plans for their future?
We’re already working with very large companies and R&D organizations, and together we’re building a product roadmap that will apply our AI during other parts of the software development cycle. It will also include giving more power to team members to help each other out during code writing by learning from one another without having to discuss it “offline”, as everything will become a seamless part of writing code. Managers will also have the ability to enable manually predefined rules and suggest completions and other enhancements automatically for their team members. Those are just some of the ideas in the pipeline.
Have you developed any other plugins for IntelliJ Platform-based IDEs?
Yes. Considering both Codota and Tabnine, we have in fact developed our autocompletion solution for all IDEs based on the IntelliJ Platform, and also for all other IDEs (excluding a few which are currently in the works). Please visit tabnine.com to see all the IDEs we support.
Do you have any recommendations or tips for anyone who wants to build on top of the IntelliJ Platform?
Do you have any recommendations or tips for anyone who wants to build on top of the IntelliJ Platform?
For anyone who wishes to reach a wide, varied, and high-quality audience of software developers, I would say: don’t think twice and do include the IntelliJ Platform as one of your top platforms to focus on. The engagement we have with developers through this platform is incredible, and the support and responsiveness of IntelliJ Platform team members has been absolutely terrific.
Dror, thank you for joining us to talk about the Codota and Tabnine plugins for IntelliJ IDEA and other JetBrains IDEs!
Thank you! For all those interested, please visit the Codota Marketplace page (for Java developers), the Tabnine Marketplace page (JavaScript, Python & others), or the Tabnine website.