Article
February 3, 2025 · 5 min read timeAI assistants have been integrated into modern programming at a rapid pace, and they can significantly streamline coding and provide round-the-clock sparring for developers. However, AI is not a shortcut to conducting faster and more cost- effective business, as contextual literacy and solid expertise remain essential for successful software development.
At Nitor, the exploration of evolving AI models began practically as soon as they became available. Providing an alternative to relying on traditional programming tools like search engines and technical documentation, AI assistants have proven to offer lightning-fast and tireless support, available whenever an expert needs it.
AI is an excellent conversationalist, sparring partner, and a helping hand in refining snippets of code, but it cannot replace a skilled programmer.
This is something Eero Rantala, Software Developer at Nitor, understands very well. From the perspective of an experienced coder, an additional utility like the AI Assistant feature recently implemented into the IntelliJ IDEA development environment enhances productivity:
"Currently, the greatest benefit of AI is that programming-related minutiae can be sorted out with more immediacy. When it comes to processing massive amounts of data and simplifying information, AI provides effective assistance," Rantala summarizes.
Overconfident language models create dangerous illusions
Thanks to advanced language models, it's possible to engage in natural conversations with AI assistants about the particulars of a given programming language, for example. However, the apparent ease of dialogue can also create an illusion of infallibility. AIs may suggest incorrect solutions and conclusions, and challenging these propositions requires experience, contextual understanding, and skill.
"I recall a recent example where an AI suggested a method related to a specific library. After implementing the solution as part of the code and having a colleague review my work, they wondered why I hadn’t used a newer function. When I told the AI that it had suggested an outdated and deprecated function, only then did the AI assistant affirm that this had indeed been the case, and instructed me to use the newer method," Rantala continues.
It is crucial to remain vigilant when using AI, as otherwise supposedly foolproof yet flawed solutions may find their way into production. Even if the AI-generated code is 98% correct, the remaining 2 per cent margin of error is often too much.
The quantity and quality of available training data are also important considerations when the use of AI in programming is being considered within a company. If too much of the programming burden is placed on AI, there is a risk that in the future, there won't be up-to-date, meticulously validated data available for AI models, leading to their deterioration or even complete collapse.
An essential question for the future is this: if everyone is using AI models, who will be left to teach them.
Exploration is still a big part of AI utilization
"In some companies, many may already assume that a large portion of code is now generated by AI. That is false. It's important for customers to understand that there is still a lot of excavation and exploration involved in implementing AI," notes Mika Majakorpi, Nitor's Chief Technologist.
Nitoreans know not to place blind trust on fully AI-generated code, and that the implementation of AI does not guarantee lower costs for a project. AI is a tool that evolves with use, but the work itself requires steady and skilled hands.
"My gut feeling is that the more commonly used and long-standing the programming language, the better the code AI can generate. Lately, I’ve been coding a lot in Clojure, which has less training data available than something like Java. This also means that the benefits of utilizing AI grow smaller in relation," Rantala adds.
AI calculates probabilities and may also occasionally generate extra lines of code due to the hallucinations typical of AI. In such cases, it is crucial that the company has a deep level of understanding of what exactly the code is intended to achieve and what the path to reaching that goal is.
An old programming proverb states that debugging is harder than writing new code. Fixing errors is based on the programmer understanding what the code is supposed to accomplish. If the code is entirely AI-generated and the programmer has no hands-on understanding of its operating logic, it can be difficult – if not impossible – to fix the errors within the code.
Quality code comes from understanding the goals
A familiar boogieman concept often surfaces on social media and discussion forums: as AI develops further, it will rob programmers of their employment. This claim doesn't find support from Rantala and Majakorpi.
"Even if coding would shift entirely to just writing AI prompts in the future, the best prompter would still be a skilled coder. The interface will always need someone who understands the intent behind the Jira ticket, is able to connect it to the business case, and understands the role of code in the equation," Rantala outlines.
"At its core, it’s about the two golden rules of successful business and skilled programming: doing the right things and doing things the right way. Especially the former will always require a broad scope of expertise and human comprehension," Majakorpi continues.
According to Nitor's experts, the benefits AI yields for work efficiency, for example, currently remain at around 10% – the majority of work time is still spent on finding mutual understanding among people.
"For instance, a client might have a business case that requires a very specific feature. Implementing it requires the ability to internalize the need itself as well as the surrounding context. Once all these factors are clarified, the actual coding is usually a quick and straightforward process," Rantala explains.
AI can enhance, clarify, and accelerate this process, but it cannot replace the thought processes driving it. From Rantala's perspective, the utilization of AI assistants can be summarized as the difference between acquired knowledge and its application.
"I remember when I was younger and started learning coding. I was under the misconception that understanding the syntax of a programming language was the key to skillful coding. But code is a language like any other. Being able to write doesn’t make someone a writer. The deep end of a programmer's professional skill is being able to use the coding language as a tool for storytelling, bending its possibilities toward the desired business destination."
At Nitor, we create software solutions that take the whole life cycle into account, from architecture through to continuous services. Read more about our services!