Writing fresh code is easy because you just express your ideas. What's hard is hitting all the contingencies appropriately; it can take years of 'burn in' to get right.
Reading code is easy - especially if you don't know the language well - because someone has already assembled all the correct syntax, etc. What's hard is that the code may be convoluted from years of monkey-patches to handle all those inconvenient contingencies, to the point of obscuring the core ideas. eg, making you search through ten nested indirections to figure out how something actually executes...
On the writing side, LLM's make it much easier to have the idiomatics of the language easily on hand. (eg, I never ever remember the exact way to use 'super' in python... but ML assistance is happy to fill in the parens as soon as I start them.)
Writing fresh code is easy because you just express your ideas. What's hard is hitting all the contingencies appropriately; it can take years of 'burn in' to get right.
Reading code is easy - especially if you don't know the language well - because someone has already assembled all the correct syntax, etc. What's hard is that the code may be convoluted from years of monkey-patches to handle all those inconvenient contingencies, to the point of obscuring the core ideas. eg, making you search through ten nested indirections to figure out how something actually executes...
On the writing side, LLM's make it much easier to have the idiomatics of the language easily on hand. (eg, I never ever remember the exact way to use 'super' in python... but ML assistance is happy to fill in the parens as soon as I start them.)