11 ms·
A brief interview with Common Lisp co-creator Dr. Scott Fahlman
- lisper 4y ago"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 4y ago[deleted]
- dleslie 4y agoHe'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 4y agoIndeed. It took a while for a good free Common Lisp to become available. Arguably this wasn't until SBCL (initial release, December 1999).
- lispm 4y agoAnd even that still lacks basic Windows integration.
- jll29 4y ago(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.wikipedia.org/wiki/Steel_Bank_Common_Lisp#/media/File:SBCL_screenshot.png https://en.wikipedia.org/wiki/Steel_Bank_Common_Lisp#/media/...
- dleslie 4y agoNo, there is not. There's no desktop environment for Linux that supports the runtime extensibility and inspection abilities of a symbolics lisp machine.
- dorfsmay 4y agoThe 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.
- nonrandomstring 4y agoIt 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.
- comfypotato 4y agoHe 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.)
- kaveh808 4y agoIf 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-reality-common-lisp-ca9fbc619a8c https://medium.com/@kaveh808/41-world-building-and-alternate...
- lispm 4y agoAlso 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 4y agoI 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.
- mark_l_watson 4y agoGood interview. When I think of Scott Fahlman, I think of his nicely designed and implemented backdrop neural network library for Common Lisp.
- ashok-syd 4y agoDo you have a link to it? Thank you
- mark_l_watson 4y agoI 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.html 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/neural/systems/qprop/0.html https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas...
- ashok-syd 4y agoThanks!
- fhd2 4y agoI 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 4y agoUsually 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 4y agoIf 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 4y agoIn 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...
- Narishma 4y agoOther languages like Smalltalk and Ada suffered from this as well.
- pjmlp 4y agoWhat impacted Smalltalk, was its biggest backer (IBM), deciding to pivot into Java, porting their flagship IDE (Visual Age) into Eclipse, dropping OS/2 (where Smalltalk had a role similar to VB/Delphi and later .NET), and dropping Smalltalk consulting altoghether.
- lispm 4y agoThe commercial versions for Windows and Mac were not all "insanely expensive". Apple's MCL was sold for under $1000. Later the price was reduced even further. That's expensive, but far from a commercial UNIX workstation Lisp, which would be $4000 or more. On the PC there were also mid-priced offerings like Allegro CL, Golden Common Lisp, ... Still memory and early PCs were expensive. Like a good Compaq system or an Apple Mac IIfx / Quadra. A dev seat could easily cost $10k or much more with RAM, Disk, large screen.
- tsnl 4y agoMirror: https://web.archive.org/web/20221112180021/https://pldb.com/posts/scottFalhmanInterview.html https://web.archive.org/web/20221112180021/https://pldb.com/...
- djha-skin 4y ago> 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 4y agocounterexamples: python ruby perl clojure C C++
- jakeinspace 4y agoC++ had a whole host of compilers and tooling/IDEs pushed by large private companies (Microsoft, Borland, Intel). I think that somewhat qualifies as institutional backing of another sort.
- p_l 4y agoThe initial push for C was that most Unix systems arrived with a C compiler included (there were exceptions ofc, and once the compilers started going pricy there was a lot of volunteers for GCC). Microsoft and Borland both were companies that made money on selling developer tools (it's been overshadowed by OS and office software for MS, but Microsoft had a lot of business selling compilers etc.) so of course they sold compilers for languages that got popular (and in case of MS, later used the compilers to prop the environment for developers building software for their OSes)
- linguae 4y agoCounterpoint regarding C and C++ is the famous “Worse is Better” essay by famed Lisp hacker Richard Gabriel: https://www.dreamsongs.com/RiseOfWorseIsBetter.html https://www.dreamsongs.com/RiseOfWorseIsBetter.html C was the implementation language of AT&T Unix. The operating system spread across universities in the 1970s due to AT&T’s inexpensive licensing to them, including source code. Unix, though its variants and clones, became the dominant operating system with most competitors either dying out or adopting Unix. Both C and C++ also had the benefits of being the “blessed” languages of Windows (for example, Win32 is a C API, and MFC is a C++ API). Even in the days of the classic Mac, while Pascal was originally the language of choice, eventually in the 1990s C would be “blessed” by Apple.
- trycatchme 4y agoSo I guess we’re just not gonna talk about that teaser for that AI that says we don’t need to program anymore? Sounds like a symbolic local version of GPT-3
- acalzycalzy 4y ago
- Animats 4y agoThe 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 environment to run them. Compiling was just an optimization. I asked the Franz LISP devs why they didn't provide a runtime you could just link in, yielding a releaseable executable program without all the baggage for breaking and debugging. This was a totally alien concept to them. INTERLISP and Symbolics were even worse - you were always in the development environment and couldn't get anything out except a saved state dump. Eventually the LISP crowd got it and started generating executables, but it was too late by then.
- rjsw 4y agoFranz Lisp could generate executables from the beginning, the debugging features didn't add much to the size.
- Animats 4y agoYou could export something runnable from the dev environment, but it was, I think, a copy of the dev environment.
- admax88qqq 4y agoWas it an executable that you could release to clients or not?
- nerdponx 4y agoAren't SBCL and Chez executables basically just dumps of an environment?
- pfdietz 4y agoYou need all that with SBCL, because you can call all that from a running Lisp program. Perhaps you are asking for that to be available as a library? The size isn't very large so it's not big a deal.