3 ms·
Multiple implementations allows for competition by novel approaches. (It doesn’t guarantee that that’s the way it’ll work out, but it makes it possible.) Look
by chrismorgan 5y ago
Multiple implementations allows for competition by novel approaches. (It doesn’t guarantee that that’s the way it’ll work out, but it makes it possible.)
Look at browsers: IE stagnated, Firefox got things going again, and IE eventually improved. And then as Firefox had become bloated, Chrome came along and showed that better performance was possible, and so Firefox improved as effort to match Chrome was exerted.
Or npm: it got mired as people couldn’t agree on the way to resolve some pretty big issues (centring on performance), so some people started Yarn, and its success helped unstick npm, so that now many that had switched to Yarn were able to move back to npm once it caught up again.
And these are just a couple of examples I’m familiar with.
Yes, there are costs to diversity of implementation, but there are benefits. The reasons why multiple backends is great can largely apply to multiple frontends.
Rust’s backend and frontend are both performance bottlenecks. One perfectly plausible course of events is that someone builds a new Rust compiler focused on end-to-end performance. That could help both the ecosystem and rustc.
- Dylan16807 5y agoI don't really want significant competition inside a programming language. Most features can be added on to an experimental version of the existing code base, or done as a prototype. Not much needs a full competing compiler.
- chrismorgan 5y agoNow, that may be true. (Or it may not be. I won’t judge the matter.) In ten years’ time? Again maybe, maybe not; but history of parallel cases suggests it’s less likely to be true in time to come than it is likely to be true now.
- pjmlp 5y agoProgramming languages are software products like anything else in computing. I rather not be using edlin of programming languages when given the option.