Discussion about this post

User's avatar
Philip Koop's avatar

"Yes, writing code is a domain where surface prediction and correct world-modeling are very very close—programs either work or don’t, for there is no underlying reality to which the incantations in their correct form point."

I am a life-long professional software developer. I am under continuous, albeit gentle (no leaderboards) pressure to make use of LLM coding assistance, both chat-based and agentic. I have the benefit of a wide choice of models and professional training from the vendors of these models. I am trying to reserve judgment on the usefulness of LLMs for programming, but the only reason is the proliferation of Silicon Valley programmers telling me how good it is. To be clear, I am not just talking about the "hamburger" model of Kapoor and Narayanan (https://www.normaltech.ai/p/why-ai-hasnt-replaced-software-engineers) - although they are right. In my observation, LLMs are only moderately useful at shrinking the "execute" patty, never mind the bun.

You have (inadvertently) identified what may be the problem: there absolutely is an underlying reference reality for most of the software that makes a difference in your life, and if you fuck that up, then you, too, will be fucked. We are not close to having an LLM that you want to have writing your bank's book-keeping systems, or your hospital's life support systems, or your railroads scheduling system, or basically any other software system of any real importance. I can rely on LLMs to manipulate data ("this .csv file represents a volatility surface in the format blah blah blah, this other file represents a volatility surface in format lorum ipsum, please reformat the .csv file to match the lorum ipsum format.") Using an LLM to write the first cut of a well-known or easily defined algorithm ("please write a function to find the nearest correlation matrix to a given matrix using the algorithm of Higham and Strabic") and it will usually produce a reasonable first cut that is arguably faster than typing in myself. Asking an LLM to find a bug in a complex system will generate suggestions; almost all are wrong and usually none are right. It is doubtful that the cases when it finds a right answer pay for the cost of evaluating the rest. Asking an LLM for a meaningful functional change, well you might as well trying flying to the moon by flapping your arms.

My point is that LLMs work best, when they work at all, on the kind of software that is written by Silicon Valley software developers, where "move fast and break things" is highly prized and the consequences of an error are not too serious. This is also the sort of software written by "part time" programmers, who just want a nice plot of the latest Fed data. But it doesn't represent much of the software that makes modern life possible.

Kaleberg's avatar

Another domain would be mathematics. The Xena - Mathematicians learning Lean by doing blog points out that LLMs can be useful in translating mathematics into Lean, a theorem proving language where either the theorem compiles and is correct or it fails to compile and is incorrect. It requires a mathematician to check the Lean to verify that it is actually proving the theorem and not something sort of similar. It also needs the user to verify that it doesn't invoke anything that might delete all of one's files. Apparently, LLMs are also pretty good at finding counterexamples.

Like programming, mathematics requires precise statements, has a form of underlying truth and is highly regular in its use of language. "Not for us rose-fingers, the riches of the Homeric language. Mathematical formulae are the children of poverty."

One can see how LLMs would have problems with legal problems since the law and legal system have been developed to deal with the ambiguity of language. Our current Supreme Court has based numerous decisions on novel interpretations of what was once generally accepted language.

12 more comments...

No posts

Ready for more?