3 ms·
How is this at all different from iPython in say, a Jupyter notebook? Not only is it fully interactive but the Python system gives you rich visualization option
by abraxas 4y ago
How is this at all different from iPython in say, a Jupyter notebook? Not only is it fully interactive but the Python system gives you rich visualization options for your data and flexibility in how you use it (e.g Colab vs local setup).
- djtango 4y agoIt is pretty similar to the Jupiter Notebook experience which is loved by many the modeller, or before that good old Excel. Interactive development has a decent established history of lowering the bar to entry to computing. Less familiar with Python, but my impression was that Jupyter notebooks weren't so great for nudging you towards better software engineering practices (when compared to the clojure REPL)?
- wodenokoto 4y agoNotebooks are good for exploring a problem, especially questions about data. I also don't think they are great for "software engineering", but as the name suggest, they are for notes, not applications. When developing something closer to a program, I usually write code line by line in a text editor, but basically every line has been developed in the IPython REPL. Sometimes I write a few cells in Jupyter Notebook to learn an API. It is really nice that you can have the output of a call in cell 1 while working on refining that call in cell 2. Once I feel I've learned what is needed, I move the code into a .py file and turn it into a script or a module. Despite of this workflow, I haven't found a great pairing between editor and IPython REPL and I am manually copy-pasting code between the two. RStudio works really well in this regard, but I think that the editor runs on the same R kernel instance as the program you are developing, which makes restarting R a pain.
- jrvarela56 4y agoI have limited experience with Jupyter notebooks and have not tried to implement a working prototype (say, Flask+SQLAlchemy) solely using this environment. The canonical Clojure setup would have you start a REPL when you begin your coding session (or more, could be weeks/months without a restart), edit your source files and use keybindings to evaluate text in block comments. This basic setup can go with addons like Calva (VSCode; can inline the results, like a notebook and has other features) and Portal (can render data structures in different viz formats). For Jupyter: - Does your source have to mimic some sort of literate programming style to keep a certain format expected by the notebook? - If you edit other notebooks, do the cells in your current notebook get updated? - Can the notebook be connected to a production environment to run code using live production data?
- barrell 4y agoNot sure about the parent comment in particular, but I think the original article nails it on the head. The 'structural editing' makes it integrate so well with the REPL. I'm not sure how Jupyter notebooks work, but in clojure every line of code you write is immediately accessible via the REPL. It would be as if python was built with the assumption that every .py file was a Jupyter notebook. Navigating a file and want to see what some expression is? One keybinding. Can't remember exactly how a function works and want to test it? One keybinding. Changed some code and want to make sure the tests pass? One keybinding. Curious what result a function will return? Well add some test code anywhere, then you guessed it, one keybinding.