1,283 karma · joined July 25, 2013
This reminded me of the book "Business Engineering with Object Technology" by David A Taylor. In one chapter he goes about identifying "objects" in a manufacturing business and goes down to the level of modeling employees and the machines that they'd be using on the production line. I've never found the need to model things that granular, but it's definitely an interesting concept of "reifying" _everything_.
I've become increasingly worn-out from this as well. It's strange that as an industry we parrot the "premature optimization is the root of all evil" line, yet we build out our tech stacks as if we were all part of FAANG.
Isn't this just history repeating itself though? We could easily replace "Intel" with any number of previous market leaders that have fallen by the wayside.
From the page:
> As of 2018, the althttpd instance for sqlite.org answers about 500,000 HTTP requests per day (about 5 or 6 per second) delivering about 50GB of content per day (about 4.6 megabits/second) on a $40/month Linode. The load average on this machine normally stays around 0.1 or 0.2. About 19% of the HTTP requests are CGI to various Fossil source-code repositories.
I've really enjoyed reading Greenspun's stuff and this is a great way to describe his writing style.
Tangentially related, I've been making my way through Greenspun's Software Engineering for Internet Applications [1] and have especially found the metadata section to be enlightening [2]. I like to think of myself as a competent engineer, but this quote hit too close to home
If you're programming one Web page at a time, you can switch to the language du jour in search of higher productivity. But you won't achieve significant gains unless you quit writing code for one page at a time. Think about ways to write down a machine-readable description of the application and user experience, then let the computer generate the application automatically.
[0] https://naviserver.sourceforge.io/n/toc.html
Is this solved in a better way using other paradigms?
Definitely a legitimate approach. In my mind, it seems to be describing Dependency Injection or some type of Strategy Pattern. The activity is defined using "roles" (interfaces) in some use-case class and then implementations of those interfaces are injected.
I found the idea of reifying use-cases into explicit code constructs interesting.
https://heim.ifi.uio.no/~trygver/1996/book/WorkingWithObject...
I believe Trygve Reenskaug (the inventor of MVC) would agree with this point. After MVC he went on to invent "Data, Context, Interaction" (DCI) [0], which aligns with what you're describing.
[0] https://en.wikipedia.org/wiki/Data,_context_and_interaction
Implementing your own DSL is fairly trivial too: http://docs.groovy-lang.org/docs/latest/html/documentation/c...
Do you give any credence to the claim that playing violent video games makes people violent?
There is a great section of John Ousterhout's "A Philosophy of Software Design" that goes into this. He mentions that moving code to functions / methods doesn't eliminate complexity, it nuat kind of shifts it: it adds complexity to the "interface" of the module.
Sometimes leaving code inline with its original context is better.
wget --no-parent --accept pdf http://worrydream.com/refs/