3 ms·
I’m now curious about implementing a long running Smalltalk server that can be accessed using command line tools and traditional editors, with some graphical or
by projektfu 6y ago
I’m now curious about implementing a long running Smalltalk server that can be accessed using command line tools and traditional editors, with some graphical or web based tools to implement inspectors and other UI.
- greggyb 6y agoYou're not far off from describing various lisp modes on emacs. Not trying to derail, but just share some existing art in the space. Take a look at SLIME+swank for Common Lisp, or Geiser for Scheme, or Cider for Clojure. A common architectural choice is to have a REPL buffer in Emacs, connected over a socket to the language runtime which hosts the REPL. You edit a text file, sending whatever portion of your program you want to the REPL, where it is evaluated in the runtime, with results printed back to the REPL buffer. There are advanced introspection and documentation workflows supported by being connected to a live REPL. These protocols easily and transparently cross the network, so you have the ability to troubleshoot a production issue on a (hopefully previously-quarantined) production host exhibiting the issue. You can inspect state, recompile functions on the fly and replay the failure all from the comfort of an editor and REPL that you are familiar with from dev-time.
- scroot 6y agoThere is GNU Smalltalk, but I don't think it has a big community at the moment. What you are describing, though, is conceptually easy enough to implement: modern Smalltalks (Squeak, Pharo, and friends) all have robust interfaces to Unix and stdin/stdout. You could easily create a repl. It's also easy to make TCP, HTTP, or WebSocket servers, so you can create interaction that way as well. And of course there is Seaside, which has some tools already for interacting with a Smalltalk image through the browser. Another approach is Amber Smalltalk, which is a web-based Smalltalk for frontend development (amber-lang.net)
- projektfu 6y agoYeah, I’m thinking along these lines. Just packing it up so it works in the flow.
- isr 6y agoFYI (hope this helps): - https://dmitrymatveev.co.uk/shampoo/ https://dmitrymatveev.co.uk/shampoo/ - https://github.com/dmatveev/shampoo-emacs https://github.com/dmatveev/shampoo-emacs
- projektfu 6y agoGorgeous, thanks.