5 ms·
live-reload or hot-reload I've seen usually refer to systems that preserve state in a running application (so you're not reloading from scratch). So your applic
by dwohnitmok 5y ago
live-reload or hot-reload I've seen usually refer to systems that preserve state in a running application (so you're not reloading from scratch). So your application never actually stops running when new code is loaded and you get the same sensation that you're editing the application "in-place."
That being said even in that environment having a REPL is nice (although not as much of a quantum leap so much as an incremental improvement) because you can use code to directly poke at your application but is not actually used by your application instead of only being able to write code that your application actually uses.
- brundolf 5y agoI've gathered that lispers have a tendency to say "REPL" when they mean "hot reloading", which causes confusion in discussions like these
- jdminhbg 5y agoI 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.
- brundolf 5y agoThen 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.
- Guthur 5y agoWe 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.
- jdminhbg 5y agoTo 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.
- Guthur 5y agoYes, 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.
- jdminhbg 5y agoRight, 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.
- e12e 5y agoLive patching.
- didibus 5y agoYes, 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
- pitay 5y agoLive Editable Environment? Live Editable Program(ming)? Live Editable Programming Environment? Just what instantly comes to mind. No recommendations.
- lilactown 5y agoI 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 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.
- brundolf 5y agoFor 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