The Language Strangeness Budget
I’ve always loved programming languages. I’ve spent plenty of times with many of them, and am fortunate enough that language design is now part of my job. In discussions about building Rust, I’ve noticed myself making a particular kind of argument often in design discussions. I like to call it ‘the language strangeness budget’.
When building anything, it’s important to understand why you are building it, and who you are building it for. When it comes to programming languages, building one is easy, but getting people to use it is much, much harder. If your aim is to build a practical programming language with a large community, you need to be aware of how many new, interesting, exciting things that your language is doing, and carefully consider the number of such features you include.
Learning a language takes time and effort. The Rust Programming Language, rendered as a PDF, is about...
Continue reading →