Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've gathered that lispers have a tendency to say "REPL" when they mean "hot reloading", which causes confusion in discussions like these


I think they are very similar, but different enough that it makes sense to use different words. Using just the word "REPL" doesn't give much insight into the iceberg of capabilities that lisps like Clojure, Common Lisp, etc. provide. I wrote a long post about some of the differences: https://news.ycombinator.com/item?id=28475647

Would love a better word or phrase to differentiate from e.g. the way people experience a python or haskell REPL.


For the richer version others have suggested "hot reloading", "live reloading", "live patching", etc. I think all of these are descriptive enough, and most importantly, don't overload a term that many people already understand to mean something different


I agree that the term "REPL" is poorly chosen, since read-eval-print-loop equally applies to a Bash prompt. But in this case, it's even more than hot reloading, because you are making changes in the running application, not just in the saved source code.

With hot reloading, you can change the appearance or behavior of a button and see it reflected immediately. With a Clojure REPL, you can do that but also load in different data, trigger actions, etc.


Then it's possible an even broader term is needed, but "REPL", to non-lispers' minds in 2021, means narrowly "a prompt where you can type code and then hit enter and see a result". I think "hot-reloading" would be a dramatically more descriptive term even if it isn't perfectly descriptive.


Yes, I've been saying "live interactive development" instead of REPL more recently, and I think it conveys the idea much better. Since in Lisps, a REPL means:

> a live integrated inside an application REPL that lets you evaluate and hot-swap every single line of code at will and on-demand all at runtime without ever needing to restart the application, while also being able to inspect the runtime state at will


Live Editable Environment? Live Editable Program(ming)? Live Editable Programming Environment?

Just what instantly comes to mind. No recommendations.


Live patching.


We do have a term for it, it's Image based programming. The primary means of interacting with said image is quite often the REPL, and so the two may have become synonymous.


To me that term also implies that images are the primary means of distribution, as in (most) Smalltalks. That said, it's still probably a better term than REPL for the Clojure experience.


Yes, didn't mean to imply it was unique to Lisp. And when there is little distinction between what you distribute and what you develop in then it's very apt.


Right, but there is a distinction in Clojure between what you distribute and what you develop. You aren't shipping an image, you're shipping compiled source code.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: