27 ms·
The Rise of Worse Is Better (1991)
- Taniwha 2y agoOf course the opposite is often stated as "Perfect is the enemy of Good"
- Dansvidania 2y agolooking at how it played out with javascript one can't but agree. (edit: I mean it unironically)
- TacticalCoder 2y agoYup first thing I thought. That pathetic piece of crap conceived in basically 15 days (not kidding)... BUT it is what we have on the front-end for web apps so there's that. JavaScript is the mediocre turd I love to hate.
- karel-3d 2y agoAnd it keeps being polished and improved to the point it's almost not a turd, and now has types sort of, and much better engines, and now there are ARM machines that are literally designed to run it faster, and now most of your actual PC applications are written in it. But honestly it's kind of refreshing to see the original node.js presentation, where using javascript is sort of a side-note. He wanted to use callback-heavy language and JS fit the bill https://youtu.be/EeYvFl7li9E https://youtu.be/EeYvFl7li9E
- GiorgioG 2y agoIt will always be a turd. Typescript is a nice illusion, but underneath is still the same turd.
- actionfromafar 2y agoTo me WASM is the wildcard. It lets other languages infect the Javascript host organism.
- Johanx64 2y agoProblem with Javascript is that it is not confined to webbrowsers and webapps, but it and it's associated business models (SaaS) finds it's way everywhere, at first desktop apps got enshitified by it, then all sorts of smart devices, and all the way to embedded systems in cars with their laggy sloppy UIs everywhere. It probably is the most severe case of "worse is better" I've experienced so far.
- api 2y agoJavaScript really illustrates the ultimate path-dependence of evolution. It got widely deployed during a boom time and therefore we are stuck with it forever.
- Der_Einzige 2y agoBut I feel like other languages that we were de-facto "stuck with" in certain domains boomed and then busted - i.e. Lua, Pearl, etc
- actionfromafar 2y agoJavascript is the only language which straddled the Client Server Gap. If it weren't for Node, Javascript would not have been as popular.
- api 2y agoThere was something long ago called GWT -- Google Web Toolkit -- that tried to make Java into that language by having it compile to JavaScript. It actually worked decently well, but was due to Java needlessly verbose. WASM lets us run other languages efficiently in the browser but that just opens the field to a lot of languages, not one language to rule them all.
- actionfromafar 2y agoAlso GWT apps were pretty slow to load and start, and were very "app"-like as opposed to web-page like at a time when that was not as familiar as it is today. That's how I remember it anyway. And pretty heavy, developer wise, at a time when "update a file on the FTP" was still normal.
- bigstrat2003 2y agoIt's still absolutely baffling to me that anyone is willing to run JS server side. There are so many options which are much better suited, why are people willing to jam that square peg into the round hole?
- aredox 2y agoAnd then we wonder why everything gets worse and worse.
- ta988 2y agowhat is getting worse and how?
- st_goliath 2y ago> ... everything gets worse and worse ... They're coming to take me a away haha they're coming to take me a away hoho hihi haha to the funny farm where code is beautiful all the time ... -- Napoleon XIV, more or less... Via: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/mips/mm/tlbex.c#n13 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
- dkasper 2y ago1991 tag. An all time classic.
- orwin 2y agoThis... Honestly the first lines seemed I thought this was an arrogant take, but he made _really_ good point and now I tend to agree with him. Still I am a bit bothered, does a counterargument exist?
- gpderetta 2y agoEmpirically, it seems Worse is Better appear to have been correct many many times.
- kayo_20211030 2y agoThe New Jersey approach has the benefit of dealing with time in a sensible way. The time to market for the MIT approach is just too long if your revenue relies on actually shipping a product that covers the cost of the next iteration that will move you from 80% to 90%, or even 60% to 70%. It's an old joke, but in the long run we're all dead; and waiting for the production of an ivory tower implementation won't work out well. If it's all academic, and there's no commercial pressure, well, have at it. There's not much at stake except reputations. Furthermore, in the real world, your users' requirements and your internal goals, theoretically covered by "the" design, will change. Not everything can be reasonably anticipated. The original design is now deficient, and its implementation, which is taking too long anyway, will be a perfect reflection of its deficiency; and, not fit for its new purpose.
- AnimalMuppet 2y agoI'll go further. Even if users' requirements and your goals don't change, you don't adequately understand them. You don't know what your users need perfectly. It's better to fire rapidly and adjust your aim than it is to try to have your first attempt be perfect. (Yes, people take this too far the other way...) Get something out there and start getting feedback. You won't actually know until you do.
- ezekiel68 2y agoYes and it almost serves as more of a coping mechanism (a thought framework that helps us accept what may not seem to be 'the better') than an airtight philosophical position.
- gpderetta 2y ago> The good news is that in 1995 we will have a good operating system and programming language; the bad news is that they will be Unix and C++. And 30 years later they show few signs of letting go.
- ezekiel68 2y agoYep. And nary a tear is shed these days over the death of the so-called superior Lisp machines.
- rwmj 2y agoMaybe not in any position to do anything about it, but I'm quite sad :-/
- lioeters 2y agoI was gonna say, I do shed a tear now and then dreaming of Lisp machines and the future that could have been.
- gpderetta 2y agoThe Spirit of the Machine still lives in some form in emacs.
- OhMeadhbh 2y agoMeh. Lisp machines still exist. They're just simulated in various Lisp's runtime environments. It turns out that a RISC machine running a Lisp interpreter or an executable compiled from Lisp source tends to perform better than a tagged/cdr Lisp Machine w/ hardware GC. That being said... I've wanted to implement an old Explorer using an FPGA for a while. Maybe if I just mention it here, someone will get inspired and do it before I can get to it.
- hayley-patton 2y agoLisp machines didn't have hardware GC, though they had hardware support for read/write barriers.
- i_s 2y agoI've read this a few times over the years and I think the argument is sound. But I wonder if it is sound in the same way this statement is: "It is better to go picking blueberries before they are fully ripe, that way you won't have much competition."
- NAHWheatCracker 2y agoI'll never understand the obsession with LISP. My guess is it just appeals to a certain type of person, sort of academic in my view. I'm not convinced that LISP was ever the-right-thing. The author didn't express anything about LISP vs C except to assert that C was a 50% solution and LISP was better. I agree though that for practical purposes, practical solutions are just going to be more successful.
- adamnemecek 2y agoIt’s a signaling mechanism to say “I went to MIT” or at the very least to say “I could have gone to MIT”.
- deleted 2y ago[deleted]
- djha-skin 2y agoI learned Racket at Brigham Young University in Utah, and Clojure, then Common Lisp on my own. I don't think it's just an MIT thing. It's in the ethos now. Lots of people know about SICP, for example.
- Blackthorn 2y agoHow do you know someone knows lisp? They'll tell you. And tell you. And tell you... I like lisp for the most part, but holy shit is the enduring dialog surrounding it the absolute worst part of the whole family of languages by far. No, it doesn't have or give you superpowers. Please grow up.
- anthk 2y agoDo either the book on Symbolic Computation + PAIP and/or SICP, and you'll understand.
- Blackthorn 2y agoYes, I've done SICP. Lisp does not give you superpowers.
- api 2y agoI feel like we're seeing a bit of push-back today against worse-is-better in the area of languages. Rust in particular feels more like the MIT approach, albeit with an escape hatch via the explicit keyword "unsafe." Its type system is very thoroughly specified and correct as opposed to C's YOLO typing.
- djha-skin 2y agoI actually take this as evidence that Rust will always remain niche. It's just a very complicated language. Go or Zig is much easier to learn and reason about. In Go you can immediately tell what the fields are in a config yaml file just by looking at struct annotations. Try doing that with Rust's Serde. Super opaque in my opinion.
- busterarm 2y agoExactly! Rust will only protect me from things my customers don't care about and don't understand. By not using Rust and just dealing with it, I'm making more money faster than if I started with Rust. Rust only matters in environments where that calculus comes out the other way.
- morning-coffee 2y ago> Rust will only protect me from things my customers don't care about and don't understand. Are you suggesting your customers don't care about CVE's, even indirectly when it affects them?
- warkdarrior 2y ago> Rust will only protect me from things my customers don't care about and don't understand. That's the wrong kind of protection. Rust should protect you from things people other than your customers (who presumably are well behaved) care about.
- crabmusket 2y agoI'm pretty sure your customers care that your software doesn't segfault!
- Der_Einzige 2y agoI know this is an article about Lisp and the specific usage of this term in the context of software acceptance, but when you use a title that provocative I want to speak specifically about the idea of "Worse is Better" with respect to a more literal idea of "sometimes things get worse overtime but you are told they have improved" For example, why is it that central vacuums are more rare in 2024 than they were in the 1980s, despite them being superior in every way compared to regular ones? "Worse" vacuums are "better" for the economy? (because Dyson makes jobs and consumes resources?)
- AnimalMuppet 2y agoCentral vacuums are worse in at least one specific way: Cost of fixing or replacing them when they break.
- pjc50 2y agoWhat the heck is a central vaccum? One plumbed into the house? Isn't that spectacularly expensive?
- stonemetal12 2y ago>A main disadvantage of central vacuums is the higher initial cost. In the United States, the average central vacuum system has an installed cost of around $1,000. https://en.wikipedia.org/wiki/Central_vacuum_cleaner https://en.wikipedia.org/wiki/Central_vacuum_cleaner Considering the price of a house it isn't "spectacularly expensive". On the other hand vs the price of a hoover yeah a bit. Since it sits in a closet or garage and doesn't move, weight becomes a non issue so it can be a real behemoth of a vacuum.
- bee_rider 2y agoI don’t get the name New Jersey approach, is it just the general association of New Jersey and poor quality? When I think of New Jersey and CS, I think of Princeton, which has a pretty good program IIRC. — Anyway, I wouldn’t put simplicity on the same level as the other things. Simplicity isn’t a virtue in and of itself, simplicity is valuable because it helps all of the other things. Simplicity helps a bit with consistency, in the sense that you have more trouble doing really bizarre and inconsistent things in a simple design. Simplicity helps massively with correctness. You can check things that you don’t understand. Personally, that means there’s a complexity prove after which I can’t guarantee correctness. This is the main one I object to. Simplicity and correctness simply don’t belong in different bullet-points. Simplicity could be seen as providing completeness. The two ways to produce completeness are to either work for a really long time and make something huge, or reduce scope and make a little complete thing. It’s all simplicity.
- karel-3d 2y ago(1991)
- shagie 2y agoFor another discussion on this https://wiki.c2.com/?WorseIsBetter https://wiki.c2.com/?WorseIsBetter which starts out with: RichardGabriel makes this observation on the survival value of software in the paper Lisp: Good News, Bad News, How to Win Big. See http://www.jwz.org/doc/worse-is-better.html for the section on WorseIsBetter. For those seeking the first node, see http://web.archive.org/web/19990210084721/http://www.ai.mit.edu/docs/articles/good-news/good-news.html. For even more context on WorseIsBetter see http://www.dreamsongs.com/WorseIsBetter.html. My favorite part is RichardGabriel arguing with himself.
- karel-3d 2y agoI remember when I had a lesson about OSI layers, where the teacher has carefully described all the layers in detail and then said something like "most of this is not important, these layers don't really exist, TCP/IP got popular first because it's just much simpler than OSI was"
- pjc50 2y agoOh, there's an entirely different feature-length article to be written/found about how packet switching beat circuit switching and the "Internet approach" beat the telco approach. The great innovation of being able to deploy devices at the edges without needing clearance from the center. I don't think very many people even remember X25. The one survivor from all the X standards seems to be X509?
- kragen 2y agoThe OSI stack was also designed using the packet-switching approach. Rob Graham's "OSI Deprogrammer" is a book-length article about how TCP/IP beat OSI, and how the OSI model is entirely worthless: https://docs.google.com/document/d/1iL0fYmMmariFoSvLd9U5nPVH1uFKC7bvVasUcYq78So/edit https://docs.google.com/document/d/1iL0fYmMmariFoSvLd9U5nPVH... I'm not sure he's right, but I do think his point of view is important to understand.
- fanf2 2y agoOSI was was two network stacks fighting with each other, the circuit-switched telco X.25 successor and the packet-switched DEC / Xerox anti-Internet. See also https://computer.rip/2021-03-27-the-actual-osi-model.html https://computer.rip/2021-03-27-the-actual-osi-model.html and https://dotat.at/@/2024-03-26-iso-osi-usw.html https://dotat.at/@/2024-03-26-iso-osi-usw.html
- kragen 2y agoThis is great, thanks! crawford's post pulls no punches: > Teaching students about TCP/IP using the OSI model is like teaching students about small engine repair using a chart of the Wankel cycle. It's nonsensical to the point of farce. The OSI model is not some "ideal" model of networking, it is not a "gold standard" or even a "useful reference." It's the architecture of a specific network stack that failed to gain significant real-world adoption.
- hammock 2y agoThere was an article posted on here[1] a while back that I only just found again, introducing the term "expedience." The idea was that we think we live in a world where people have to have "the best" sweater, be on "the best" social network, drive "the best" car, etc. But when you look at what really WINS, it's not the best, it's the most "expedient" - i.e. sufficiently good, with built-in social proof, inoculated of buyer's remorse, etc. Is Amazon "the best" place to go shopping? No, you might find better prices on individual items if you put a little more work into it, but it's the most expedient. Is Facebook/Instagram/Tiktok/insert here "the best" social network? No, but it is the most accessible, easy-to-use, useful one. Is a Tesla (perhaps outdated example since X) "the best" car - no, but it is the most expedient. There is a tangent here that intersects with refinement culture as well. Among the group of society that (subconsciously) care about these "expedient" choices, you see everyone and everything start to look the same [1]https://tinaja.computer/2017/10/13/expedience.html https://tinaja.computer/2017/10/13/expedience.html
- AnimalMuppet 2y agoIf you include the cost of gathering information, the expedient solution may in fact be the best.
- onlyrealcuzzo 2y ago> Is a Tesla (perhaps outdated example since X) "the best" car - no, but it is the most expedient. The most expedient car? Or BEV in the US?
- hammock 2y agoFair point... it was a coastal California-centric point but there is plenty of nuance or adjustment to be made. At some point in the 90's we'd probably have said "Silver E class Mercedes" is the most expedient luxury sedan, if you wanted a different example.
- adastra22 2y agoI think Toyota would have gotten your point across better. Tesla is most certainly not expedient. It is a luxury purchase.
- clarkevans 2y agoI think the worse-is-better philosophy is not well encapsulated with the 4 priorities given. Perhaps it is 4 completely different priorities. Here's a strawman. 1. Minimal -- the design and implementation must be the smallest as possible, especially the scope (which should be deliberately "incomplete") 2. Timely -- the implementation must be delivered as soon as feasible, even if it comes before the design (get it working first, then figure out why) 3. Relevant -- the design and implementation must address important, unmet need, eschewing needs that are not urgent at the time (you can iterate or supplement) 4. Usable -- the implementation must be integrated with the existing, working and stable infrastructure (even if that integration causes design compromises) The other dimensions, simplicity, correctness, consistency, and completeness are very nice to have, but they are not the primary drivers of this philosophy.
- AnimalMuppet 2y agoThat seems like a fairly solid strawman. I would say that Timely and Relevant drive Minimal. I would also say that Minimal and Usable are in tension with each other.
- jes5199 2y agowhat's the old saw about "unix design prioritizes simplicity over correctness, and on modern hardware simplicity is also no longer considered necessary"
- marcosdumay 2y agoThere's a really important detail in that simplicity tends to lead to correctness. Anyway, worse is better is about simplicity of implementation versus conceptual simplicity. By principle, that's a much harder choice.
- deleted 2y ago[deleted]
- mseepgood 2y agoMaybe don't call it "worse", maybe it's just you who has a skewed perception of "good"/"right".
- hammock 2y agoThe distinction between the set of five "right" principles and the five "worse is better" principles is known as compromise in design. It's the opposite of what marketers want you to think of when they say "uncompromising design."
- stonemetal12 2y agoIsn't "Worse is better" just a restatement of "Perfect is the enemy of Good", only slanted to make better\Perfect sound more enticing? >The right thing takes forever to design, but it is quite small at every point along the way. To implement it to run fast is either impossible or beyond the capabilities of most implementors. A deer is only 80% of a unicorn, but waiting for unicorns to exist is folly.
- deleted 2y ago[deleted]
- OhMeadhbh 2y agoYes and no. "Worse is Better" also implies you allow someone outside your problem domain to define abstractions you use to decompose the problem domain (and construct the solution domain.) So... I mean... that's probably not TOO bad if they're well-understood and well-supported. Until it isn't and you have to waste a lot of time emulating a system that allows you to model abstractions you want/need to use. But at the end of the day everyone knows never to assume STD I/O will write an entire buffer to disk and YOU need to check for EINTR and C++ allows you to wrap arbitrary code in try...catch blocks so if you're using a poorly designed 3rd party library you can limit the blast radius. And it's common now to disclaim responsibility for damages from using a particular piece of software so there's no reason to spend extra time trying to get the design right (just ship it and when it kills someone you'll know it's time to revisit the bug list. (Looking at YOU, Boeing.)) I do sort of wonder what happens when someone successfully makes the argument that C++ Exceptions are a solution often mis-applied to the problem at hand and someone convinces a judge that Erlang-like supervisory trees constitute the "right" way to do things and using legacy language features is considered "negligence" by the courts. We're a long way off from that and the punch line here is a decent lawyer can nail you on gross negligence even if you convinced your customer to sign a liability waiver (at least in most (all?) of the US.) Which is to say... I've always thought there is an interplay between the "worse is better" concept and the evolution of tech law in the US. Tort is the water in which we swim; it defines the context for the code we write.
- JohnFen 2y ago"Worse is better" has become like "move fast and break things". They're both sayings that reveal an often-overlooked truth, but they have both been taken far too far and result in worse things for everybody.
- ezekiel68 2y agoI see what you mean. Yet I feel like the first one (at least, as outlined in the article) is more about accepting an inevitability that you probably have little control over, while the second is more often adopted as a cultural process guideline for things you can control. But that's just my impression.
- sesm 2y agoAnd then it transformed into "move things and break fast".
- dang 2y agoThese look to be the interesting threads on Gabriel's worse-is-better essays: Lisp: Good News, Bad News, How to Win Big (1990) [pdf] - https://news.ycombinator.com/item?id=30045836 https://news.ycombinator.com/item?id=30045836 - Jan 2022 (32 comments) Worse Is Better (2001) - https://news.ycombinator.com/item?id=27916370 https://news.ycombinator.com/item?id=27916370 - July 2021 (43 comments) Lisp: Good News, Bad News, How to Win Big (1991) - https://news.ycombinator.com/item?id=22585733 https://news.ycombinator.com/item?id=22585733 - March 2020 (21 comments) The Rise of Worse Is Better (1991) - https://news.ycombinator.com/item?id=21405780 https://news.ycombinator.com/item?id=21405780 - Oct 2019 (37 comments) The Rise of Worse Is Better (1991) - https://news.ycombinator.com/item?id=16716275 https://news.ycombinator.com/item?id=16716275 - March 2018 (44 comments) Worse is Better - https://news.ycombinator.com/item?id=16339932 https://news.ycombinator.com/item?id=16339932 - Feb 2018 (1 comment) The Rise of Worse is Better - https://news.ycombinator.com/item?id=7202728 https://news.ycombinator.com/item?id=7202728 - Feb 2014 (21 comments) The Rise of "Worse is Better" - https://news.ycombinator.com/item?id=2725100 https://news.ycombinator.com/item?id=2725100 - July 2011 (32 comments) Lisp: Good News, Bad News, How to Win Big [1991] - https://news.ycombinator.com/item?id=2628170 https://news.ycombinator.com/item?id=2628170 - June 2011 (2 comments) Worse is Better - https://news.ycombinator.com/item?id=2019328 https://news.ycombinator.com/item?id=2019328 - Dec 2010 (3 comments) Worse Is Better - https://news.ycombinator.com/item?id=1905081 https://news.ycombinator.com/item?id=1905081 - Nov 2010 (1 comment) Worse is better - https://news.ycombinator.com/item?id=1265510 https://news.ycombinator.com/item?id=1265510 - April 2010 (3 comments) Worse Is Better - https://news.ycombinator.com/item?id=1112379 https://news.ycombinator.com/item?id=1112379 - Feb 2010 (5 comments) Lisp: Worse is Better, Originally published in 1991 - https://news.ycombinator.com/item?id=1110539 https://news.ycombinator.com/item?id=1110539 - Feb 2010 (1 comment) Lisp: Good News, Bad News, How to Win Big - https://news.ycombinator.com/item?id=552497 https://news.ycombinator.com/item?id=552497 - April 2009 (2 comments)
- dang 2y ago... and these are the some of the threads discussing it or aspects of it. Others welcome! Worse Is Better - https://news.ycombinator.com/item?id=36024819 https://news.ycombinator.com/item?id=36024819 - May 2023 (1 comment) My story on “worse is better” (2018) - https://news.ycombinator.com/item?id=31339826 https://news.ycombinator.com/item?id=31339826 - May 2022 (100 comments) When Worse Is Better (2011) - https://news.ycombinator.com/item?id=20606065 https://news.ycombinator.com/item?id=20606065 - Aug 2019 (13 comments) EINTR and PC Loser-Ing: The “Worse Is Better” Case Study (2011) - https://news.ycombinator.com/item?id=20218924 https://news.ycombinator.com/item?id=20218924 - June 2019 (72 comments) Worse is worse - https://news.ycombinator.com/item?id=17491066 https://news.ycombinator.com/item?id=17491066 - July 2018 (1 comment) “Worse is Better” philosophy - https://news.ycombinator.com/item?id=17307940 https://news.ycombinator.com/item?id=17307940 - June 2018 (1 comment) What “Worse is Better vs. The Right Thing” is really about (2012) - https://news.ycombinator.com/item?id=11097710 https://news.ycombinator.com/item?id=11097710 - Feb 2016 (35 comments) The problematic culture of “Worse is Better” - https://news.ycombinator.com/item?id=8449680 https://news.ycombinator.com/item?id=8449680 - Oct 2014 (116 comments) "Worse is Better" in the Google Play Store - https://news.ycombinator.com/item?id=6922127 https://news.ycombinator.com/item?id=6922127 - Dec 2013 (10 comments) What “Worse is Better vs The Right Thing” is really about - https://news.ycombinator.com/item?id=4372301 https://news.ycombinator.com/item?id=4372301 - Aug 2012 (46 comments) Worse is worse - https://news.ycombinator.com/item?id=437966 https://news.ycombinator.com/item?id=437966 - Jan 2009 (3 comments)
- ezekiel68 2y agoI'm always happy whenever this old article goes viral. For two reasons: First, learning to accept the fact that the better solutions doesn't always win has helped me keep may sanity over more than two decades in the tech industry. And second, I'm old enough to have a pretty good idea what the guy meant when he replied, "It takes a tough man to make a tender chicken."
- bbor 2y agoI’m glad to know a new article that “everyone knows”! Thanks for pointing out the age. And, at the risk of intentionally missing the metaphor: they do in fact make automated tenderizers, now ;) https://a.co/d/hybzu2U https://a.co/d/hybzu2U
- hyggetrold 2y agoIt's a funny expression and it is rooted in advertising: https://en.wikipedia.org/wiki/Frank_Perdue https://en.wikipedia.org/wiki/Frank_Perdue
- sebastianconcpt 2y agoTo Worse is Better I'd say, careful with what you wish.
- agumonkey 2y agoI assume that 'worse' often means find adequation with average and mass. This ensures a longer existence, later you may absorb the "better" you didn't have early on. Look how dynamic languages started to have better data types, various traits (generators, closures..), jit .. all things they could pluck out of old "glorious" languages that were .. somehow too advanced for the mainstream. It's a strange schizophrenic situation.
- 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.
- worstspotgain 2y agoEINTR's design is one of computing's absolute classics. To MIT and New Jersey, we should add the McDougals approach: "I cannot work under these conditions." When faced with the PC loser-ing issue, just don't implement the code in question. McDougals resolves the apparent conflict between the other two. It blames the interrupt hardware as the root cause. It produces non-working, incomplete software. It's kind of a modest proposal. However, it also produces no ripples in the design fabric. With MIT, the OS source is a maintenance nightmare. With NJ, modern software still has to deal with archaic idiosyncrasies like EINTR. With McDougals, all the "conflict-free" portions of the software advance, those that write themselves. The result is likely immediately shelved, perhaps as an open source PoC. Over time, someone might write some inelegant glue that makes interrupts appear to behave nicely. Alternatively, the world might become perfect to match the software. If nothing else, the software will have mimicked the way we learn. We use imperfect examples to draw the idealized conclusion. Even if it never gets to run, it will be more readable and more inspiring than either MIT or NJ.
- th43o2i4234234 2y agoThe critical point of the article holds true of everything in human social networks (be it religion/culture/philosophy/apps/industry...). If you don't achieve virality, you're as good as dead. Once a episteme/meme spreads like wild-fire there's very little chance for a reassessment based on value/function - because the scope is now the big axis of valuation. It's actually worse because humanity is now a single big borg. Even 30-40 years back, there were sparsely connected pools where different species of fish could exist - not any more. The elites of every single country is a part of the Anglosphere, and their populations mimic them (eventually). This tumbling towards widespread mono-memetism in every single sphere of life is deeply dissatisfying about the modern human life, not just for PL/OS/... but also for culture etc. Anthropocene of humanity itself.
- esafak 2y ago> If you don't achieve virality, you're as good as dead. Are you? Maybe the worse solution peaks faster, but can be supplanted by a better solution in the future, like how Rust is displacing C/C++ in new projects. The better solution may never be popular yet persist.
- th43o2i4234234 2y agoRust is nowhere near displacing C++. There's typically a "exhaustion" phase with mono-memetism/theories where everyone gets sick and tired of the "one and only way" and it becomes fashionable to try out new things (eg. Xtianity in Europe). We're not at this point where the olds can be toppled.
- deleted 2y ago[deleted]
- pjmlp 2y agoFor Rust to fully displace C++, it needs to eventually bootstrap itself, until then, C++ will be around. Additionally there are no significant new projects being done in Rust for the games industry, AI/ML, HPC, HFT, compiler backends, hardware design,....
- deleted 2y ago
- enugu 2y agoIronically, the main feature that separates LISP from other modern languages is homoiconicity/macros(now that features like garbage collection are mainstream). And this leads to an easier implementation - parsing is easier(which is why code transformation via macros becomes easy).
- kazinator 2y agoA language which has that feature tends to get classified as a member of the Lisp family, even if it is horribly "unlispy" under the hood in its semantics.
- Arch-TK 2y agoI have a theory that the worse is better approach begets an environment where the worse is better approach is better. At least hypothetically, I think there's an approach which is not "the right thing" or "worse is better" but rather more like "the right foundations". Most interface complexity in my experience seems to be inherited from underlying interface complexity, and it takes a lot of work to fix that underlying interface complexity. This, I think is where "worse is better" shines. If you try to apply a "the right thing" approach to a system where you're dealing with shitty underlying interfaces (i.e. every popular operating system out there including every unix, and NT system) you end up with endless complexity and performance loss. So obviously nobody will want to do "the right thing" and everyone who takes the "worse is better" approach will end up way ahead of you in terms of delivering something. People will be happy (because people are almost always happy regardless of how crap your product is). On the other hand, designing something with "the right foundations" means that "the right thing" no longer needs to involve "sacrifice implementation simplicity in favour of interface simplicity" to anywhere near the same extent because your implementation can focus on implementing whatever interface you want rather than first paving over a crappy underlying interface. But the difficulty of "the right foundations" is that nobody knows what the right foundations are the first 10 times they implement them. This approach requires being able to rip the foundations up a few times. And nobody wants that, so "worse is better" wins again.
- wismi 2y agoI think there's a lot of truth to this. It reminds me of an idea in economics about the "second-best". From the wikipedia page: "In welfare economics, the theory of the second best concerns the situation when one or more optimality conditions cannot be satisfied. The economists Richard Lipsey and Kelvin Lancaster showed in 1956 that if one optimality condition in an economic model cannot be satisfied, it is possible that the next-best solution involves changing other variables away from the values that would otherwise be optimal. Politically, the theory implies that if it is infeasible to remove a particular market distortion, introducing one or more additional market distortions in an interdependent market may partially counteract the first, and lead to a more efficient outcome." https://en.wikipedia.org/wiki/Theory_of_the_second_best https://en.wikipedia.org/wiki/Theory_of_the_second_best
- germandiago 2y agoFor me this is just utopia vs real world. What is better, a perfect design or one that exists? Our mind tries to trick us into thinking that the choice is between perfect and not so perfect. No, in real-life it is common that aiming for the perfect ruins everything else, even the existence of that idea in real form due to other constraints.
- pulse7 2y ago"worse is better" is "the right thing"