Codota review – Expectation vs. Reality

Codota, an AI code completion tool, comes with big promises and possibilities for coders and software engineers. This article is here to help you decide if you should integrate this tool into your development process or not.

I used Codota extensively for the last 6 months for all of the projects that I worked on. The projects include few android projects written in java(IDE: Android studio), few web projects with JavaScript for the Frontend & also for the NodeJS Backend (IDE: VS Code), tried with few PHP projects(IDE: PHP storm), and Java projects (IntelliJ IDEA).

What was I expecting before starting to use Codota?

To know more about the tool, I visited their site and youtube channel. The claims on the site and demo videos look great. So these were my expectations before starting to integrate Codota into the IDEs.

  1. Codota will provide better auto-complete than which is shipped with the IDE.
  2. It will decrease the number of Google searches and StackOverFlow visits.
  3. It will prevent me from making obvious mistakes and decrease the number of silly bugs in the application. (as claimed on their site and ads).
  4. It will learn from the project’s existing code and learn from the code I write after installing Codota.

It was also claiming to help developers code faster, but I was not interested in that. But if this tool can do it, good.

Important note before you start using Codota

As Codota collects some information about your code(also about your IDE and system configuration), I request you to visit two important pages before installing the plugins into your IDE. These two pages have information about what data will be sent from your IDE to Codota servers. See if you are comfortable sharing those pieces of information from your codebase and system. I suggest you discuss it with your team and the company’s proper authority (you are working for) before using Codota. The pages are:

  1. Code Privacy
  2. Telemetry

About Codota

About the company

Codota was founded in 2015 as a result of research at Technion – Israel Institute of Technology. It is a privately held company, and its headquarters are in Tel Aviv, Israel.

Services

  • AI base code completion tool

Codota learns from existing cod and tries to predict your next line(s) of code. It uses machine learning and NLP(Natural language processing) to analyze and learn from existing code. A massive piece of learning of code comes from open source projects. As the source code of those projects are publicly available, so that data adds a tremendous opportunity for Codota as a learning source.

  • Code search

You can use Codota as a code search engine. It mostly searches open-source projects and code snippets from other publicly available sources (like forums).

Only Java and JavaScript are supported for now. The search results show code snippets, that match your search term.

You can use the search engine from the link: https://www.codota.com/code.

  • Enterprise service

Codota has service for the enterprise. Though not much detail of that is available, you can check the offerings from https://www.codota.com/enterprise.

By running deep learning algorithms on the codebase of the company and combining that with the learnings from open source projects, Codota will be able to give suggestions, which will be more relatable for the developers of the specific company.

Business model

Code is free to use publically. (and the site says it will always be free).

It makes money from enterprise services. By providing private services to companies, Codota can make more relevant code suggestions to the company’s engineers and make money for that service.

IDE integration

A wide array of IDEs are supported, including IntelliJ, PyCharm, PHP Storm, WebStorm, CLion, GoLand, RubyMine, Android Studio, and VS Code Eclipse, Sublime, Vim, Atom, Ecmas, Jupyter.

The installation process is very easy for all of the ides.

What is TabNine? and how is it related to Codota?

TabNine is another company which used to provide service similar to Codota. You can visit the website of TabNine at https://www.tabnine.com/.

On Dec 17, 2019, Codota acquired TabNine. The details of the acquisition and how the 2 companies and their technology will be merged are posted on both companies’ blogs https://blog.codota.com/tabnine-part-of-codota/ and https://www.tabnine.com/blog/codota/.

If you try to install Codota for VS Code, you will find it is using an extension from TabNine (vscode:extension/TabNine.tabnine-vscode). Similarly, for most of the IDEs like PyCharm, PHP Storm, WebStorm, CLion, GoLand, RubyMine, VS Code, Eclipse, Sublime, Vim, Atom, Ecmas, Jupyter; Codota installation instruction is providing information for TabNine plugin/extension installation.

So, Codota itself has support for mainly Java, and for all the other language support it’s using TabNine extensions.

Test results

VS Code + JavaScript

Programming LanguageJavaScript
IDEVS Code
Number of projects3
Ease of installationEasy
Ease of useEasy
Satisfaction on suggestion – Frontend40%
Satisfaction on suggestion – NodeJS40%

Android Studio + Java

Programming LanguageJava (Android)
IDEAndroid Studio
Number of projects4
Ease of installationEasy
Ease of useEasy
Satisfaction on suggestion – Frontend70%

IntelliJ IDEA + Java

Programming LanguageJava
IDEIntelliJ IDEA
Number of projects2
Ease of installationEasy
Ease of useEasy
Satisfaction on suggestion60%

PHP Storm + PHP

Programming LanguagePHP
IDEPHP Storm
Number of projects3
Ease of installationEasy
Ease of useEasy
Satisfaction on suggestion40%

Summary

Pros

  1. Ease of installation and use is great for all the IDEs. This is great, as users do not have to struggle with the installation process, and no additional configuration is required.
  2. Support for JAVA is outstanding.
  3. Support for Android development is excellent. I really got some good suggestions.

Cons

  1. Most of the time, the suggestions are as good as the IDEs suggestion (for autocomplete), so I didn’t get much help in most cases.
  2. Support for JavaScript is not as expected; it needs to be better, especially for the VS Code, as it is widely used.
  3. I didn’t find any reason why it would help me to code faster.
  4. Does not help much with giving great suggestion, so you still have to depend on google search and StackOverflow.

Will I continue to use Codota?

No. Though I would consider using Codota for Java-based projects, especially for android projects. But the main concern is privacy.

Maybe, I will give it a try again, after 6 months or a year, for one or two of my small personal projects, to see if there is any improvement.

Final Thoughts

Though it is a good attempt and brings us some new concepts and possibilities, the code suggestions of Codota are still not that great, but hopefully, that will improve in the future. The more data it will get, the better it will be at giving suggestions.

Also, the IDEs which already have a good suggestion system might adopt some of the concepts from/like Codota, and integrate them into their system, in the future. In that case, the built-in suggestion system will get preference.