[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)