It is a mixed bag, largely because it is still in development. It is wonderful for authoring content - I can freely mix latex, code, output all together - you don't have to wonder how I generated that plot, the code and data is right there. OTOH, no section numbers, not quite WYSISYG, no way to hide code if you only want the output, and other minor things make me wonder if I should just use the tried and true latex workflow.
If I am just programming I prefer an IDE like spyder (I do mostly math-y type stuff).
A big annoyance is it's interaction with git. If you regenerate the output, git interprets that as a big file change, and the repository gets polluted with nonsense commits. There are workarounds, but none are perfect.
In general it is really great where you want to mix text, images, html, and python. So, great for presentations {audience: 'what if you change X==3', you: 'here you go'}, for paper writing, maybe less than great for full on book authorship or general programming.
But these are nitpicks. I love IPython Notebook. Even if I end up in the traditional Latex workflow at the end, it is so easy to keep code, text, and output all synced up with the notebook compared to the alternatives.
You can also run more than Python in it. IJulia supports running Julia in the notebook, for example.
>A big annoyance is it's interaction with git. If you regenerate the output, git interprets that as a big file change, and the repository gets polluted with nonsense commits. There are workarounds, but none are perfect.
This is probably one of the workarounds you're thinking of, but I clear the output and use a precommit hook to make sure I haven't missed any cells. It's a bit annoying, but it works. I'm waiting for the day VCS integration is built-in. For now, I enjoy having my notes and code together and versioned.
It is a mixed bag, largely because it is still in development. It is wonderful for authoring content - I can freely mix latex, code, output all together - you don't have to wonder how I generated that plot, the code and data is right there. OTOH, no section numbers, not quite WYSISYG, no way to hide code if you only want the output, and other minor things make me wonder if I should just use the tried and true latex workflow.
If I am just programming I prefer an IDE like spyder (I do mostly math-y type stuff).
A big annoyance is it's interaction with git. If you regenerate the output, git interprets that as a big file change, and the repository gets polluted with nonsense commits. There are workarounds, but none are perfect.
In general it is really great where you want to mix text, images, html, and python. So, great for presentations {audience: 'what if you change X==3', you: 'here you go'}, for paper writing, maybe less than great for full on book authorship or general programming.
But these are nitpicks. I love IPython Notebook. Even if I end up in the traditional Latex workflow at the end, it is so easy to keep code, text, and output all synced up with the notebook compared to the alternatives.
You can also run more than Python in it. IJulia supports running Julia in the notebook, for example.