Date: Wed, 31 Dec 2014 00:38:21 -0500
From: Robert M Ochshorn
Subject: Re: Flick, Grain, HLL, and The Rise of Worse is Better
The Web Audio API is a scandal—total disaster. Maybe the worst part is that it is implemented everywhere now, from iOS to IE. Fortunately, they do slip a Turing Machine into the browser, so you can make minecraft mini-realities that behave with alternative macro-grains. Here’s the same thing as last time with the video tagging along, though it’s still floating outside of any context/gesture:
http://rmozone.com/snapshots/2014/12/backandforthaandv.html

I’m indeed conflicted about questions of high-level/low-level, maybe in a similar way to how Bret is “perversely” rather than “proudly” fond of the “primitive” texture of Dead Fish / DDV. The STEPS mock-ups are beautiful and very exciting—Knuth’s METAFONT and TeX books might be candidates for revitalizing with graphic and interactive listings.
My whole ambivalence may just need to resolve as Yet Another Case of “Both”: we should be thinking grandly from as high a position as we can muster, while at the same time exploring the “ground truth” that is to be found in an intimate understanding of various foundations. The Agre book has come up before and I’m excited to check it out—in particular, “Number” v. “Integer” is a bit of a sore point in JavaScript. (Typed Arrays were tepidly introduced to support WebGL and some a/v processing, but never really fully/properly exposed.)

I had an interesting conversation with my father this morning about Building Information Modeling. He’s reading a book about it that is unfortunately (though not altogether shockingly) fixated on incompatible standards and implementations that are crippling the field, but all the same he is thinking of designing curricula to incorporate BIM into the Architecture program at Cornell. The BIM stuff is interesting, and I’m curious to learn more about it (have any of you played with Revit[0]), but more interesting to me was learning of an early and unrealized dream my father had some 30 years ago that, instead of Frank Gehry scribbling sketches for his masterworks on hotel napkins——and getting the engineers to figure out the details from there, one could imagine design tools that built up from a detailed model of the lowly 2x4 and support the design of buildings that don’t leak. (Apparently, abstractions cause buildings, as well as software, to leak.)


Your correspondent,

R.M.O.



[0] Architectural software is funny. Wikipedia is funny. Wikipedia’s writing on architectural software is hilarious:

Grasshopper features a fairly advanced GUI with a lot of features that are only rarely found in production software. It is not known however whether these elements improve or impede effective usage.


— http://en.wikipedia.org/wiki/Grasshopper_3D

On Dec 29, 2014, at 2:55 PM, Bret Victor wrote:

It’s amazing how “against the grain”[0] of web/media such a basic experiment as this is:

When I wanted to make the "guitar switch" in http://worrydream.com/ExplorableExplanations/ I took a look at the Web Audio API and recoiled in horror at the complexity.  I had no idea what they were talking about, and I've implemented all that stuff myself.  Fortunately, I also read that the API (at the time) wasn't well supported and basically didn't work, so I did it in twenty lines of Flash.

Bedrock abstractions (such as "the only way to generate sound on the web") shouldn't have a grain.  The libraries and languages that others build on top of them should have grains.

There's a bit in one of Stroustrup's books, where he mentions that a language designer constantly hears "This is a really common need -- it should go in the standard library", and he responds with, "No, it should go in some library.  But not necessarily the standard library."


There’s a lot to disentangle from this tendency, which seems to continue unabated even today (and at CDG, &c).

I'm perversely fond of how low-level the Dead Fish and Drawing Dynamic Visualizations systems are -- they're kind of direct-manipulation geometric assembly languages.  There's something about that purity that helps you understand the essence of the new concept, without being obscured by compiler or IDE "helpfulness".


Open source is appealing, at least in theory, because the abstractions provided are “descendable.” Unfortunately it’s painful to go down into the Linux kernel, &c

Yeah, you don't really want "open source" so much as "explorable source".  You need to be able to descend and actually understand it.

I made some mockups for Alan's STEPS project, to try to suggest that the source code of the operating system should feel like an interactive book (with chapters, sections, etc. corresponding to functional components) where there's a high-level description/depiction of every module, and you can go deeper as needed, and this readable explorable description is the running source code of the system.