Markus Oberlehner

Will LLMs Ever Be Creative Enough To Solve Programming?


Do you believe LLMs are intelligent? I recently changed my mind about it! I think LLMs are “just” that: (large) language models.

Imagine you train a toddler to read, mixing in texts about physics and mathematics. Sure, at some point, the toddler might be able to predict the correct formula when you ask them to solve a particular mathematical problem, but they don’t have the slightest idea why this is the correct answer—let alone how to come up with the formula to solve an unsolved problem they’ve never heard about.

Where this analogy falls apart, though, is that at some point, a toddler will figure out those things because our brains are not “just” LLMs but something more.

The belief among some in the LLM community is that LLMs are also not just LLMs, and if we only feed them more and more data and train them to think, at some point, they’ll figure out creative thinking, too.

But I think Yann LeCun is right when he says:

There’s absolutely no way that autoregressive LLMs […] will reach human intelligence.

LLMs Lack Creativity and How It Affects Their Capability to Write Code

Like a toddler who learned to read with texts containing mathematical formulas, an LLM, too, can predict the right formula given the particular input tokens. But in the same way the toddler will never solve unsolved math problems (until they build the mental model to truly understand instead of parroting what they read), LLMs, too, lack the capability to find creative solutions to (new) problems. And I believe LLMs based on today’s architectures will never be able to truly think creatively.

Yet, writing software, ultimately, is a creative task. It follows that we should not count on current or future LLMs being able to code complex, novel applications by simply telling them about what we expect the end result to be.

Fully Automated, Agentic Approaches Are Doomed!

I believe that, because of their lack of true intelligence, current LLM architectures will never be capable of reliably fulfilling large, agentic tasks.

Still, there is no denying that current LLMs like Claude 3.7 are incredibly capable tools, also in regard to coding. Products like Vercel’s v0 and Bolt.new demonstrate that we can achieve impressive things with LLMs.

Yet, if I think about the last few real projects I’ve worked on, there is no way that I could’ve used one of those tools to come to the final solution without telling it precisely what to do when it comes to the more novel and complex parts of it.

What this means for our daily practice is that we can’t expect LLMs to create something entirely new, given only a couple of prompts. Instead, when we move beyond solving common, well-understood problems, we have three options:

  1. We take over ourselves and use the LLM merely for code completion.
  2. We use the LLM to translate natural language 1:1 to code.
  3. We feed the LLM with existing building blocks and recipes, so it only needs to translate our prompt to the correct recipes.

I tend to prefer taking over myself, but opting for path two can be helpful when working with a less familiar programming language. When we use an LLM as a 1:1 translation layer, we still need to tell it exactly what ‘code’ to write—but instead of using a specific programming language, we use natural language.

In the third scenario, we give the LLM recipes describing how to solve specific problems and provide it with the building blocks to do so. For example, we give it information about our problem domain, boilerplate code for interacting with our database, and solutions for fundamental concerns like authentication and UI. In this scenario, it’s very easy for the LLM to match specific input tokens to the correct output tokens resembling the pieces of the recipe closest to the input tokens.

In all three scenarios, we avoid the need for creativity on the part of the LLM. Instead, we let it do what it does best: using probabilities to determine the correct output tokens based on given input tokens.

Wrapping It Up

What do you think? Will LLMs ever be able to truly reach and surpass human-level intelligence and creativity, or are they doomed to only mimic intelligence—like a student who appears smart because they learn everything by heart but never truly understands?