Sure, programmers work in formal languages, but they can't make mistakes. If your marketing copy contains a few lies or your hero image has a guy with six fingers, the recipients will still infer the intended meaning (or ignore it). If your program has a subtle bug, the computer will faithfully do the wrong thing.
LLMs are great for tasks where small mistakes don't matter, and useless for ones where they do. Generating a 10,000-line Rails app where 10 of those lines are wrong is not very useful.