3 ms·
> It's a good thing. It's how the field advances. I would say, generally speaking, that most new languages these days do not solve the big problems of writing
by bmitc 3y ago
> It's a good thing. It's how the field advances.
I would say, generally speaking, that most new languages these days do not solve the big problems of writing software. For the most part, language level ideas that change the big picture of how one interacts with the system are few and far between, and these ideas have mostly already been discovered in older languages. New languages usually even ignore these. For example, Rust's lack of a REPL from the start. And languages like Rust are spending a lot of time refiguring out the wheel and stalling midway through when it comes to library development.
- lolinder 3y agoA missing REPL in Rust is actually a great example of why languages ignore (some) ideas that other languages have. A programming language is defined as much by what it chooses not to include as by what it chooses to include. Functional languages choose to not include mutation and statements, but we don't complain about them "ignoring" those features, it's a very intentional decision to drop them. Golang looked at exceptions and decided to not include them. Not every language should have every feature, both from a practical perspective (how would you maintain such a language?) and an ergonomic one (how would you work in such a language?). Rust's lack of a REPL wasn't just them ignoring an important innovation, it was them choosing to not implement a feature that they know their primary audience won't use and that doesn't do much to help in the compiler-centric development flow that they're working on supporting. Rust doesn't have a REPL because REPL-oriented development doesn't really suit Rust, not because they forgot that REPLs are a thing.
- bmitc 3y ago> Rust's lack of a REPL wasn't just them ignoring an important innovation, it was them choosing to not implement a feature that they know their primary audience won't use Rust moving away from its more ML-leaning beginnings is a downside, to me at least.
- lolinder 3y agoSure, but it was a conscious choice to do so, and Rust is actually a terrible example of a language that doesn't provide anything new. Rust managed to normalize higher order functions in the systems space, provide a compelling answer for high performance memory safety, and mount the first successful assault on the C/C++ duopoly since C++ was conceived. That's a pretty impressive track record for disruption, and discounting it because it doesn't have enormous groundbreaking ideas and it doesn't have a REPL is pretty short-sighted. Rust succeeded in pushing back the Overton window of programming languages because it didn't try to innovate in places that didn't matter. A more radical language might be more aesthetically appealing to someone like you but won't change the experiences of any significant number of developers in their day to day work the way Rust has.
- mirpa 3y agoInteraction between lifetimes in REPL would probably diminish any advantages REPL has to offer. REPL is easy to do in GC languages, trade off Rust made by choosing not to use GC. Best next thing you can use are tests which are part of Rust's tooling.