Hacker News new | past | comments | ask | show | jobs | submit login

I am not familiar with how Julia and Elixir work, but form my experience Python’s REPL is not the same at all as REPL in Clojure or other lisps.

In Clojure, you literally built your program in memory while you’re writing the source code file, updating the memory representation of your running program part-by-part without ever stopping it.

This experience is absolutely magical, and it’s very hard to go back to edit-compile-run loop in other languages after that. It is completely different from “my language has a REPL and I can execute parts of code in it”.




No, Julia and Elixir are the same as Python in that regard (Python is more annoying because of the indentation problem). I was just talking about interactive evaluation of expressions selected in the editor. Although I’ve messed with Clojure a bit, I admit I don’t fully appreciate what you’re describing. I’m a little afraid to find out, frankly, because it sounds seductive.


Julia is much closer to Clojure than to Python in this regard, which brings back the point from above that homoiconity isn't the key ingredient


How so? In julia, one problem is that you can’t redefine datatypes in the REPL. You need to restart.


Yes, that restart is painful exactly because it interrupts the "built your program in memory while you’re writing the source code file" OP talks about.


my inkling is that the more special forms the more difficult it is to repl a language. if everything is an expression not only can you eval parts of it, but that is enough to support quite a bit of extensibility sans macro.




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

Search: