Indeed. I’m personally doubling down on model-centric programming and keep tight control of the models, while being more permissive with the transformations between models.

It is nice that models remain stable, explains points of the architecture and an llm is good at following instructions that model changes needs a human in the loop. Languages with good static type systems cause friction in a transformation to show up in the types, which act as (weak) specifications.

It works to some extent