It's not only the amount of code but also the quality of the available code. If a language has a low barrier to entry (e.g. python, javascript), there will be a lot of beginner code. If a language has good static analysis and type checking, the available code is free of certain error classes (e.g. Rust, Scala, Haskell).
I see that difference in llm generated code when switching languages. Generated rust code has a much higher quality than python code for example.
I fully agree with this approach! 5 years ago I built a prototype to execute that same concept of language covering. But instead of just using words, I used n-grams. It ii trained on subtitles to model spoken language. Combined with sqlite in the browser to get the next sentence with the most impact.
I think memory safety is a weak argument for rust and only works against C/C++, as you mention. For me, the strongest arguments against GCed languages are static analysis goodies that other languages don't have. Like checked immutably by the compiler, the borrow checker which forces you into a certain architecture, fearless concurrency etc. All those lead to fearless refactoring, which is a very strong point for me.
Once we realize that what we actually want is turning specifications into software, I think that English will become the base for a new, high level specification language.
We are turning specifications into software precisely because English (and any natural languages) lacks the formality that makes it not reliable (necessary quality for a tool), but great for imagination (the source of invention).
We always start from natural language. RFC, docs, tickets,... are in natural language. But gaining formality (losing ambiguity) is what programming is (software engineering is doing programming well). People that struggled with programming struggle in fact with formality.
reply