Live data from Hacker News

Nbdev: A literate programming environment that democratizes best practices

github.blog

41–50 of 88 posts

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

#41
post #26

Sorry, using NSA/Microsoft Github is not a "best practice". This project should be dead in the water if that's their starting point.

Willing to be more specific with a comment like this?

While the grand parent's tone is not appropriate and has been duely downvoted. They do point out that nbdev is currently closely linked around pushing code and docs to GitHub. This is something which threw me at first but isn't a requirement. You can set it up to work only locally.

The GitHub flavor is likely just because that is what the author was familiar with and what they were using.

If there are enough people interested we could get together to make PRs to add other remote version control systems and other static site hosts. I know an integration into the Atlassian world would really help me at work as that's my employer's chosen code repo and doc manager.

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

#42
post #23
post #14

Earlier quoted context omitted.

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

I think that definition is a part of parent's pet peeve.

dēmo- (people) -kratía (rule) has only indirect relation to popularity.

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

#43
This is not literate programming.

Literate programming involves having a meta language that is extended into the target source code through nested macros.

The killer feature was the ability to see everywhere a piece of code was used on dead paper by looking at the auto-generated index, with the chunks being logical rather than language driven. In a literate program you wouldn't care that something was a class or a function, you would just have it be described by what it does, not how it does it.

This is marginally better documentation for python notebooks.

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

#44
post #43

This is not literate programming. Literate programming involves having a meta language that is extended into the target source code through nested macros. The killer feature was the ability to see everywhere a piece of code was used on dead paper by looking at the auto-generated index, with the chunks being logical rather than language driven. In a literate program you wouldn't care that something was a class or a fu…

No true scotsman.

It's more literate programming than not and chasing the promise of the ideal literate programming environment is what created the novel notebook environment in the first place.

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

#45
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.

Increased adoption in ML comes with more open implementations and more freedom, which in contrast to FAANG being the only ones to employ advanced ML can indeed be seen as a form democratization.

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

#46
post #43

This is not literate programming. Literate programming involves having a meta language that is extended into the target source code through nested macros. The killer feature was the ability to see everywhere a piece of code was used on dead paper by looking at the auto-generated index, with the chunks being logical rather than language driven. In a literate program you wouldn't care that something was a class or a fu…

No true scotsman. It's more literate programming than not and chasing the promise of the ideal literate programming environment is what created the novel notebook environment in the first place.

1). Notebooks were invented by Mathematica in the 80s.

2). Words have meanings and literate programming is defined extremely well by Knuth in his 1983 paper. This is not what was described there any more than the WWW is Xanadu.

3). That is not what No True Scotsman means.

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

#48
So I use this in production at my company. It's an awesome tool. Personally when I'm coding in python I like to prototype in jupyter, copy code over, and then reimport anyway. Nbdev streamlines everything so I can write docs, tests, and code all in one place. And since the docs are just a jekyll site I can copy it to our documentation aws bucket in continuous integration. And with one command I can run all the notebook tests in CI as well.

The packaging is also really well thought out. I don't have to stress out about connecting setup.py with whatever publishing system we have. The settings.ini makes things sane and I can bump the version whenever I want.

A get a lot of skeptical looks when I say the source code is in notebooks, but that's just syntactic sugar for the raw source code. You still get to edit the raw code files and with one command sync everything with the notebooks. From my point of you it is close to a pareto improvement over traditional python library development.

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

#49

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

I'm still struggling to find the link with democracy. Sure you can't have democracy if the source code is inscrutable but that's a somewhat tenuous link.

The word 'democratize' here doesn't seem to add any meaning that 'literate programming' doesn't already cover.

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

#50
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.

Yeah, my first guess was that the tool allowed everybody to have an input on what best practices should look like and enable distributing the final consensus to everybody. So if today best practice is 4 space indent, this would be the default, but if enough people changed it to one tab, that would change everybody's default and reformat their code to conform with the new best practice.
Post reply on HN