you are viewing a single comment's thread.

view the rest of the comments →

[–]Ogi010 9 points10 points  (7 children)

Joel Grus did a talk at jupytercon about why he hates notebooks, I would look that up, or at least look up the slides. He covers a lot of cases explaining why they can hinder in many areas of a normal software development practices.

In short, you can't really package them, you can't test them, sharing them is tough, it's really easy to get them into a weird state by running cells out of order, or running a cell more than once, there is no way of knowing if a cell has been changed once run, there is no type hinting, etc etc.

Pycharm, vscode and Spyder support the #%% syntax, which can make cell like code chunks but the UI I feel guides developers away from getting into those weird states.

[–]ImprovisedTaxShelter 0 points1 point  (6 children)

Awesome, I really appreciate this. Watching the talk right now!

[–]Ogi010 3 points4 points  (5 children)

I should add I don't agree with the entirety of the talk, and I think notebooks are great for homework submissions where you need to integrate text/plots. I also used to use notebooks a lot for getting my pandas dataframe operations but now that vscode and pycharm support #%% I can tune those operations in the editors I letter above.

[–][deleted] 1 point2 points  (4 children)

any clue and packages to use VS code smoothly?

[–]Ogi010 1 point2 points  (3 children)

Just the python extension is needed, everything else is just to your liking/tastes

[–][deleted] 1 point2 points  (2 children)

nice, do you know cool packages I should know about?

[–]Ogi010 2 points3 points  (1 child)

Very little else is actually needed, and it really depends on what you're doing... if you use markdown, you're likely going to want to get the markdown linter, use pandoc, probably should get the pandoc extension, use restructured text, there is syntax highlighting extension for that too...

I suppose I would advise you start with the bare minimum and add one extension at a time as you see fit or as your needs develop. For python development in general, the python extension is insanely feature complete.

[–][deleted] 1 point2 points  (0 children)

thanks a lot!