I’ve written before about my high regard for read-eval-print loops, and about an approach to programming that is built around interacting with them. You might therefore assume that I would be enthusiastic about replit, a web-based platform for interactive programming in dozens of programming languages.
I want to be enthusiastic about it. replit’s heart certainly seems to be in the right place. In various mission statements, recruiting posts, and other communications, it has described its mission as “shaking up” the software industry, building the “best, simplest, and fastest coding environment”, creating “learnable programming environments”, and engaging in “vision-driven design”.
But then I look at their list of supported languages. Where is Smalltalk, the most iconic repl-driven programming environment in history?
How about Lisp? If there’s another language that rivals Smalltalk’s iconic status in repl-driven programming, it’s Lisp. Well, it does appear in their list–at least, Emacs Lisp does. Now, I’m an Emacs user myself, and I do have to admit that Emacs is certainly a repl-driven environment, but why limit yourself to the text-editing niche when great-quality Common Lisp compilers are free for the taking?
Maybe replit’s staff believes that their constituency isn’t interested in crufty old Smalltalk and Common Lisp?
replit’s list of language requests includes both Smalltalk and Lisp, but I want to make a different argument for why they should include these languages: because they showed us over forty years ago what a “vision-driven” “learnable programming environment” looked like.
Have a look at Yesterday’s Computer of Tomorrow, for example, in which Dan Ingalls demonstrates Smalltalk-76 on a vintage Xerox Alto. Now that’s a repl-driven programming environment!
You can also search YouTube and find demonstrations of old Lisp environments from decades past like Interlisp, Symbolics Genera, Macintosh Common Lisp, and so on.
Here’s a recent demo of the Interlisp environment that some veteran Interlispers are in the process of bringing up on an emulator.
This one is Kalman Reti demonstrating the old Symbolics Genera environment running emulated on Ubuntu Linux.
Maybe replit is under the mistaken impression that these old languages are extinct, or that they exist only as museum pieces, like the emulated environments in the above videos. If so, they’re wrong. There are excellent free and commercial implementations of Smalltalk and Common Lisp that you can still get today, and that are still actively developed and used to build software.
But even if it were true, I would argue that it’s valuable to make Smalltalk and Common Lisp accessible to everyone, especially if your mission is to create the repl-driven platform of the future. You want to build the world’s greatest repl platform? You might want to get to know the great repl platforms that other people already built. You want to inspire a generation of programmers to “shake up” the software industry? Give them a good look at some tools that already did that years before many of them were born.
The first time I visited the replit site, I looked at their list of supported languages and was disappointed. That first time, Emacs Lisp and Scheme weren’t even on the list. I checked today and Common Lisp and Smalltalk still aren’t.
Don’t get me wrong: replit is a great idea. The company has a mission that I sincerely endorse. I applaud the founders for thinking of it, and again for launching and growing it.
But if I had thought up a networked multiplayer repl platform, the very first languages I would have picked to host would have been Smalltalk and Lisp. I wouldn’t have picked them for their popularity. I would have picked them because they showed us decades ago what a repl could be, and because they’re still better and more inspiring than most of the repls that have come after them.