Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Lisp: Good News, Bad News, How to Win Big (1990) [pdf] (dreamsongs.com)
72 points by capableweb on Jan 23, 2022 | hide | past | favorite | 32 comments


This essay contains the famous "Worse is Better" section, made popular by Jamie Zawinski

https://cs.stanford.edu/people/eroberts/courses/cs181/projec...

Summarized as:

"When tradeoffs are required in a software system, priority should go to implementation simplicity at the expense of completeness or correctness."

See also the wikipedia article:

https://en.wikipedia.org/wiki/Worse_is_better

An interesting aspect of all this is that Gabriel argues with himself in a series of papers under a false name:

https://dreamsongs.com/Files/worse-is-worse.pdf

A great example of someone looking at both sides of an argument.


RPG has an amusing summary article in which he recounts his failure to figure out whether he was right about this

https://dreamsongs.com/WorseIsBetter.html


“Worse is better” is in my opinion the crux of software engineering. If you look around it’s pervasive and can even be extrapolated to other areas.


I don’t really see priority going to implementation simplicity much in practice. (Completeness and correctness gets expended nevertheless alright.)


I mean, this is why we have version numbers


> A great example of someone looking at both sides of an argument.

I don't think so, we now call that kind of behaviour a sock puppet account. Why the deception?


> we now call that kind of behaviour a sock puppet account

Maybe it was a Socratic puppet.


the most underrated post in the history of hacker news


How would you know? You can't see how many points someone else's comment gets.

...that is, unless you have access to the account that posted it.


It was pretty obvious what was happening; naming your fictional debate partner after the most famous pseudonym of all time is as transparent as you can get. There's a long history of people doing exactly this in a variety of fields; it's not deception.


The name was "Nickieben Bourbaki", a reference to the collective pseudonym "Nicholas Borbaki" of the French mathematician collective. RPG had the idea that other people at Lucid would be interested in participating under this collective name, but that didn't happen.


>I don't think so, we now call that kind of behaviour a sock puppet account. Why the deception?

When did "looking at both sides of an argument" fall out of favor? It's a practice advised by science, philosophy, politics, all the way back to Plato's dialogues and earlier (which also used different names to present the views) all the way to "Godel, Escher, Bach".

>a sock puppet account

Sock puppet accounts are fake accounts made to seem as many people are in favor of a specific point X. They're meant to amplify X's perceived adoption.

It's not about a single person debating both sides of an argument (X and -X).

In fact, debating also for the opposite of your point, would be close to an opposite of a sock puppet account.


Wait a minute! Douglas Hofstadter predates Plato??!! I learn something new everyday! :)


That would be "all the way to Plato and earlier -and from there- all the way to Hofstadter".

That said, there are probably several senses in which Douglas Hofstadter predates Plato, even more if you believe in reincarnation...


these were simpler times

mapping today's online behavior onto them is misleading


They weren't doing it to support their original position, but rather arguing against it.


> priority should go to implementation simplicity at the expense of completeness or correctness

https://xkcd.com/221/


If "good enough" is "worse" than "perfect", then "worse" is indeed "better".

Perfect things never leave the drawing board; good enough things make it into production. Know thy tolerances.


So is Lisp in good shape today? See some cool releases of this year: https://www.reddit.com/r/Common_Lisp/comments/rp5lik/what_wa... CLOG (GUI in browser), M1 support for SBCL, LispWorks 8, VSCode plugin, Coalton (ML on top of CL), SB-SIMD and many new improvements to SBCL, new Clozure version, we know of more companies using CL...


The Lisp ecosystem is in excellent shape. Here's a nice curated list of libraries[1].

[1] https://github.com/CodyReichert/awesome-cl


Julia owes a lot to CL in terms of language design and is doing very well in its niche.

Watching how Julia fares in competition with Python can be seen as a kind of test of the Worse is Better hypothesis.

Cf. https://discourse.julialang.org/t/about-julia-and-lisp/25119


I don't think so. Where are the "stupid and wrong by default" examples in Python that are fixed with heroic effort in Julia? Julia has a lot of features that make it attractive, but Python of course does as well. The one big example I can think of that Python has suffered from over the years is the GIL.


The big one is package management. Julia's package manager is one of the best in the world (along with Rust). Python has about 20, and they all kind of suck.

Threading is another.

There's also a bunch of smaller things (e.g. no local eval) that are more tradeoffs for performance than straight up wins.


> VSCode plugin

Wait, what? There's finally something usable in that department?



Yep. There's also a Jupyter kernel or an Atom plugin if you want. https://lispcookbook.github.io/cl-cookbook/editor-support.ht...


I've already known about Atom and Jupyter, but not about anything actually usable for VS Code.


I read something here about lisp, that it was too good at letting you make whatever you wanted that libraries that 'carry' other programming languages didn't pop up and that had adverse affects on popularity, etc. If someone remembers this and has the link that would be great.


No time to Google I'm afraid, but I'm pretty sure that's "The curse of LISP".


I've now had time to Google, it's The curse of LISP. http://www.winestockwebdesign.com/Essays/Lisp_Curse.html



Thanks, amazing




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: