Live data from Hacker News

Nbdev: A literate programming environment that democratizes best practices

github.blog

61–70 of 88 posts

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

#61
post #54

I have used Nbdev and I am not a fan. It creates friction when one wants to contribute (in my case, to fast.ai) and forces you to write your code with notebooks which is the point but also not great when you are writing code rather than producing a display mixing text and pictures. Plus, while notebooks should favour documentation in theory, you can also end up with notebooks full of blob of code with transitions tex…

It seems like there's a lot of friction points with this model and perhaps a bit too much world building. In general, I have trouble understanding the allure of this approach.

Another example (and bonus points if you can spot the rogue semicolon).

https://github.com/fastai/fastcore/blob/master/nbs/02_founda...

https://github.com/fastai/fastcore/blob/master/fastcore/foun...

https://fastcore.fast.ai/foundation.html

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

#62
post #23

Earlier quoted context omitted.

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).

If I let everyone on my street borrow my bike, can I say "I've democratized my bike"?

i would say, only if they all get to vote on how/when its used and by whom

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

#64
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…

I don't think this is the best comparison. People use notebooks in Python to work with data and code, not for lack of a popular IDE.

Comparing R and Python also could be done better. Python is a general purpose language. R is for statistics and science. Even then, Python is extremely popular for these very domains with Jupyter notebooks.

This is why I shrug looking at "Jupyter killer" notebook alternatives tackling machine learning: in my experience delivering machine learning products to large, paying, clients, the bottleneck never was slicker stylesheets or cool animations. It was the nuts and bolts of things.

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

#65
post #31
post #27

Earlier quoted context omitted.

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.

How are you sure you didn't just read it somewhere and then forgot? It has been mentioned many times in related literature (even in publication titles) https://scholar.google.com/scholar?q=%22exploratory+programm... Here's one from 1988 https://dl.acm.org/doi/abs/10.1145/51607.51614 Are these unrelated? Is Nbdev not only a "new programming environment", but also a new concept that needs a new name?

It's certainly possible. Smalltalk is absolutely an important inspiration for nbdev, and that's a really great reference that you pointed out.

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

#66
I have a love hate relationship with fast.ai. Its great for breaking into ML, and that is awesome. But, its somewhat funny to me that this is being promotes as a way to democratize best practices since it also throws many traditional python best practices out the window. I am sure its better if you have spent a lot of time with it, but trying to dig into the code base really breaks my brain. Too many import *, and one line functions / if statements.

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

#67
post #59

Earlier quoted context omitted.

"In some cases the estimates may be obvious. Perhaps the story is similar to others that have already been completed. In other cases the story may be very difficult to estimate and may require exploratory programming." Kent Beck and Martin Fowler http://index-of.es/Java/Planning%20Extreme%20Programming.pdf Its a commonly understood term AFAIK

> Its a commonly understood term AFAIK I agree - it's what made me raise an eyebrow... However, based on their comment above, the lead author of Nbdev believes to have coined the term. My opinion is that due diligence and attribution are important. If I believed I'd coined a new term, I'd check first. Mistakes are easy to make, but when highlighted, perhaps corrections are more appropriate than negotiating with the p…

Why are people nitpicking about this? So the term/phrase he came up with was so descriptive that other people had also thought of the same term previously. He didn't steal anyones research on the topic, or steal code for the project, or deny credit to a developer working on a project. It's 2 simple words that are extremely common in the english language. Of course lots of people have happened to put them together before.

This is my second time on hacker news, and I don't think I will be back. Why not offer to help the project, or show support? Why try to find something to fight about? It's just demoralizing to see the lack of kindness from people.

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

#68

IMO no one has done more to make deep learning accessible than Jeremy + fast.ai team. Thanks for the amazing work! My question is about the coding style - @jph00 I’ve read your fast.ai style guide and worked with APLs like q/KDB (written by Arthur Whitney who you cite). My experience is that brevity is great, until you need to collaborate or have individuals working on small parts. That was my experience as well tryi…

I fully agree here. I am working through Deep Learning for Coders now. I have created several errors as I am implementing chapters, but the coding style of fastai makes in impenetrable to debug. It’s an incredible book and a great library when its working as expected, but the number of times i have run into some variant of `method takes N parameters but M were given` is pretty frustrating. Looking through the stack, these are not patterns that would have been accepted in a code review from me for the same reason you mentioned. Making small changes and debugging are both hampered by the style.

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

#70
post #23

Earlier quoted context omitted.

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).

If I let everyone on my street borrow my bike, can I say "I've democratized my bike"?

If you make lots of bikes available for rent then yes.

https://medium.com/the-fourth-wave/the-great-democratization...

Post reply on HN