Artificial Intelligence is everywhere nowadays, it’s used in education, in design, and, of course, in programming. We have already had several articles devoted to different aspects of working with AI in general and with its most popular representative, ChatGPT, in particular. And today we want to share our experience of using another member of the AI tools family, – Codeium. Why does it deserve your attention? Read below!
Codeium cannot yet boast of universal recognition: according to the StackOverflow survey, it is not among the top three most used AI tools for coding in 2023 - the top positions are predictably occupied by GitHub Copilot, Tabnine, and AWS CodeWhisperer, with Copilot being the absolute champion, more than 4 times ahead of its closest rival, Tabnine, in terms of frequency of use. But suppose you look at the results of the survey on satisfaction with a particular technology in relation to its popularity. In that case, it becomes clear that Codeium can really compete with the leader. Having compared several AI tools, our developers tend to agree with this.
Why Codeium?
The answer is very simple. In terms of functionality, Codeium is not much inferior to Copilot (unlike Amazon's CodeWhisperer which is still far behind) and it's free. And why pay for something when you don't have to? :) To be fair, our developers noticed that the beta version of Copilot offered more features than the next versions, and the functionality of the software has been decreasing from version to version. In the end, we see that Codeium can now do everything that the current version of Copilot does. Codeium has also become much smarter over the past year, making its use even more justified.
The Codeium team should also be thanked for minimizing the limit on restrictions on the number of requests and security; as far as we’re concerned, the project code is not sent anywhere else. However, even there is a rotten apple: the system does not learn from the data it uses.
For some tasks (for example, for uniform naming) you can also use universal AI tools, such as ChatGPT, but assistants developed specifically for code writing are certainly more convenient as many of them, including Codeium, have a built-in target suggestion function that offers code variations as you write it. And although the hints are far from ideal, they might spark some interesting ideas.
What’s Codeium for?
Fortunately or unfortunately, AI can not write the whole project (or even a half!) for you, but it can facilitate several tasks. Our developers recommend using an assistant in the following cases:
- writing simple scripts and rewriting them into another language. For example, if you need to translate scripts from Python to Go;
- generating jsDocs and adding comments;
- writing unit tests, especially at the initial stage - when you need to write cases;
- naming. You can ‘feed’ human code to an assistant and ask him to come up with names; in our experience, 1-2 variants usually turn out to be relevant;
- updating obsolete code or refining the code developed by junior colleagues;
- tuning algorithmic code (requests to make the code faster, compare algorithms, or find flaws in the ready code work well);
- translating into other languages, human or, as mentioned above, programming;
- helping a teammate through a creative crisis. You probably won't get a brilliant solution from Codeium, but the reproduced train of thought may give you an idea or help you look at the problem from a different perspective;
- training newcomers. Trainers may turn to the assistant for several things, for instance, ideas for practice assignments or a list of job interview questions.
How do I use Codeium?
Based on the list of usage scenarios given above, we can conclude that Codeium, like any other AI tool, is mainly used in search of new ideas or for verification of existing ideas; you will anyway have to tweak and refine the result of its work to achieve something decent. At the current stage of development of assistants, we’d recommend using them only when you have a crystal clear understanding of the final result, because the provided solutions are very unlikely to be optimal even if not incorrect. Our colleagues tried to use AI tools for the sake of experiment when performing a test task from a customer: we’d say that overall the experiment was successful as the execution time was reduced by about half, but the code had to be completely rewritten, because it did not correspond to the style or architectural patterns.
Even if you don't have to redo the task completely, the result of AI work should be checked as the tools are often unable to build the overall context of the project or write uniform code, and they also apply good and bad practices rather chaotically (because they learn, among other things, based on data from private GitHub repositories, drawing material of very different quality from there). Therefore, without solid knowledge and experience, you should be careful when using AI.
It is possible to achieve a clear result from AI by setting very specific scenarios, prompts if you will. It is, however, dangerous, because having used AI long-term, a developer can easily turn from a code writer into an AI tool operator. This is especially true for beginners; their knowledge of the subject area is yet insufficient, so when they get used to using assistants, they become even less immersed in the chosen technology. We would advise newcomers to avoid using AI for programming, leaving it more as a tool for information retrieval, translation, and other auxiliary tasks.
To sum up, we recommend you take a closer look at Codeium. In our opinion, it is the most successful AI-assistant option at the moment with the best functionality and free. However, we do not recommend it for everyone whose grade is below middle+. For those who are still aspiring to become middle +, the best, even though quite cliche, recommendation is to achieve everything by putting in time and effort. The goal is not to work for AI, but to make AI work for you :)