Live data from Hacker News

Nbdev: A literate programming environment that democratizes best practices

github.blog

21–30 of 88 posts

Re: Nbdev: A literate programming environment that democratizes best practices

#23
post #14

I love democracy, but somehow there is something cloying about the use of "democratize" in this context.

For some strange reason, everyone in the ML community refers to 'increasing adoption' as 'democratizing'. It's my pet peeve.

There are two lead definitions for "democratize" in the Oxford English Dictionary. One of them is:

"make (something) accessible to everyone"

So the usage here is entirely consistent with standard English usage. It is also consistent with the French etymology (démocratiser), which has as a dictionary definition "Rendre démocratique, populaire" (i.e. to make popular).

Re: Nbdev: A literate programming environment that democratizes best practices

#24
post #14

I love democracy, but somehow there is something cloying about the use of "democratize" in this context.

For some strange reason, everyone in the ML community refers to 'increasing adoption' as 'democratizing'. It's my pet peeve.

"Democratizing" makes more sense when the industry evolved from AI/ML frameworks which required a Ph.D to use to allowing anyone to train a model (e.g. Theano -> TensorFlow -> Keras/fast.ai), and allowing people to train models on GPUs without a grant-funded supercomputer cluster, for very little cost (spot/preemptible cloud GPUs, Google Colab)

In this case, I agree it's not equitable.

Re: Nbdev: A literate programming environment that democratizes best practices

#25
post #18

Sigh. I really think that the only reason notebooks are so popular is that Python never had a popular IDE with a high-quality REPL where people can learn to work interactively while writing code in plain text. R illustrates this very well - as an R user you can have your pick between RStudio, Jupyter and Rmarkdown and the overwhelming majority of users pick RStudio and notebooks are reserved only for a niche set of u…

No that's not the reason - or at least, not for everyone. I created nbdev. I've been coding for over 30 years, and spent over 10 years using R and S-PLUS. I've used Delphi, Visual Studio, Emacs, vim, vscode, and many other editors and IDEs, including many with integrated line-oriented REPLs.

There's a big difference between a line-oriented plain text REPL, and a Mathematica/Jupyter-style notebook REPL, especially when you want to mix and match your charts, image outputs, rich table outputs, interactive JS outputs, and so forth. Also, for experimentation, where you want to go back and change things to see what happens (e.g. very common in data science) I find it much easier and more understandable in a notebook.

I have a video where I show the difference between these styles of working in some detail: https://www.youtube.com/watch?v=9Q6sLbz37gk

Re: Nbdev: A literate programming environment that democratizes best practices

#27
post #17

Earlier quoted context omitted.

The term has a wikipedia page: https://en.wikipedia.org/wiki/Exploratory_programming

I'm aware, what I'm confused about is why they've phrased it as if it's something they call exploratory programming, as if they've coined the term.

I coined the term - and it turns out someone else did too, for something else. So be it. If someone else can think of a better term that's never been used before, then I'll happily use that instead.

The earlier usage mentioned in Wikipedia is entirely uncited there however, and seems to have only been used in one academic project AFAICT.

Re: Nbdev: A literate programming environment that democratizes best practices

#28
post #7
post #3

The author writes > we decided to assist fastai in their development of a new, literate programming environment for Python, called nbdev. but this is followed by: > nbdev builds on top of Jupyter notebooks to fill these gaps and provides the following features is it a new environment, or is it an extended Jupyter Notebook? It looks like Jupyter Notebook to me. Why not Jupyter Lab? > JupyterLab: Jupyter’s Next-Generat…

Guessing at plausible answers: - Nbdev started right around the 1.0 release of jupyterlab, and it might not have been on their radar - Nbdev came out of fast.ai, and I wouldn't be surprised if they were using a ton of jupyter-specific features already which weren't supported by jupyterlab

It works fine in lab too, although I prefer using notebooks on the whole.

(I'm the lead author of nbdev).

Re: Nbdev: A literate programming environment that democratizes best practices

#29
post #25
post #18

Sigh. I really think that the only reason notebooks are so popular is that Python never had a popular IDE with a high-quality REPL where people can learn to work interactively while writing code in plain text. R illustrates this very well - as an R user you can have your pick between RStudio, Jupyter and Rmarkdown and the overwhelming majority of users pick RStudio and notebooks are reserved only for a niche set of u…

No that's not the reason - or at least, not for everyone. I created nbdev. I've been coding for over 30 years, and spent over 10 years using R and S-PLUS. I've used Delphi, Visual Studio, Emacs, vim, vscode, and many other editors and IDEs, including many with integrated line-oriented REPLs. There's a big difference between a line-oriented plain text REPL, and a Mathematica/Jupyter-style notebook REPL, especially whe…

Yea, I don't really get what repls have to do with what notebooks offer. They are similar-ish, obviously, but they accommodate different workflows and use cases.

Re: Nbdev: A literate programming environment that democratizes best practices

#30
post #18

Sigh. I really think that the only reason notebooks are so popular is that Python never had a popular IDE with a high-quality REPL where people can learn to work interactively while writing code in plain text. R illustrates this very well - as an R user you can have your pick between RStudio, Jupyter and Rmarkdown and the overwhelming majority of users pick RStudio and notebooks are reserved only for a niche set of u…

This is an interesting view in light of the fact that Jupyter is actually a direct evolution of the most popular bells-and-whistles REPL in Python land (IPython) - .ipynb files were just saved IPython REPL sessions.

(try "sudo apt-get install ipython && ipython" on your Ubuntu/Debian system to try it out)

Post reply on HN