Live data from Hacker News

Why we need Lisp machines

fultonsramblings.substack.com

201–210 of 220 posts

Re: Why we need Lisp machines

#201

Earlier quoted context omitted.

> The main issue is that Lisp, for all its inherent "power", has very limited tools for enforcing modularity boundaries in code and "programming in the large" I don't see any mention of "modular" or "boundaries" in the post you linked, so I'm assuming that it doesn't add extra context to your point. You say "very limited tools for enforcing modularity boundaries", which I'm going to assume means that you believe that…

Lisp is clever and also a but inhumane. It only ever appeals to the small subset of the population that likes that. Lisp has some niceties that are fundamentally inherent to its design but it's just not enough to overcome how awful it is for people. But this is not a technical deficiency of Lisp, it's more of a technical deficiency of humans.

What? How is Lisp (either the family of design decisions or even a specific language/implementation) "inhumane"? What does that even mean?

Re: Why we need Lisp machines

#202
post #178

Earlier quoted context omitted.

What do you think it is?

Marketing. Too focused on AI, followed by more than a decade of breathless hype for C++ and Java.

Nailed it. More generally: "non-technical cultural factors".

I would also add some minor incidental technical factors (e.g. early Lisp implementations were far less efficient than C implementation during the time when efficiency really mattered, and then cultural/marketing factors kept C as the dominant language far after the technical balance tilted in favor of Lisp).

Re: Why we need Lisp machines

#203

Earlier quoted context omitted.

Lisp is clever and also a but inhumane. It only ever appeals to the small subset of the population that likes that. Lisp has some niceties that are fundamentally inherent to its design but it's just not enough to overcome how awful it is for people. But this is not a technical deficiency of Lisp, it's more of a technical deficiency of humans.

What? How is Lisp (either the family of design decisions or even a specific language/implementation) "inhumane"? What does that even mean?

Inhumane is the wrong word; brutalist is a better word. Brutalist architecture is characterized by minimalist constructions that showcase the bare building materials and structural elements over decorative design. Human's are not logical/mathematical machines and all the irregular and decorative parts of programming languages are often for our benefit even if they're inconsistent, verbose, and limiting.

Re: Why we need Lisp machines

#204
post #154

Earlier quoted context omitted.

> Meh the problem is "Which Lisp?" Not a problem - you don't need (or want ) a single Lisp. A hypothetical Lisp OS would support a standard runtime and typed IPC system that host programs can use (a la Windows and COM, or dbus), and nothing prevents you from using your own custom communication protocol over pipes/sockets instead. I don't agree with your implicit assertion that there is a single reason why Unix is mor…

This feels like a whole bunch of misunderstandings about what I'm saying ... Almost everything here was directly addressed in the article. For that matter, why do you exclude the idea that JSON or XML aren't "common denominators" between Lisp programs, or even between Lisps, Python, and C++? JSON is mentioned in the post as A narrow waist, not THE narrow waist (of an operating system or of the Internet). I also menti…

> This feels like a whole bunch of misunderstandings about what I'm saying ... Almost everything here was directly addressed in the article.

I would definitely appreciate you pointing out exactly where the misunderstandings are! (also, ironically, most of the points that you make here were already addressed in my comment, including refutations of some of the ideas in your articles)

> JSON is mentioned in the post as A narrow waist, not THE narrow waist (of an operating system or of the Internet). I also mention CSV and HTML as "on the same level".

I saw that JSON was described as a narrow waist; however, the specific context of my question was about the use of those technologies applied to Lisps - if you believed that those were narrow waists, then you wouldn't have written both of the following:

> The lowest common denominator between a Common Lisp, Clojure, and Racket program is a Bourne shell script (and eventually an Oil script).

> What Is a Narrow Waist? [...] Small, simple mechanisms like the Internet Protocol, UTF-8, and JSON.

That is, there's an inconsistency between two statements both made by you, not a misunderstanding on my part.

> JSON, CSV, and HTML are all built on top of plain text. You can store them in source control and you can use grep on them, and you can build more specialized tools for them (which has been done multile times.)

Yes, and as I said in my initial post, that's both incidental and irrelevant. You missed or ignored several paragraphs of my comment you're responding to (starting with "Your article says"). I'll re-state for the sake of concision: the fact that those technologies are built on top of plain text does not mean that plain text is a narrow waist! All of those formats require the same level of parsing effort as they would as a byte-oriented protocol that didn't adhere to the subset of "plain text". This was, again, already addressed in my comment.

> See the threads linked in the posts -- a variant of this same argument came up.

You say "the posts" but there are at least four different "zones" that you could be referring to (the other posts on the Lisp machine article, links in your blog posts, or the Reddit or HN posts on your blog posts), and dozens-to-hundreds of individual links/comments in each of those "zones". "the posts" means nothing - please either link to a specific web page (or part of it, if it's long), or re-state the argument in your own words, so I can see what your argument is.

> This is very related to the idea of building Lisp into hardware, which I view as a bad idea.

I'm not defending that idea - I also thing it's a bad idea! I'm arguing against the specific idea of "text" being a "narrow waist".

> The article is analyzing why empirically Unix, the web, and the Internet have worked in multiple respects

You say this, but I can find zero evidence in either of your posts to support the assertion that the success of those things is a direct result of their use of plain text as a narrow waist. Thing like HTML don't count, because again, the fact that HTML builds on top of plain text is incidental and irrelevant.

> These are obviously successful systems

...and there are dozens of reason why a system can be successful, many of them social/cultural and not technical. Why is Windows so popular? Gmail? C++? Perl? SQL? Java? x86? DVD/Bluray? JavaScript? Are you going to tell me that the popularity of all of these systems are mainly due to technical reasons, and not business, social, cultural, and incidental ones?

In the specific case of Java, I can tell you that the main reason for its success was because Sun bribed universities to teach their CS courses in Java in exchange for free Sun workstations, and then the students went out and spread Java around. This is a perfect counterexample to the extremely naive idea that "technical superiority leads to market dominance", and there are dozens more out there.

Actually, given that we're on HN, any successful startup founder will tell you that technical superiority will not make your company successful (and of course we can then translate that to success in the open-source world).

> I think it is pretty crazy to have the opinion that because it makes you parse things that a design that tries to eliminate parsing much be better along many/all dimensions!

Then I'm going to say that I think that it is pretty crazy to have the opinion that a system that requires you to completely unnecessarily add serialization and deserialization for virtually no benefit whatsoever (and many significant drawbacks) is somehow better overall than a system that...doesn't.

> These kinds of (IMO naive) arguments are exactly why I wrote the last 2 posts.

I'm coming up with concrete counterarguments to every single point that you concretely state. Calling them "naive" instead of addressing their content is...not an indicator of sound reasoning, to say the least.

> They were popular and highly commented upon, and most people got it, or at least appreciated the tradeoffs I highlighted.

And, of course, none of those things are indicators of sound reasoning, either - appeal to authority and popularity fallacies, and all that.

> So I don't need to convince everybody

Well, unless you make concrete and valid arguments, I won't be convinced - although you can always find people who are convinced without those...

> as I said in the intro to the post, the more important task is to build something that embodies these ideas.

I am building things that embody these ideas. They're likely never going to be open-source, though, so I'm not surprised if you don't believe me.

> I look forward to your code and blog posts

The idea that blog posts are somehow more authoritative or substantial than any kind of writing is...something, for sure.

Unless you're saying that a design paradigm isn't good unless it's implemented in software, in which case that's clearly false, given the number of completely terrible design paradigm that have been used to design "working" software.

Re: Why we need Lisp machines

#205

Earlier quoted context omitted.

What? How is Lisp (either the family of design decisions or even a specific language/implementation) "inhumane"? What does that even mean?

Inhumane is the wrong word; brutalist is a better word. Brutalist architecture is characterized by minimalist constructions that showcase the bare building materials and structural elements over decorative design. Human's are not logical/mathematical machines and all the irregular and decorative parts of programming languages are often for our benefit even if they're inconsistent, verbose, and limiting.

That's not the experience a Lisp programmer has.

One is not looking at dead code, instead one is working with it interactively.

Lisp is not brutalist concrete, Lisp is wet clay in the programmer's hands.

The main way to program software in Lisp is extending it while it is running and with the development tools as much integrated as possible. Thus a Lisp program has maximum information about itself, there is no separate debug mode, no long build times, no static code.

Re: Why we need Lisp machines

#206

Earlier quoted context omitted.

The canonical Lisps still widely used today are Common Lisp, Scheme and Emacs Lisp. They all belong in the same family, and syntax / semantics are close. Porting code from Scheme to Common Lisp can be a lot easier than going from Python 2 to Python 3. Clojure is something else entirely which is why a lot of people don't consider it a Lisp. > Honest question: how do you communicate between two Lisp processes on two di…

> Common Lisp, Scheme and Emacs Lisp... all belong in the same family Could you say more about what you mean by this? Is there another family of Lisps that excludes these three? I've met people who make a big deal about lisp-1 vs lisp-2 ( https://en.wikipedia.org/wiki/Lisp-1_vs._Lisp-2 ), and which is the right way to be a Lisp, but I think maybe those people just enjoy being pedantic.

I was referring to Clojure which going by syntax/semantics does not belong in the same family as Common Lisp, Scheme, Emacs Lisp.

Re: Why we need Lisp machines

#207

Earlier quoted context omitted.

What? How is Lisp (either the family of design decisions or even a specific language/implementation) "inhumane"? What does that even mean?

Inhumane is the wrong word; brutalist is a better word. Brutalist architecture is characterized by minimalist constructions that showcase the bare building materials and structural elements over decorative design. Human's are not logical/mathematical machines and all the irregular and decorative parts of programming languages are often for our benefit even if they're inconsistent, verbose, and limiting.

Lisps are fairly "decorative". It just doesn't combine a pin-striped blazer over a plaid shirt with leopard patterned pants, like many languages.

Here are some traditional notations found in Common Lisp:

  "string"
  symbol
  :keyword-sym
  #:gensym
  package:sym
  `(static content ,inserted ,@spliced)
  (l i s t)
  (im pro per li . st)
  #(v e c t o r)
  6.18e+23
  13/17
  ;; comment
  #*100111101101
  #1=(1 2 3 #1#) ;; circular structure
  #S(point :x 35 :y 44)
Various dialects have various notations. There is syntax highlighting support in editors, too.

Lisp is not just (this (and that)).

Re: Why we need Lisp machines

#208
post #175
post #149

Earlier quoted context omitted.

Since they moved to Layer 2 it has been amazing. No eth fees anymore. They should just move to their own chain entirely. Maybe this is a baby step towards that. Each Galaxy/Star is already basically a staker in a Proof of Stake network.

Always be griftin

if they were on their own POS chain, they wouldn’t need to charge anything. it is just in the galaxy/stars best interest to maintain the ledger of activity.

galaxies/stars can just charge for services provides like an ISP basically

Re: Why we need Lisp machines

#209

Earlier quoted context omitted.

Inhumane is the wrong word; brutalist is a better word. Brutalist architecture is characterized by minimalist constructions that showcase the bare building materials and structural elements over decorative design. Human's are not logical/mathematical machines and all the irregular and decorative parts of programming languages are often for our benefit even if they're inconsistent, verbose, and limiting.

Lisps are fairly "decorative". It just doesn't combine a pin-striped blazer over a plaid shirt with leopard patterned pants, like many languages. Here are some traditional notations found in Common Lisp: "string" symbol :keyword-sym #:gensym package:sym `(static content ,inserted ,@spliced) (l i s t) (im pro per li . st) #(v e c t o r) 6.18e+23 13/17 ;; comment #*100111101101 #1=(1 2 3 #1#) ;; circular structure #S(p…

And you imagine this is a contraction to what I said?

Re: Why we need Lisp machines

#210

Earlier quoted context omitted.

What? How is Lisp (either the family of design decisions or even a specific language/implementation) "inhumane"? What does that even mean?

Inhumane is the wrong word; brutalist is a better word. Brutalist architecture is characterized by minimalist constructions that showcase the bare building materials and structural elements over decorative design. Human's are not logical/mathematical machines and all the irregular and decorative parts of programming languages are often for our benefit even if they're inconsistent, verbose, and limiting.

> Brutalist architecture is characterized by minimalist constructions that showcase the bare building materials

This definitely doesn't describe the semantics of most Lisps, which operate at the higher levels of abstraction and conceal many implementation and hardware details from you by default.

It also doesn't describe the syntax of most Lisps, including all of the major ones. Common Lisp, in particular, has extensive syntactic sugar, as shown in kazinator's post.

> structural elements over decorative design

I mean, Lisps don't usually go out of their way to look "pretty", but neither do they actively attempt to look ugly. Most Lisps' syntax has had design effort put into it - the authors strive for consistency and ergonomics.

Taste is subjective, and I personally strongly prefer the syntax of Common Lisp to C or Python - both in terms of aesthetic appearance, and in terms of ergonomics.

Furthermore, very few programming languages (excluding most Lisps and all major languages) are intentionally designed to be "decorative". Whitespace, for instance, is added into languages for readability and parsing determinism, not beauty or decorative appeal.

I don't think that this metaphor is accurate at all. There are many criticisms that you can make of both the Lisp family and specifically of Common Lisp, but I don't think that "brutalist" is a valid one.

Post reply on HN