4 ms·
> Both early Unix and C compilers had simple structures, are easy to port, require few machine resources to run, and provide about 50%-80% of what you want from
by bccdee 2y ago
> Both early Unix and C compilers had simple structures, are easy to port, require few machine resources to run, and provide about 50%-80% of what you want from an operating system and programming language.
> Unix and C are the ultimate computer viruses.
The key argument behind worse-is-better is that an OS which is easy to implement will dominate the market in an ecosystem with many competing hardware standards. Operating systems, programming languages, and software in general have not worked this way in a long time.
Rust is not worse-is-better, but it's become very popular anyway, because LLVM can cross-compile for anything. Kubernetes is not worse-is-better, but nobody needs to reimplement the k8s control plane. React is not worse-is-better, but it only needs to run on the one web platform, so it's fine.
Worse-is-better only applies to things that require an ecosystem of independent implementers providing compatible front-ends for diverging back-ends, and we've mostly standardized beyond that now.
- xiphias2 2y agoThere are some differences between your examples in my opinion: Rust started as an experiment of Mozilla team replacing C++ with something that helps them compete with Chrome in developing safe multi-threaded code more efficiently. It took a lot of experiments to get to the current type system, most of which gives real advantages by using affine types, but the compiler is at this point clearly over-engineered for the desired type system (and there are already ideas on how to improve on it). It's still too late to restart, as it looks like it takes 20 years to productionize something like Rust. As for React I believe it's I believe an over-engineered architecture from the start for most web programming tasks (and for companies / programmers that don't have separate frontend and backend teams), but the low interest rates + AWS/Vercel pushed them on all newcomers (and most programmers are new programmers, as the number of programmers grew exponentially). HTMX and Rails 8 are experiments in the opposite direction (moving back to the servers, nobuild, noSAAS), but I believe there's lot of space to further simplify the web programming stack.
- psychoslave 2y agoUnix and C are still there, and while on shallow level this can be more or less ignored, all abstractions end up to leak sooner than later. Could the industry get rid of C and ridiculous esoteric abbreviation in identifiers, it could almost be a sane world to wander.
- tightbookkeeper 2y agoRust is not very popular in terms of number of users. It’s just over represented in online discussion.
- mplewis 2y agoRust isn’t popular in web dev. It’s very popular in embedded.
- tightbookkeeper 2y agoIs it? It seems popular with people getting into low level for the first time.
- bccdee 2y agoIt made it into the Linux kernel, and it's still a relatively young language. I don't think any language has made such a large impact since Java or Javascript, both of which are nearly 30 years old now.
- epcoa 2y agoGo?? Ruby and Python I think count, Ruby is a JS contemporary and Python is close enough, no one paid it any attention before the late 90s. Rust is still struggling in the domain it wants to live (a C++ replacement), I still have a suspicion that a new new C++ will ultimately come along and dominate before Rust eats the big money where C++ still lives. And I say this as someone who has been rooting for Rust since stumbling upon Graydon's proposal in 2006 while swearing at yet another C++ monstrosity (though a moneymaking one).
- bccdee 2y agoGo is an incremental improvement over Java and C#. I like it, but it tried extremely hard not to break new ground, and it succeeded at that. Java and Ruby and Python (odd how all these languages came out at almost the exactly the same time) had new ideas and new paradigms, like Rust does. Part of what I mean by "making a big impact" is affecting how we think about programs, which Rust has done and Go has not.