Is Literate Programming dead?
Jul. 17th, 2008 09:16 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
So, for the first time in about a year, I turned to writing some C this week and discovered to my annoyance than Noweb is broken in Emacs 22.0. It doesn't do code transitions or font locking anymore. This is actually very unacceptable; I must have code modes and font locking to switch between C and LaTeX as I work.
I went looking for alternatives, and there are none. Sadly, no new work in Literate Programming has been done in the psat two years. LP is being allowed to die on the vine, unused and unloved.
I really don't understand that. It's a great methodology for single programmers, and there are still a lot of us out there, doing our own little things, not bothering anyone. I'm really pissed off that noweb.el is borked, and I don't know nearly enough elisp to do anything about it.
I went looking for alternatives, and there are none. Sadly, no new work in Literate Programming has been done in the psat two years. LP is being allowed to die on the vine, unused and unloved.
I really don't understand that. It's a great methodology for single programmers, and there are still a lot of us out there, doing our own little things, not bothering anyone. I'm really pissed off that noweb.el is borked, and I don't know nearly enough elisp to do anything about it.
no subject
Date: 2008-07-18 01:00 pm (UTC)(eg: this is why I have an iPod, with all the uneccessary features, because I know it is the focus of attention, and thus will be well-supported by software.)
no subject
Date: 2008-07-18 01:08 pm (UTC)no subject
Date: 2008-07-18 02:07 pm (UTC)In all fairness, Knuth wrote what he wrote mostly in the day before OO became popular, and he's an educator. I think WEB attempts to do two things: It allows code reuse and structured organization in languages which don't do it well; and it provides a structure for documentation, which Knuth used to educate people about how his code worked.
Both of these can be good things, but most folks aren't interested in the second and changes in language technology have alleviated most of the problems with the first. As I mentioned, Knuth's code, probably the widest distributed examples of LP, isn't very well designed by modern standards. He uses opaque variable names, globals, nothing resembling an object, etc.
A minor point which made his code very hard to read to me was his typography (I understand the irony of complaining about Knuth's typography). As a mathematician, he prefers to read code as symbolic math, not as code. As such, CWEB's TeX output (the "Literate" part of "Literate Programming") translates C operators to mathematical symbols and plays font tricks with keywords, variables, etc. This makes it hard for me to actually read his C code, as I have to mentally translate it back to C code to understand it. To the degree it turns readable code into unreadable code, it's a failure in my opinion.
no subject
Date: 2008-07-18 07:30 pm (UTC)no subject
Date: 2008-07-18 09:32 pm (UTC)Do you have any examples of LP tools and programs which demonstrate its successes, and not Knuth's idiosyncrasies?