Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

When I first started in this industry, I thought it was essentially immune to fads. "Does it work? Yes? Ship it!" Seems so naïve. Whole paradigms rise and fall for arbitrary reasons: a viral blog post, or an open letter, or the tech stack of that cool startup. Perhaps this blog post will lead to the reformation of the literate programming approach.


Yeah it's really surprising to see how supposedly scientifically educated people are driven completely by fads and basic social needs and personal gain, and don't bother to even try to motivate decisions with anything more than "I like it" etc.


Telling computers what to do and how to do it is an art, a craft, a practice, a discipline, a medium, a profession, and a science (and probably a few more categories besides). It is just isn't (usually) all of those things at once. Most of the difficulties we have in discussions about the subject have to do with category errors. Literate Programming has stylistic, technical, toolchain, and disciplinary aspects, and Knuth's exemplar demonstrated these. It was then critiqued on pragmatic grounds. I'm not sure if this counts as a bait and switch, rope a dope, or strawman.

I mean, if I was participating in a computer programming class and given the same problem as an assignment, I would write a program to satisfy the requirements. If then told that I should have written a few lines of shell script instead and given a poor grade, I would be livid at the instructor.

As an aside, I was interested to know if there are LP tools for shell scripting. A cursory search turned this up:

https://github.com/bashup/mdsh


> As an aside, I was interested to know if there are LP tools for shell scripting.

jupyter + xon.sh kernel almost can do it too.

Well notebooks aren't exactly to explain programs but to experience with them, no weave or tangle, you can only execute them if your cells are in top-down order.

Anyhow, being able to save the experimentation fragments can lead to better documentation compared to when you experiment in a different terminal.


A near non-sequitur per your aside (I agree with the rest...): https://github.com/bashup/events is one of my favorite little things. I even blogged about it in January!


You can literate-program anything with Emacs org-mode. Tools like noweb are also inherently multi-language.


That's exactly because the only necessarily important thing is "does it work?" So the rest is open to interpretation and susceptible to religious behavior.


"does it work?" is also open to interpretation and susceptible to religious behavior.

There is a paper [0] which documents an interesting disagreement about a project: The developers considered it a huge success but management considers it a complete disaster. Very different interpretation. Does it work?

As an example for religious behavior we could look at Powerpoint. An application which is used with practically religious fervor. However, the application is mostly misused so badly that the goal of supporting the transfer of knowledge or persuading people is not achieved. Does it work?

Without agreement about the goal/requirements, you can not determine if the resulting software works. In my experience, precise goals/requirements are often missing, so a simple question like "does it work?" is also open to interpretation.

[0] Software Developer Perceptions about Software Project Failure: A Case Study by Kurt R Linberg, 1999


PowerPoint is also avoided with practically religious fervor. Kinda like a hipster refusing to ever set foot in a Starbucks.


Seems like a pretty autistic way of thinking to me, as if the world exists of only mathematical proofs and religion.


Neurodivergent perspectives aside, it’s entirely possible that the world (well, universe) is some combination of religion and mathematic proofs.


A scientific approach would be to have a large number of program requirement documents and a large number of programmers, and assign a methodology to half the programmers, forbid the method to to the other half, and then measure the output from the exercise along important axes like time to completion, correctness, and compute resource consumption. This has been approximated in studies a small number of times, but with too small sample sizes. Achieving robust results would be enormously expensive.


Wow yeah so weird that people have preferences that outweigh the need to learn a new framework every couple months.

Someone give this guy a medal.


I'm actually interested in the sociology/economics of these dynamics. They're everywhere. We live in a blur and somehow things happen.. but the forces driving these moves are still difficult to grasp (for me).


Aren't these dynamics generally known as "fashion"?

There's probably tons of (academic and industry) research on the topic from sociological and economical aspects. Well, if not so much with a focus on how fashions emerge and manifest themselves within the field of programming, probably at least in many other fields.


Fashion is a simple way to describe it, I was looking for deeper analysis. Political influence, past fad fatigue and/or economic dry up (when the system has tried a new thing long enough it kinda wants to seek other paths, energy and belief flows naturally there, until a new slowdown occurs).


You may be interested in the idea of memetics. Whether it's really "correct" in any absolute sense, there are some interesting ideas and models there for things like this.

https://en.wikipedia.org/wiki/Memetics


I suspect it's chaotic and non-linear along many dimensions if it can be quantified at all.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: