Live data from Hacker News

A brief interview with Common Lisp co-creator Dr. Scott Fahlman

pldb.com

71–80 of 161 posts

Re: A brief interview with Common Lisp co-creator Dr. Scott Fahlman

#71
post #65
post #29

Earlier quoted context omitted.

I have never really understood people‘s aversion to parentheses. Many languages require them in ad-hoc ways to groups expressions. For S-expressions, you give up some mild convenience and looks for extremely consistent semantics.

The syntactic consistency is at the same time its downfall: everything looks the same. (Functional languages like Haskell have a similar problem.) It’s more accommodating to human cognition if at least some part of the complexity and diversity of conceptual constructs in programming is represented in the syntax, meaning a certain range of different syntactic constructs that humans can attach meaning to. There is a sw…

I can understand this argument. However, at the same time, S-expressions do allow for rather expressive function names not usually available in other languages. various arrows, question and other punctuation makes, etc. can make for some nice function names.

I do agree with the sentiment to some degree though that it all looks the same. In an aesthetic sense, there is something I do like about it though.

Being a fan of both ML and Scheme, I have actually been experimenting with a syntax that is a hybrid of the two. I’m still in the experimentation phase, but it’s an interesting exercise.

Re: A brief interview with Common Lisp co-creator Dr. Scott Fahlman

#72
post #59
post #5

Earlier quoted context omitted.

He's overlooking an incredibly important factor: Java and C++ had capable, even enterprise quality free compilers at a time when Common Lisp environments were typically either hideously expensive or poorly supported or both. You could grab Sun's JDK for free, or GCC, or (later) Visual Studio Express at a time when the best options for Common Lisp were thousands of dollars per seat, or barely working on x86 (CMUCL did…

If this were the case, then explain StandardML which is vastly superior to Java and it's relatives in every conceivable way outside of a big corporation to push it. Even today, a large company like google would rather spend time with an inferior language like Go than work with SML.

What’s the SML equivalent of the JVM?

Re: A brief interview with Common Lisp co-creator Dr. Scott Fahlman

#73
post #71
post #65

Earlier quoted context omitted.

The syntactic consistency is at the same time its downfall: everything looks the same. (Functional languages like Haskell have a similar problem.) It’s more accommodating to human cognition if at least some part of the complexity and diversity of conceptual constructs in programming is represented in the syntax, meaning a certain range of different syntactic constructs that humans can attach meaning to. There is a sw…

I can understand this argument. However, at the same time, S-expressions do allow for rather expressive function names not usually available in other languages. various arrows, question and other punctuation makes, etc. can make for some nice function names. I do agree with the sentiment to some degree though that it all looks the same. In an aesthetic sense, there is something I do like about it though. Being a fan…

> expressive function names

Yes, but those are effectively library conventions, not fixed properties of the language. Maybe more importantly, names aren’t a structural construct, like a for loop or a class definition. And, arguably, you can have similar syntax in other languages, like e.g. `!` in Rust or the type sigils ($, @) in Perl, except that here you can be sure of their semantics.

Re: A brief interview with Common Lisp co-creator Dr. Scott Fahlman

#74
post #68
post #63

The early LISP crowd just didn't get the concept of making a product. The idea that eventually you generate an executable and leave the development environment behind was totally alien. I used Berkeley's Franz LISP in my years at the aerospace company. That was a compiler which generated .o files. So they were close to being able to do this. But you didn't link the .o files; you had to load them into the development…

Franz Lisp could generate executables from the beginning, the debugging features didn't add much to the size.

You could export something runnable from the dev environment, but it was, I think, a copy of the dev environment.

Re: A brief interview with Common Lisp co-creator Dr. Scott Fahlman

#75

Good interview. When I think of Scott Fahlman, I think of his nicely designed and implemented backdrop neural network library for Common Lisp.

Do you have a link to it? Thank you

I have his code on a DVDR backup, but I think this is what I used (paper) https://www.ra.cs.uni-tuebingen.de/SNNS/UserManual/node164.h...

EDIT: I was thinking of his QuickProp https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas...

Re: A brief interview with Common Lisp co-creator Dr. Scott Fahlman

#76
post #65
post #29

Earlier quoted context omitted.

I have never really understood people‘s aversion to parentheses. Many languages require them in ad-hoc ways to groups expressions. For S-expressions, you give up some mild convenience and looks for extremely consistent semantics.

The syntactic consistency is at the same time its downfall: everything looks the same. (Functional languages like Haskell have a similar problem.) It’s more accommodating to human cognition if at least some part of the complexity and diversity of conceptual constructs in programming is represented in the syntax, meaning a certain range of different syntactic constructs that humans can attach meaning to. There is a sw…

P.S.: The diversity in programming language design mirrors the diversity in how humans' minds work. Some people work better with dynamic than with static typing. Some people work better with Lisp, some with Haskell or ML, some better with Java and C#, some with APL and friends, etc. There is no one-size-fits-all, and one factor in the adoption of each language is how each programmer's cognition matches the respective kind of language, and also a little bit what they want to achieve practically with the language.

On the one hand it is important to have discussions on the benefits and drawbacks of different approaches in language design, and some people will change their minds based on that, but it's also an illusion that one single approach will ever suit everyone.

Re: A brief interview with Common Lisp co-creator Dr. Scott Fahlman

#77

Earlier quoted context omitted.

Do you have a link to it? Thank you

I have his code on a DVDR backup, but I think this is what I used (paper) https://www.ra.cs.uni-tuebingen.de/SNNS/UserManual/node164.h... EDIT: I was thinking of his QuickProp https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas...

Thanks!

Re: A brief interview with Common Lisp co-creator Dr. Scott Fahlman

#78
post #57
post #46

Earlier quoted context omitted.

(Open) Dylan is surviving just fine, and we expect to do a new release later this month.

As a Guix developer (there's a lot of Scheme and Common Lisp in Guix :) ), every few years I check on Open Dylan but so far each time there was something missing that made me unable to package it for Guix (building it entirely from source). I've checked it a few minutes ago and Open Dylan's ./configure says to download a bootstrap compiler from https://opendylan.org/download/index.html first -- but there's no such bo…

The way you actually have to do it is trawling through git repos to find an old version of Gwydion, bashing at it for a while, and maybe getting it to compile on modern platforms. Look for 2.4, then rewind, then pass a config flag, and a few more steps.

I wouldn't call Dylan thriving, unless you're a Windows user that really doesn't care about bootstrapping your language.

It's alive though, in the same sense that Miles, the dog that Segall froze and then brought back to life in 1987, was alive. Brain damaged, but alive.

Re: A brief interview with Common Lisp co-creator Dr. Scott Fahlman

#79

Earlier quoted context omitted.

Honestly it would have turned into something like Java if it had become popular in the industry. OOP and functional programming are really just different ways to encapsulate data and control dispatch. They don't change the fundamental nature of the work. Ultimately what happened to Java was the same thing that would have happened to any other dominant language that the industry uses to build heavy duty enterprise sof…

Reading this, it feels like you have never touched Common Lisp. It's not a functional programming language. It's an object-oriented imperative language.

Common Lisp is multi-paradigm and can be written to write functional code. It is the direct descendant of LISP which was the first functional language after all. Yes, Scheme and the like are more functional but CL is still far more functional than most other languages.

Imperative relates to coding style - I can equally write imperative or recursive code in Java.

Re: A brief interview with Common Lisp co-creator Dr. Scott Fahlman

#80
post #73
post #71

Earlier quoted context omitted.

I can understand this argument. However, at the same time, S-expressions do allow for rather expressive function names not usually available in other languages. various arrows, question and other punctuation makes, etc. can make for some nice function names. I do agree with the sentiment to some degree though that it all looks the same. In an aesthetic sense, there is something I do like about it though. Being a fan…

> expressive function names Yes, but those are effectively library conventions, not fixed properties of the language. Maybe more importantly, names aren’t a structural construct, like a for loop or a class definition. And, arguably, you can have similar syntax in other languages, like e.g. `!` in Rust or the type sigils ($, @) in Perl, except that here you can be sure of their semantics.

The naming is enabled by the way S-expressions work and aren't merely convention. Handling such syntax in non-parenthetic languages is difficult because of the overlap with the other meaning of those infix operators in the language. For example, in F#, if I have a function named `string->number`, then the parser doesn't know if I mean `(string) - (>number)`, `(string-) > (number)`, `(string) -> (number)`, or the function `string->number`.
Post reply on HN