# thinking-together

Peter Saxton

09/26/2022, 2:38 PM
Good afternoon. I was thinking about the following question an the answer was less clear than I was originally thinking. What is the fundamental difference between a Repl and a Shell? In my opinion there is very little, the main differences seem to be what systems they are plugged into. i.e. a shell is plugged into the os and a repl is language specific. Also if we add the nice feature of being able to change previous expressions do both end up looking effectively like a code notebook. So the final feeling is just that a code notebook is just a fancy Repl. In which case are code notebooks the future of Repl's/shells. Would you like a code notebook that was able to read your os processes and replace the sell?

Breck Yunits

09/26/2022, 2:43 PM
Or another way to put it is that a shell is a very lightweight and fast notebook
If I could only have one, I'd go for the speed, footprint, robustness, and accessibility of a shell. it would be fun to look at an infographic of shells and repls and notebooks, showing what's similar and what's different
(so I have nothing to add really, but definitely following as its a way to look at these 3 important UIs I havent thought of before)

Kartik Agaram

09/26/2022, 7:42 PM
One project I still think about a lot:

Konrad Hinsen

09/27/2022, 6:04 AM
Notebook vs. shell: (1) different visual presentation, with notebooks emphasizing history, (2) most notebooks support graphical output display. Shell vs. REPL: what we call "shell" is both a REPL and a language designed for a REPL interface to the OS (plus OS scripting). I have seen many attempts to replace the shell by some other language's REPL, by providing a more concise interface to OS services in that other language. LISPers seem particularly tempted by this.

Kartik Agaram

09/27/2022, 6:08 AM
I'd say the critical property of a shell is the ability to run programs written in a variety of languages. It's not just a syntax for an interpreted language but the ability to load arbitrary code from a PATH and give it whatever runtime its shebang/etc. says.

Joakim Ahnfelt-Rønne

09/27/2022, 6:21 AM
I'm intrigued by this question, and I've been working on a prototype: