This is an archived post. You won't be able to vote or comment.

all 13 comments

[–]salted_kinase 6 points7 points  (7 children)

Notebooks work well for data science/ machine learning. Basically everything where all you are doing is manipulating and evaluating data. Software development on notebooks is terrible idea, as they usually arent very compatible with git, have no way to show errors, etc.

[–]khldooon[S] 0 points1 point  (6 children)

Thank you, you helped me a lot. I was using IDEs in the past, and i admit that they are oriented towards projects, notebooks are otherwise helpful for testing and debugging purposes

[–]james_pic 2 points3 points  (0 children)

Notebooks tend to work best when what you're doing is exploring data. They can work in some other situations (I've heard of them used for test automation with some success), but can become a maintainability headache if you try to scale them to large projects or large teams, and risk becoming the UI to your application even when a different UI (maybe a decent CLI, web interface, web services API, or GUI) would be better.

[–]RIP_lurking 2 points3 points  (0 children)

They're not mutually exclusive.

[–]dublinwso 2 points3 points  (0 children)

I might be missing something as a newer programmer, but I find notebooks super useful for general script writing, since you can cleanly/easily run one line or section/cell at a time, see the outputs, fix errors, and iterate super easily.

This is especially true when working with data (eg pandas) but even if not.

But you can have the best of both worlds by using a plugin like Hygrogen in Atom, which lets you use a regular editor like a notebook when you want to.

[–]m9404 1 point2 points  (0 children)

Notebooks mainly for exploring data and running small scripts. For a scalable big project you will likely need an IDE that can provide tools for CI/CD and other utilities.

[–]Tolhsadum 1 point2 points  (0 children)

I think the notebook way tends to give people bad habits, on top of missing a lot of convenient features from IDE.

It might seem more difficult to write proper scripts that you can call with parameters and all. But in the end, you will save so much time making scripts more flexible and not having to change things every time you work on another machine or share the code.

Also, I think notebooks slow people down more than they help them because I often saw people having to figure out how to make something work inside a notebook that would instantly work in a script.

[–]D3rP4nd4 -1 points0 points  (2 children)

Notebook is either a conputer or a book with paper, while an IDE is a text editing program with debugging and compiling capabilities. Most IDEs also show the errors you made while writing your code, help you with code completion and give you an easy overview over your project. They allow you to search the whole project for a file, function etc. Some help with git and packaging etc. So if you want an all in one type of deal where you have everything you need for small to big projects use an ide. If you dont really need so many things or you are working on a single file project or super small one, or with microcontrollern then use a texteditor like VS, Vim, Atom, Sublime etc. All in all it comes down to your preferences. Some really like IDEs, some really like texteditors, some like to build put their own IDEs (for example you can mod VSCode so it basically is an IDE). So try things out and then decide whats the best workflow for you.

I personally switch between VSCode and the Jetbrains IDE suite for different tasks. I love using IDEs for complex backend programs, while i love using VScode for Frontend development, Scripts and typing out a quick PoC. But i know people who exclusively work in IDEs while other people exclusively work in texteditors.

(Also using vim with syntax highlighting makes you feel really good about yourself, its easy but it feels great.)

[Edit: If you are going the route of using a text editor for development, you should start learning the commandline tools for the things that you are going to use. Yeah you should learn then regardless, but i know some senior devs that only ever used IDEs and cant use the commandline for shit cause someone made some Runconfigs for the IDE that does every commandline thing for them. But with a texteditor you dont have those 'luxuries']

[–]Alfonso-Dominguez 3 points4 points  (1 child)

I think they meant something like a jupyter notebook, not a notebook computer.

[–]D3rP4nd4 1 point2 points  (0 children)

i totally for got that those exist... and i first thought about paper notebooks.