M
Mikel Evins
mikelevins.github.io · Personal blog · on HN since 2021
Mikel Evins writes about REPL-driven programming, Lisp, Apple design history, and programming as teaching.
What HN saysCommenters recommend his REPL-driven programming post, praising its distinction between merely having a REPL and supporting REPL-driven development.
16HN people shared it
12linked it in comments
7stories submitted
520story points
4 months agolast shared
2021people per year2026
Most-shared posts
- 1On Repl-Driven Programming14 people · 498 points · first shared 2021 · 206 comments on HN
- 2Reimagining Apple's Bauhaus OS (2021)3 people · 7 points · first shared 2022 · 4 comments on HN
- 3On Repl-Driven Programming1 people · 15 points · first shared 2021 · 4 comments on HN
- 42021 01 04 art is not optional1 people · first shared 2022
- 52020 02 03 programming as teaching1 people · first shared 2021
What HN people wrote when they linked it
sourcepluck · 2024-05-22
I think this relatively short blogpost does an excellent job of answering your question:
https://mikelevins.github.io/posts/2020-12-18-repl-driven/
schemescape · 2023-12-04
Not exactly what you asked for but, if you have time, I would recommend looking at Practical Common Lisp:
https://gigamonkeys.com/book/
And also this blog post (which is a much smaller time commitment):
https://mikelevins.github.io/posts/2020-12-18-repl-driven/
sundarurfriend · 2023-06-01
One of the other comments in this thread links to: https://mikelevins.github.io/posts/2020-12-18-repl-driven/ which makes a distinction between "having a REPL" and "supporting repl-driven programming". Modern languages which have a REPL generally don't support the sort of repl-driven programming they refer to. Julia's Revise.jl [1] supports one way of repl-driven programming, and it is in fact the recommended way of doing Julia, but from my understanding it's still very different from the Lisp ways.
[1] https://timholy.github.io/Revise.jl/stable/
ducktective · 2022-09-07
Related:
https://mikelevins.github.io/posts/2020-12-18-repl-driven/
https://hyperthings.garden/posts/2021-06-20/hell-is-other-repls.html
They say Common Lisp (and Smalltalk) provide the "best" REPL experience.
linguae · 2024-10-06
I sympathize, but unfortunately Tim Cook's stewardship of the Mac, from the embrace of soldered RAM and even storage throughout the Mac lineup, to the increasing annoyances of macOS either in the name of security (e.g., notarization, the popups that request permission to read user directories, which is really annoying when using LLVM's debugger in modern macOS) or to help advertise Apple's subscription services, have harmed the Mac experience. The issue of soldered RAM and storage in particular pushed me back to Windows after more than 15 years of using Macs (which is a shame since Apple's ARM hardware is awesome when it comes to performance and energy consumption); the last time I used Windows as my daily-driver OS was during the XP era. Unfortunately I don't like any of the mainstream desktop operating systems; Windows is annoying and loves to get in the way, macOS is becoming increasingly annoying with each release and is also tied to hardware with massive prices for RAM and storage upgrades with no DIY options like in the past, and the Linux desktop has a Sisyphean development cycle with so much churn. Instead of working on refining the user experience and polishing applications like LibreOffice to make them more competitive to Microsoft Office, it seems like every few years there are major infrastructure changes that require major code changes or even rewrites.
I'm quite disillusioned with desktop computing in general. Microsoft and Google are leading the way with…
mikelevins · 2022-04-16
I wrote a blog post entitled "Art is not optional" (https://mikelevins.github.io/posts/2021-01-04-art-is-not-optional/) that is in part about this: I don't think people usually choose to be artists. I think they mostly just are, like it or not. In terms of personality psychology, they're "creatives"--that is, people that score extremely high in trait openness.
Like you, I write because I must. I don't choose to write. It just happens. I can choose whether or not to put pen to paper or finger to keyboard, but I can't choose not to create the stuff that I write.
If I'm stuck somewhere with no writing utensils, I write anyway, constructing stories and lyrics and essays and explanations in my head, storing it up as best I can for when I can write it all down. It isn't even mostly in words. Most of my thoughts are visual-spatial, and only get translated into words when I have writing utensils.
I make pictures, too, and songs, and software. Similarly, I don't decide to do it or choose to do it; it just happens all the time, like it or not. If I don't have any tools to work with, that doesn't make it stop. It just makes it inconvenient, and it means that a large amount of what I create is likely to be lost before I can get it transcribed. I don't lose it all. The especially memorable bits stick, which means that doing without tools for transcription has benefits. It filters out the less memorable stuff.
My openness score is in something like 97th percentile, so somewhere around…
vindarel · 2026-07-10
the python debugger is cool but is an inferior experience. It isn't only about a REPL, but about the editing experience, and about the language being thought from the ground up for long-living programs. See: https://mikelevins.github.io/posts/2020-12-18-repl-driven/
medo-bear · 2022-06-07
for the developer experience also see mike levins' article on repl driven programming
https://mikelevins.github.io/posts/2020-12-18-repl-driven/
patrec · 2021-11-12
Mikel Evins has written two articles you might find interesting:
https://mikelevins.github.io/posts/2020-12-18-repl-driven/
https://mikelevins.github.io/posts/2020-02-03-programming-as-teaching/
mepian · 2021-02-08
Not anymore, today Common Lisp is generally a very nice language that balances dynamicity and performance quite well, and especially shines in interactive (or REPL-driven) development: https://mikelevins.github.io/posts/2020-12-18-repl-driven/
reitzensteinm · 2021-01-03
The article appears to be here:
http://mikelevins.github.io/posts/2020-12-18-repl-driven/
pcr910303 · 2022-04-27
I’ve never did anything serious with Common Lisp, but my light experience on it was that
- the idea that almost all language constructs are user-implementable with macros is quite impressive (but I don’t buy the argument that “real” macros are only able in s-exprs)
- and the REPL-driven development model was a really beautiful and seamless experience.
But… every time I try to use it on some code, I find too many warts and inconsistencies that I just didn’t want to spend too much effort in making it work. It’s a beautiful language in it’s own ways, but the other parts are too ugly (to me, of course).
I’m fine with it being a lisp or not; I just want a clean language with macros baked in (and becomes the basis of most language features), and with a REPL-driven development model as a first class citizen (with interactive restarts and all).
Unfortunately it seems a pipe dream… so I’m stuck here.
[0]: https://mikelevins.github.io/posts/2020-12-18-repl-driven/