In software, complexity is a tax you pay on every future change. You might think, "as long as it works, I'm good, I don't care about aesthetics", but elegant code is about maintainability, not aesthetics. Elegant code is deeply practical.
François Chollet, Keras creator, argues architectural complexity operates as a continuous tax on subsequent code modifications
He argues elegant code is a practical necessity for maintainability.
Many users endorsed Chollet's warning that complexity taxes future software changes because messy code grows uncontrollably and hinders ongoing modifications, while one reply dismissed the topic's relevance.
No Digg Deeper questions have been answered for this story yet.
Most Activity

With agentic coding, complexity compounds in a mechanical way: unnecessary code ends up in the codebase, moves to the context window, degrades the model's reasoning abilities, leads to more unnecessary code (often to fix issues arising from the unnecessary code). It's exponential
In software, complexity is a tax you pay on every future change. You might think, "as long as it works, I'm good, I don't care about aesthetics", but elegant code is about maintainability, not aesthetics. Elegant code is deeply practical.

@fchollet Just wrote about how complexity accrues in the prompt:

@fchollet complexity compounds like debt, and AI agents are reckless borrowers.

@fchollet that’s why I built Lore, so you can capture decisions and reasons - give your agents the WHY - so it doesn’t drift off into oblivion
https://github.com/itsthelore/rac-core

@fchollet The old helper function nobody deletes becomes context pollution.
Not just maintenance debt for humans. The next agent reads that file and treats the junk as the world.
Elegance may become a context-window optimization, not only a codebase virtue.

@fchollet code is communication. best if it's clear.

@fchollet True! This is why a solid mental model with a good dev in the loop is necessary. IMHO vibe coding will do a lot of damage to good software engineering

@fchollet adding this to my AGENTS.md. that'll fix it! 😏

@fchollet Something hard to quantify is loss of institutional knowledge from people abandoning projects and quitting jobs when complexity becomes unmanageable. It’s more common than people think. I see it all the time and some call it “burnout”

@fchollet It is astonishing how bad most programmers are at looking into where this tech is going. You are just focusing on issues right now, and tomorrow you focus on tomorrows issues. All these problems will fall as the tech matures.

@fchollet Do you think compounding complexity is intrinsic to agentic coding or just the current behavior?

@fchollet This is why I keep giving agents smaller jobs. The bigger the task, the easier it is for them to make a beautiful mess.

@fchollet and elegant code is NOT what llm produce

@fchollet I've been likening it to the elephant toothpaste chemical reaction. Infinitely expanding code.

@fchollet Elegant and practical code allows your LLM to easily work with it.

@fchollet wrote a 'just get it working' workaround for currency rounding in my finance app. touched it 6 weeks later for a new feature and spent two days figuring out why totals were silently off by fractions.

@fchollet If wise words enrich my prompt and make my agent work better then I'll take it as truth

@fchollet That software debt really compounds too when complex code is needed for 3rd party integrations, micro services, etc.

And the whole problem is that to evaluate code cleanliness, you need feedback from an experienced engineer, which is expensive and, more importantly, slow
A binary solved / not solved signal, especially on hard tasks, of course says something about code quality indirectly, but the correlation is not high enough