Live data from Hacker News

Why we need Lisp machines

fultonsramblings.substack.com

211–220 of 220 posts

Re: Why we need Lisp machines

#211

Earlier quoted context omitted.

Lisp at "read/maintain" time in a good environment is probably the most enjoyable time for me working with Lisp, assuming it's on a code base that followed some sort of coding standards. Introspection, debugging, and navigation in a Lisp environment are incredible.

Still the average function written by a smart lisp programmer is going to make me sigh, take three deep breathes, and set aside some time to focus, while the average function by a smart Go programmer, I can just read. This readability loss does counteract the ability to reload forms into a running core. Especially now when i am trying so hard to make everything running be immutable and derived from various git repos.

I don't think this is a Lisp thing, though - you get this same problem with Haskell and C++ and Perl as well, because the cultures of all of those languages normalize and encourage writing clever, difficult-to-read code.

Similarly, if you're working by yourself, or in a team with shared norms, you care far less about average function written by a random smart Lisp/Haskell/C++/Perl programmer, and more about what (a) you/your team writes and (b) the ergonomics of the language itself.

In fact, I argue that Lisp is slightly better than the above languages because much of its fanciness comes from macros, which you can trivially expand inline to simplify the code - which you can't do with fancy category theory constructs in Haskell, and is only barely possible with boost:: templates in C++, for instance.

(that isn't to say that I disagree with your point "the average function written by a smart lisp programmer..." - I completely agree with your assessment, I just don't think it's either as big of a problem as it could be, nor is it unique to Lisps)

Re: Why we need Lisp machines

#212

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.

> 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 extens…

Why do you think Lisp never gained significant popularity?

I think I understand why certain people really like Lisp -- I have enough experience with enough programming languages to understand the appeal. But I also believe it's unappealing to the majority and I don't think that's a controversial stance. It's not a simple matter of syntax -- I don't think it can be fundamentally still be Lisp and be broadly appealing.

Re: Why we need Lisp machines

#213

Earlier quoted context omitted.

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?

Well, not exactly. What you said doesn't quite have the form which supports that sort of activity.

Re: Why we need Lisp machines

#214

Earlier quoted context omitted.

> 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 extens…

Why do you think Lisp never gained significant popularity? I think I understand why certain people really like Lisp -- I have enough experience with enough programming languages to understand the appeal. But I also believe it's unappealing to the majority and I don't think that's a controversial stance. It's not a simple matter of syntax -- I don't think it can be fundamentally still be Lisp and be broadly appealing.

I think the majority of developers simply don't know whether they would like Lisp or not. It's just not that well known.

Mainly, Lisp was developed on institutional hardware in the era of big iron. It became larger and more complicated, keeping up pace with the capabilities of those machines, which Lisp could easily strain.

Suddenly, microcomputers showed up in the 1970's. The industrial strength Lisps just wouldn't go down from hundreds of kilobytes or megabytes of RAM required down to two-digit kilobytes.

The situation didn't start to improve until probably the late 1980's.

Some developers used Lisp for prototyping, and had the expensive hardware; then to create a product to ship to users on consumer hardware, they rewrote the prototype. That story was exemplified by the CLIPS expert system.

An entire generation of programmers who started on microcomputers in the 1970's and 1980's wouldn't have even had opportunities to use Lisp.

When I started programming in 1982 or so, I inherited a stack of Creative Computing magazine back issues, so I read about all sorts of interesting stuff, including Lisp; but I wouldn't have been able to get my hands on it anywhere: and not for the lack of knowing about it or wanting.

Microcomputers steam-rolled a vast amount of software that preceded them. Software that didn't make the jump from big iron to microcomputers either died or was relegated to niches. Fortran, Cobol, operating systems like Multics, you name it.

We use Unix-like systems today because Unix started on minicomputers that were close in capability to microcomputers. There was only a small lag time between Unix being "bigger iron only" to running on microcomputers. It used pretty modest resources; e.g in 1980, /vmunix was maybe 50-something kilobytes. But even that was a little bit large, and the microcomputer jump did hurt Unix; it allowed disk operating systems like CP/M, PC-DOS and MS-DOS to gain a foothold. Unix never quite recovered; we now have free versions that are quite popular, but mostly in serving and embedded.

Speaking of Unix, I read a book on using Unix in the mid 1980's. As a kid. I had nowhere to actually access it for hands-on experience, but was exciting to read about. You had to be a university student, or else a grown-up working at some company or institution. (Or else, dial into something and break in.)

Anyways, the time lag between the start of the microcomputer revolution, and Lisp being able to run well like on 1970 big iron, was quite long! Long enough to see people retire. There is nobody out there to do mentoring. If millions of programmers started to be interested in Lisp, there would be nobody available for mentoring. Everyone would have to use just books and such. You can hardly find a course to take or anything like that. Some universities use some Lisp or Scheme dialect in a few courses, and that's about it.

Even if every great Lisp hacker who ever lived was still alive and interested in mentoring, it wouldn't be enough; there simply weren't that many people in computing 30, 40, 50 years ago.

Re: Why we need Lisp machines

#215

Earlier quoted context omitted.

Why do you think Lisp never gained significant popularity? I think I understand why certain people really like Lisp -- I have enough experience with enough programming languages to understand the appeal. But I also believe it's unappealing to the majority and I don't think that's a controversial stance. It's not a simple matter of syntax -- I don't think it can be fundamentally still be Lisp and be broadly appealing.

I think the majority of developers simply don't know whether they would like Lisp or not. It's just not that well known. Mainly, Lisp was developed on institutional hardware in the era of big iron. It became larger and more complicated, keeping up pace with the capabilities of those machines, which Lisp could easily strain. Suddenly, microcomputers showed up in the 1970's. The industrial strength Lisps just wouldn't…

Lisp was invented 60 years ago and we're still talking about it today, right now. I don't think the issue is that isn't well known. Plenty of programming languages have sprung to life in that time from nothing and became more popular.

Lisp is more capable now than any time in it's history and if you wanted to learn about it then there's also no better time in history to do that than right now.

Re: Why we need Lisp machines

#216

Earlier quoted context omitted.

I think the majority of developers simply don't know whether they would like Lisp or not. It's just not that well known. Mainly, Lisp was developed on institutional hardware in the era of big iron. It became larger and more complicated, keeping up pace with the capabilities of those machines, which Lisp could easily strain. Suddenly, microcomputers showed up in the 1970's. The industrial strength Lisps just wouldn't…

Lisp was invented 60 years ago and we're still talking about it today, right now. I don't think the issue is that isn't well known. Plenty of programming languages have sprung to life in that time from nothing and became more popular. Lisp is more capable now than any time in it's history and if you wanted to learn about it then there's also no better time in history to do that than right now.

Lisp is absolutely not well known. Some programmers may know the word Lisp and that it refers to some kind of programming language, the same way that they might know about Fortran, and possibly Algol, PL/I or Snobol. People talking about it today are not average programmers.

I agree that there is no better time than now, but at the same time, the ratio of Lisp experts to total developers may also be at an all-time low.

Re: Why we need Lisp machines

#217

Earlier quoted context omitted.

Lisp was invented 60 years ago and we're still talking about it today, right now. I don't think the issue is that isn't well known. Plenty of programming languages have sprung to life in that time from nothing and became more popular. Lisp is more capable now than any time in it's history and if you wanted to learn about it then there's also no better time in history to do that than right now.

Lisp is absolutely not well known. Some programmers may know the word Lisp and that it refers to some kind of programming language, the same way that they might know about Fortran, and possibly Algol, PL/I or Snobol. People talking about it today are not average programmers. I agree that there is no better time than now, but at the same time, the ratio of Lisp experts to total developers may also be at an all-time lo…

But why do you need experts? Plenty of languages have been created out of nothing in the last few decades and have more users than Lisp. Obviously a new language starts with zero experts.

And Lisp has experts! You're literally posting this to a massively popular forum for developers and it's written in a Lisp dialect!

Reddit, arguably one of the largest sites on the Internet, was written in Common Lisp before being re-written in Python.

Re: Why we need Lisp machines

#218

Earlier quoted context omitted.

> 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 extens…

Why do you think Lisp never gained significant popularity? I think I understand why certain people really like Lisp -- I have enough experience with enough programming languages to understand the appeal. But I also believe it's unappealing to the majority and I don't think that's a controversial stance. It's not a simple matter of syntax -- I don't think it can be fundamentally still be Lisp and be broadly appealing.

> It's not a simple matter of syntax -- I don't think it can be fundamentally still be Lisp and be broadly appealing.

Python is, semantically, pretty similar to Common Lisp - they have far more in Common than they do with C++, for instance. So, even if it's not the syntax, it's clearly not the semantics or language behavior, either.

I'm pretty sure it's the syntax, though. You used the word "unappealing", which often refers to a surface attraction or draw. I think that this is absolutely correct - Lisps are unpopular in large part to their very weird syntax, and indeed, one of the most common comments that you'll hear when you bring up Lisp is "Is that the weird one with all of the parentheses?"

This is further reinforced by the fact that most programmers have never even tried to run a single line of a Lisp - and the vast majority haven't invested enough time to learn enough to write a non-trivial program with it, and therefore haven't had enough exposure to even judge whether they like the language or not. Therefore, any reason for unpopularity must be superficial.

Re: Why we need Lisp machines

#219

Earlier quoted context omitted.

Why do you think Lisp never gained significant popularity? I think I understand why certain people really like Lisp -- I have enough experience with enough programming languages to understand the appeal. But I also believe it's unappealing to the majority and I don't think that's a controversial stance. It's not a simple matter of syntax -- I don't think it can be fundamentally still be Lisp and be broadly appealing.

> It's not a simple matter of syntax -- I don't think it can be fundamentally still be Lisp and be broadly appealing. Python is, semantically, pretty similar to Common Lisp - they have far more in Common than they do with C++, for instance. So, even if it's not the syntax, it's clearly not the semantics or language behavior, either. I'm pretty sure it's the syntax, though. You used the word "unappealing", which often…

It's very easy to shallowly dismiss something if

- none of your friends or coworkers use it.

- there are few jobs requiring it.

Basically, you can mock it all you want with practically zero social risk.

Jokes that target people of some specific nationality or regional group are not as tolerated any more nowadays, perhaps depending on the social company, but this is like those jokes. For instance "dumb Polack" jokes.

You've heard the one: "Frederic Chopin and Nicolaus Copernicus walk into a bar, immediately bespying Marie Curie sitting by herself. Stanislaw Lem is tending bar, pouring her a drink. ..."

Re: Why we need Lisp machines

#220

Earlier quoted context omitted.

> 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.

Makes sense. I think many people would put Scheme in its own branch as well.

E.g. https://gist.github.com/Aethaeryn/3036597

Post reply on HN