3 ms·
The problem with growing languages is often age more than size alone. Some features turn out to be less useful, or will later be superseded by more general feat
by codeflo 5y ago
The problem with growing languages is often age more than size alone. Some features turn out to be less useful, or will later be superseded by more general features. But beginners still have to learn all of the the old ways to understand existing code.
C++ is perhaps the most prominent example of this, I’d consider it to be at least three different languages merged into one at this point. JavaScript has also accumulated some weird stuff over the years, like var, == and (arguably) a class-based OO system that doesn’t interact very well with the rest of the language.
One “solution” is using only young languages (e.g. Rust is very large, but young enough that most of its features are still useful). I personally like switching technologies every few years, but as a field, we can’t keep doing that forever. The other idea is using a language that’s more or less frozen, like C.
- shakna 5y agoI like the way that Scheme dealt with this recent-ish-ly, even if it hasn't gained overwhelming support in the community. R6RS was considered too big, and too influenced by one of the players, by a large amount of the community. So, the big player distanced themselves a bit, renaming themselves to Racket, etc. But for the next standard, two were produced. R7RS-small and R7RS-large. A core language that stays the same, that everyone has to use to call themselves a "Revision 7 Scheme", and an extended standard language that is useful, for those wanting to provide a "batteries included" kind of environment.
- pjmlp 5y agoFrozen, like having C2X around the corner?
- codeflo 5y agoRelatively speaking, those changes are mild. And it’s the first language extension in a decade (since C11). Compared to the insanity that the C++ committee does every three years, that’s a good thing.
- pjmlp 5y agoIt helps that WG14 almost has no one around left, because most improvements are anyway available in C++ for the last 20 years. And no one is obliged to use every single feature from C++.