[HN Gopher] A brief interview with Common Lisp co-creator Dr. Sc...
       ___________________________________________________________________
        
       A brief interview with Common Lisp co-creator Dr. Scott Fahlman
        
       Author : dorfsmay
       Score  : 119 points
       Date   : 2022-11-12 16:07 UTC (6 hours ago)
        
 (HTM) web link (pldb.com)
 (TXT) w3m dump (pldb.com)
        
       | djha-skin wrote:
       | > programming languages don't become mainstream based on their
       | elegance or their deep utility. For any given project, the best
       | programming language to use is the one everyone else is using for
       | that kind of programming at that time. It doesn't have to be the
       | language that is best or most beautiful, and it hardly ever is.
       | As long as the currently-dominant language is adequate to the
       | task without TOO many infuriating shortcomings, just use it.
       | 
       | Unexpected advice coming from one of Common Lisp's creators. He
       | goes on to talk about how languages usually become popular
       | because they have the backing of some large company. Things
       | haven't really changed. Rust and Golang both at least had some
       | sort of backing company to get them started.
        
         | jes5199 wrote:
         | counterexamples: python ruby perl clojure C C++
        
       | mark_l_watson wrote:
       | Good interview. When I think of Scott Fahlman, I think of his
       | nicely designed and implemented backdrop neural network library
       | for Common Lisp.
        
         | ashok-syd wrote:
         | Do you have a link to it? Thank you
        
       | lisper wrote:
       | "What I came to understand, after years of work on Common Lisp
       | and the death of Dylan, the ongoing popularity of the hideous
       | C++, and the rise of Java, is that programming languages don't
       | become mainstream based on their elegance or their deep utility.
       | ... [T]he best languages very rarely take over, if ever. Some
       | language starts being used because it has the backing of some big
       | company or project, people doing similar things use it as well,
       | positive feedback sets in, and soon it is the language everyone
       | is using. Java is an example -- not nearly as good as Lisp on
       | many dimensions, but it appeared at the right time for a language
       | with some good properties for creating downloadable Internet
       | apps. And it had the backing of Sun Microsystems, at a time when
       | Sun was powerful. So Java became mainstream, while Common Lisp
       | and Dylan faded away."
       | 
       | :-(
        
         | [deleted]
        
         | nonrandomstring wrote:
         | It is sad. But I feel some of the sibling comments about
         | availability are correct. My love of Lisp went unrequited for
         | may years. Faffing around with Steel Bank and Common Lisp
         | environments that drove me crazy, when I could just type
         | 
         | cc myprog.c
         | 
         | and get stuff done (fast but unsafely)
         | 
         | The Scheme we had at college (which ran on some Sun machines
         | IIRC) just wasn't available in the wild once I left school.
        
         | dleslie wrote:
         | 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 didn't have x86 support in any capacity until after 96,
         | and by then Java was out).
         | 
         | Personally, I loved lisp in the 90s, but it was just so much
         | easier to get my hands on C and Java, and libraries to go with
         | them. Java, C and C++ were actually available on DOS and
         | Windows. Even today, Windows support among lisps is terrible!
         | 
         | Edit: I miss Turbo C, but had there been a Turbo Lisp, priced
         | affordably and on the shelf at radio shack? We'd all be
         | programming in lisp.
        
           | pfdietz wrote:
           | Indeed. It took a while for a good free Common Lisp to become
           | available. Arguably this wasn't until SBCL (initial release,
           | December 1999).
        
             | lispm wrote:
             | And even that still lacks basic Windows integration.
        
             | jll29 wrote:
             | (Free) LISPs on Linux today look a bit rough, is there any
             | implementation that turns Linux into something that has the
             | look and feel of a LISP machine?
             | 
             | Parentheses aside, don't expect people to pick up a
             | language if all they can see is a REPL where the only edit
             | operation that works is DEL(ete), at a time when all other
             | languages have graphical IDEs with syntax coloring,
             | context-sensitive help, single-step debugging etc. (and no,
             | I don't mean Emacs).
             | 
             | edit: screen shot to support the argument https://en.wikipe
             | dia.org/wiki/Steel_Bank_Common_Lisp#/media/...
        
               | dleslie wrote:
               | No, there is not. There's no desktop environment for
               | Linux that supports the runtime extensibility and
               | inspection abilities of a symbolics lisp machine.
        
           | zabzonk wrote:
           | agree. this has also been the problem fore smalltalk. before
           | things like scratch and pharo came along, commercial
           | smalltalk licences were eye-wateringly expensive.
        
           | lispm wrote:
           | CMUCL was his baby and he was responsible for that. But it
           | addressed UNIX systems. Those usually had not x86 processors
           | at that time and Windows was not very interesting as a
           | platform then.
           | 
           | Windows (and Macs) were never a good place for free Lisps
           | for, since the support of those on proprietary platforms was
           | costly (in terms of knowhow, time and money) and there was no
           | vendor support. Users on those platforms usually expect
           | support for the vendor libraries AND full GUI support.
           | Microsoft and Apple always pushed their own development
           | tools&languages (Visual Basic, C, C++ and Pascal, C/C++,
           | Objective-C, Swift). The Lisp systems used on Windows and Mac
           | were mostly commercial, since they had GUI and platform
           | support. MCL on the Mac and on Windows then Golden Common
           | Lisp, Allegro CL, ...
        
             | rjsw wrote:
             | CMUCL could have been ported to x86 earlier, I was running
             | UNIX on a 386 in 1987 but only had AKCL for it. I was the
             | first beta-tester for CMUCL on FreeBSD in 1996.
        
           | rileyphone wrote:
           | Similar forces hampered the adoption of Smalltalk in the 90s
           | as well [0]. Charging per-seat licenses to use programming
           | languages almost never works, introducing friction that
           | counters needed network effects, especially when prospective
           | users can download a perfectly viable (if not much worse)
           | alternative for free. Sure, there are a few systems bitterly
           | hanging on to this business model - Lispworks, Cincom,
           | Mathematica - but it's clear they are surviving in spite of
           | it.
           | 
           | 0. https://gbracha.blogspot.com/2020/05/bits-of-history-
           | words-o...
        
           | taeric wrote:
           | I think that is just a facet of his point. It was Sun's
           | corporate backing and muscle that enabled you to get their
           | SDK for free. And this is ignoring the reach out into
           | education markets to get Java as the 101 level course for an
           | absurd number of students.
        
             | [deleted]
        
             | skissane wrote:
             | > It was Sun's corporate backing and muscle that enabled
             | you to get their SDK for free.
             | 
             | You could get GCC for free before Java 1.0 was released. My
             | personal introduction to GCC was Walnut Creek's Hobbes OS/2
             | CD-ROM from 1994, the EMX port. Paid for the CD-ROM, but we
             | could have downloaded it for free if we had Internet
             | access. EMX did DOS too, and DJGPP was also available at
             | the same time (and ended up overtaking EMX under DOS).
        
               | taeric wrote:
               | Right. Gcc was free. And had wider reach than lisp. Not
               | sure how this is a counter point?
               | 
               | You could somewhat freely get some compilers. Sun paid a
               | ton to get Java to people.
        
               | dleslie wrote:
               | > > It was Sun's corporate backing and muscle that
               | enabled you to get their SDK for free.
               | 
               | It was GCC being free, and on DOS thanks to djgpp, that
               | made it successful; and it didn't need corporate
               | megabucks to do it.
        
               | taeric wrote:
               | I think you are talking past me, though. My claim is that
               | it took massive corporate bucks for Java to get inroads.
               | Specifically because it was competing with some free
               | options.
               | 
               | Common lisp had nothing like that. Nor did Ada. Or...
               | really, any other language? Microsoft did a pretty heavy
               | push with C# and the general .NET ecosystem. Though, even
               | they had to resort to destroying a lot if the VBScript
               | world that had proliferated quite heavily by just being
               | available on tools that folks otherwise had.
        
               | dleslie wrote:
               | Java was free, too; and at the time, djgpp was
               | effectively the only free c++ toolchain on DOS and
               | Windows.
               | 
               | Common Lisp wasn't even available to DOS and Windows
               | users, let alone free or corporately backed. Even now
               | every single free common lisp has substandard or outright
               | broken Windows support.
               | 
               | Common Lisp didn't bother to show up to the party. That's
               | the first problem; it was priced terribly, when it did
               | become usefully available.
        
               | skissane wrote:
               | > Not sure how this is a counter point?
               | 
               | GCC being freely available didn't require massive
               | corporate backing.
               | 
               | So lack of massive corporate backing is insufficient as
               | an explanation of Common Lisp's lack of free availability
               | (on then-mainstream platforms) circa 1995.
               | 
               | I think the real explanation is, at that point, the
               | Common Lisp community mostly didn't get why it was
               | important. And by the time they got it, it was too late.
        
               | taeric wrote:
               | GCC being freely available is by far the exception,
               | historically. Such that I don't really get your point. Do
               | we know why/how GCC was able to pull off being free?
               | 
               | And, as I said in a sibling thread, my assertion is that
               | it took massive corporate spending for Sun to get inroads
               | with Java. In large because they were competing with GCC.
        
               | skissane wrote:
               | > Do we know why/how GCC was able to pull off being free?
               | 
               | Because RMS is an ideological obsessive for whom software
               | being free was more important than making money. Although
               | he wrote a major Lisp implementation himself (Emacs
               | Lisp), he saw C as the more pragmatic path to making free
               | software widely available than Lisp. Also, as a former
               | employee, MIT gave him a lot of (in-kind) support.
               | 
               | (Actually GCC was not the first free compiler. RMS
               | started out planning to turn LLNL's free compiler for a
               | Pascal derivative, Pastel, into a C compiler. But he
               | abandoned that approach, because the Pastel compiler was
               | a big resource hog by the standards of the time - it was
               | initially developed to run on a supercomputer, it
               | wouldn't work on the Unix workstation RMS was using.)
               | 
               | CMU Common Lisp was free, and CMU's research funding paid
               | for it. But their focus was on Unix workstations, they
               | never saw the value in porting it to x86 (let alone
               | DOS/Windows). By the time the x86 port happened (done by
               | volunteers, not paid for by CMU), Java had already taken
               | off.
        
               | dleslie wrote:
               | djgpp + allegro
               | 
               | That combination was killer for a broke teenager in the
               | 90s.
        
               | SighMagi wrote:
               | That was indeed where many of my teenage hours went -
               | hacking out game experiments in DJGPP and Allegro on our
               | family's 486. It was also my intro to Emacs which stayed
               | with me for decades afterwards.
        
           | fm2606 wrote:
           | > I miss Turbo C
           | 
           | I started college in 1988 and they were offering copies of
           | Turbo C with all the books for $5, but you had to supply the
           | 5 1/4" disks.
           | 
           | I only lasted 1 1/2 years in college (that time around) so I
           | didn't get to experience Unix or lisp or anything like that.
           | Well I did take an IBM 370 assembly language class. Had to do
           | the assignments on dumb terminals in the basement of the
           | dorms and pick up the print outs in the basement of the CS
           | building.
        
           | hajile wrote:
           | 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.
        
           | bcrosby95 wrote:
           | I transferred from community college to a CSU in the early
           | '00s. Our high school was using Pascal, the community college
           | I went into was using C++, and the CSU I eventually
           | transferred into recently transitioned to Java, and they were
           | using C++ before then.
           | 
           | When we used C++, the education version of Visual Studio was
           | about the price of a text book - so not very expensive
           | considering you would use it across many classes.
           | 
           | I assume the schools followed industry rather than the other
           | way around. But thinking about it, Java had made its way into
           | at least one CSU, as the primary language, about 3-4 years
           | after its 1.0 release date. That is amazingly fast.
        
         | dorfsmay wrote:
         | The money SUN poured to support Java helped a lot, but the
         | promise of being able to run the same "binary" on every
         | platform (and running faster than perl, which was the other
         | write-once-run-everywhere at the time) was also very
         | attractive.
        
       | comfypotato wrote:
       | He certainly implies that he thinks Common Lisp (and maybe Dylan)
       | would have been as popular as Java is today if the lottery had
       | played out differently.
       | 
       | I wonder if anyone else feels this way. The programming world
       | would be a different place.
       | 
       | I can't help but fantasize about how incredible eMacs would be by
       | now if that had been the case. (Not that it isn't already
       | incredible.)
        
         | twblalock wrote:
         | 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 software: stuff like ORM
         | frameworks, data transfer objects, servlet containers, some
         | kind of web integration like JSP, RPC frameworks, SOAP, REST,
         | etc.
         | 
         | Would it be easier or better to do that stuff in Lisp? Maybe.
         | But not by a huge amount. The beauty of the language would
         | certainly end up being obscured by the boring, complex,
         | practical work that we would all be doing with it. And most
         | programmers would not be better than they are now -- instead
         | they would force an imperative model on top of whatever
         | substrate they are given, just like they do today.
        
         | nerdponx wrote:
         | I think S-expressions are fundamentally too difficult to work
         | with, without good editor support, to make Lisp anything other
         | than a niche power tool for the highly motivated. I love CL,
         | Scheme, Clojure, Janet, Fennel, etc. but I don't blame anyone
         | for finding them inaccessible.
         | 
         | I think Python, JavaScript, and Go have caught on for somewhat
         | similar reasons, compared to Java and C#: they are easier to
         | get started with, and you can still scale them up to fairly
         | large applications.
         | 
         | On the other hand, I think S-expressions are a sadly
         | underexplored format for data serialization and storage.
        
           | wrycoder wrote:
           | But, you always have good editor support. Lisp/Scheme has
           | traditionally been coded using Emacs or its equivalent. With
           | that support, the parens seem to disappear after you've been
           | writing lisp for awhile.
           | 
           | Beginner lispy languages come with a suitable beginner IDE,
           | e.g. Racket or Logo.
           | 
           | A typical lisp statement has a leading '(' and a trailing
           | ')', which replaces the ';' in Algol-like languages. So, one
           | additional character, which brings a lot of benefit when
           | writing DSLs and macros.
           | 
           | (Python doesn't have the ';', but its whitespace is
           | ambiguous, so that's not a fair comparison.)
           | 
           | Sane people don't write lisp using Notepad.
        
             | bambataa wrote:
             | I tried using Slime with Scheme when I was doing SICP. I'm
             | sure it's great when you know it well, but I kept pressing
             | the wrong shortcut and moving things around in ways I
             | didn't intend and then it wouldn't let me manually type or
             | delete parentheses to fix things. I found it very
             | frustrating and ended up turning it off.
             | 
             | Just another barrier and C-style languages seem much easier
             | to write in comparison.
        
               | Jtsummers wrote:
               | Slime did that? Slime doesn't take over the editor that
               | much (it shouldn't prevent you from typing parentheses,
               | I've used it for 16 years or so and never experienced
               | anything like that). Was it paredit or another editor
               | mode?
        
             | comfypotato wrote:
             | I think the parent comment is alluding to the notion that
             | the very entry level programmer enjoys being able to use
             | notepad. That is to say the initial barrier of eMacs is
             | just too much. Obviously worth it in the long run though.
        
               | db48x wrote:
               | "eMacs" is the wrong capitalization. It's "Emacs".
        
               | comfypotato wrote:
               | M-c would fix that I believe.
               | 
               | My autocorrect has been doing that for some reason and I
               | assumed there was logic to it. Your comment sent me on a
               | dive that proved my intuition woefully incorrect.
        
           | [deleted]
        
           | bmitc wrote:
           | 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.
        
             | musicale wrote:
             | > I have never really understood people's aversion to
             | parentheses
             | 
             | A common refrain from Lisp family language enthusiasts.
             | (Personally I prefer Smalltalk-style "conversational"
             | syntax to Lisp-style or C-style syntax, yet it's similarly
             | unpopular.)
             | 
             | For better or for worse, the vast majority of programmers
             | seem to have voted with their feet for C-style syntax
             | (C/C++/Java/JavaScript/etc.) and its variants (Python). In
             | a C/C++/Java/JavaScript world, C syntax has a fair amount
             | of leverage.
             | 
             | It's a shame that Dylan didn't continue, as it seems to
             | have taken a decent crack at adding algebraic syntax to
             | Common Lisp - arguably realizing McCarthy's original vision
             | of infix M-expressions as a more programmer-friendly
             | syntax. I wonder how hard it would be to add a Dylan-style
             | syntax layer to modern CL?
             | 
             | Be that as it may, one can readily write Lisp/Scheme-style
             | programs in JavaScript. See Crockford's "The Little
             | JavaScripter."[1] The major omission/deficiency being
             | macros for JavaScript syntax.
             | 
             | [1] https://www.crockford.com/little.html
        
               | bmitc wrote:
               | My favorite languages are MLs, particularly F#, which
               | usually have some of the cleanest syntaxes available.
               | It's not just Lisp-family enthusiasts. I think it's more
               | for anyone that thinks rather that follows or assumes or
               | whatever.
               | 
               | I actually learned about Lisp/Scheme after I had learned
               | about several other languages.
               | 
               | What do people not like about parentheses? It's normally
               | along the lines of "well, I just don't like them", which
               | can be read as "it's not what I'm used to". Yet, these
               | same programmers will freely throw parentheses around
               | expressions in an ad-how manner to communicate with the
               | compiler in their given language. In some ways, one can
               | back Lisp/Scheme out of popular languages by stating that
               | instead of letting parentheses be used to frequently but
               | not always _clarify_ precedence and grouping and function
               | application, they are going to be required to _enforce_
               | these. Such a thing is not such a radical or unreasonable
               | stance.
               | 
               | McCarthy's original M-expressions are somewhat
               | irrelevant. He wasn't trying to make a programming
               | language for software development. He was investigating
               | it as a tool for his research.
               | 
               | My primary complaint about popular languages like Python,
               | C++, C#, etc. are their irregularities. There _a lot_ of
               | syntax, semantics, and little quirks in the languages
               | that make it very hard to just _know_ the language and
               | move on solving problems. My favorite thing about Schemes
               | are their regularity. The social popularity of languages
               | can't be explained by their technical merits. It's more
               | due to social and historical phenomena than a technical
               | reason.
               | 
               | For what it's worth, I also like Smalltalks.
        
               | housel wrote:
               | (Open) Dylan is surviving just fine, and we expect to do
               | a new release later this month.
        
               | wott wrote:
               | I haven't given a look at this language in a few years;
               | is it still so that there are no enums, and that
               | operators _must_ be surrounded by spaces?
        
               | dannymi wrote:
               | 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 bootstrap compiler there.
               | 
               | Do you have some hints on how to package it?
        
             | lakecresva wrote:
             | The syntax is consistent, I don't know about the semantics.
             | The trade-off is that it becomes more difficult to glance
             | at a piece of code and visually distinguish what's what.
        
             | krapp wrote:
             | It's not so much an aversion to parentheses as an aversion
             | to _nothing but_ parentheses. Other languages use other
             | brackets to indicate different contexts, but s-expressions
             | can more difficult to read. The idiom of putting all of
             | your end parens on a single line doesn 't help.
             | 
             | And for most people, the mild convenience of readability is
             | preferable to the consistent semantics.
        
         | ozten wrote:
         | Sun Microsystems poured millions of dollars into marketing
         | Java. During the dotcom bust billboards, posters, magazine ads,
         | and online ads where common.
         | 
         | This massively accelerated it's adoption curve and built a
         | valuable trademark which would be part of the reason Oracle
         | paid $7 billion to buy it.
        
         | kaveh808 wrote:
         | If Apple had not been in financial trouble...
         | 
         | If Dylan had been completed in time for the NewtonOS...
         | 
         | If the Newton had taken off...
         | 
         | I mused on some some alternate histories for Common Lisp in a
         | blog posting:
         | 
         | https://medium.com/@kaveh808/41-world-building-and-alternate...
        
           | lispm wrote:
           | Also if the first Newton MessagePad didn't have less than 1
           | MB RAM. ;-) The first Newton had 640kbyte of RAM and a 20 Mhz
           | ARM Processor. It was the result of bringing down the cost.
           | It wasn't well received, since the handwriting recognition
           | was bad and the machine was underpowered. The 130 model fixed
           | the latter. In later OS versions the handwriting became
           | useful, eventually.
           | 
           | I had later the wonderful Newton MessagePad 2100 with 8 MB
           | RAM and a much improved ARM processor - I used Common Lisp on
           | a Mac with that amount of RAM.. The 2000/2100 series would
           | have been a perfect platform for Dylan, it even would be good
           | enough to run a nice garbage collector.
           | 
           | When they discontinued the platform, we knew that it would
           | take a lot of time, years!, for Apple to come up with a new
           | similar mobile platform, but it eventually happened with the
           | iPod touch and the iPhone. But those were then programmed in
           | an object-oriented C dialect and the operating system wasn't
           | as cool as the Newton OS.
        
             | mark_l_watson wrote:
             | I agree. I bought a Newton after having lunch with Larry
             | Tesler (John Kona also dined with us, a fun lunch!). Larry
             | was pitching me on converting my first Common Lisp book to
             | Dylan.
             | 
             | I ended up just tossing my Newton in the trash. Sad.
        
       | fhd2 wrote:
       | I find this part the most interesting:
       | 
       | "Since then, my focus has been on AI research, and part of that
       | involves the design of planning systems that (maybe) can
       | eliminate the need for most programming. You tell them what you
       | want, as you might describe it to a smart grad student, they
       | maybe ask some clarification questions, and then they go do it.
       | That only works if they know enough about the world and have
       | enough "common sense" to avoid blunders."
       | 
       | I wonder what he's working on to enable that kind of environment.
       | Thinking about how most of the programming I do (in high level
       | languages) comes down to starting with a pretty rough idea and
       | iterating on the idea while learning more about what's feasible /
       | effective, typically refining what it is I'm building rather
       | fluidly. I rarely know exactly what to build upfront, nor do the
       | CEOs, product managers, designers or sales people I've worked
       | with so far. I think this feed back loop goes far beyond "asking
       | a few clarifying questions".
       | 
       | Maybe the kind of task a professor would give to a grad student
       | is entirely different from that kind of typical industry work?
        
         | mirker wrote:
         | Usually grad students get projects to investigate or prove a
         | particular idea. It's especially straightforward to do this
         | when the advisor is iterating on a line of ideas, and you
         | resume where the last grad student left off. There isn't a
         | point in building anything other than to test the idea, so you
         | don't want feedback to bias you in what direction to go.
        
         | going_ham wrote:
         | If you can formulate your problem in the sense of classical
         | planning problem, there are different sets of planners that can
         | solve the problem. These methods are explainable. Some of them
         | even give the optimal solution to your problem if you use
         | optimal heuristics. This is what he means by that statement.
         | The only issue is, right now the classical planning is
         | hyperfocused into few problems and most of the methods work on
         | narrow domains like path finding, logistics, constraints based
         | problems and so on.
        
       | Mikeb85 wrote:
       | In the 80's and 90's Common Lisp compilers and editors were
       | insanely expensive. The hardware was too, not even sure if those
       | early implementations ran on x86... That's why they didn't take
       | off. Easy to look back with rose coloured lenses now that we've
       | had free implementations for awhile...
       | 
       | Meanwhile C/C++, Pascal and Java were all accessible and cheap if
       | not free...
        
       | tsnl wrote:
       | Mirror:
       | https://web.archive.org/web/20221112180021/https://pldb.com/...
        
       ___________________________________________________________________
       (page generated 2022-11-12 23:00 UTC)