Here's a very high-level and eclectic list of themes and specific research directions I can remember off-hand: agent-based modeling in economics and operational research, game theory automata in evolutionary biology, lattice gas methods in fluid dynamics, tessellation-based approaches to solving PDAs, L-systems in architectural design, logic automata for programming array-based computers, cellular automata-based PRNGs for stream ciphers, program search for finding lock-free concurrent algorithms, rBMs as used in deep learning.
In fact, I used an exhaustive NKS-style search the other day to find novel data query primitives (i.e. what other functions live in the type-signature space that MapReduce occupies?).
And the Galilean invariance thing is kinda cool: who knew that you didn't need something as fundamental as Galilean invariance?
What do you mean you don't need Galilean invariance? In the real world, fluid motion is Galilean invariant (unless you're talking relativistic motion, which is a whole other class of thing that lattice gases have trouble with). You might be simulating something but it sure ain't a Navier-Stokes fluid.
For Galilean invariance, I've previously waxed philosophic about why I think that's a feature, not a bug (at least, pedagogically): http://news.ycombinator.com/item?id=5931434
Look, I do get your point about lattice gas fluids being interesting conceptually, and I do think they make an interesting point about how little you can get away with and still yield a useful fluid model at the macro scale, but I don't think they're a good example of a trend towards NKS-style methods. If anything the trend in that field since the late 90s has been away from NKS and towards seeing the lattice Boltzmann method as a solver for continuum treatments at the Boltzmann (rather than N-S) level.
Can you describe more how the deviations deviate? Specifically, how do these differences affect numerical solutions?
> If anything the trend in that field since the late 90s has been away from NKS and towards seeing the lattice Boltzmann method as a solver for continuum treatments at the Boltzmann (rather than N-S) level.
Also, which continuum are you referring to here? Number of particles? Lattice spacing?
> Also, which continuum are you referring to here? Number of particles? Lattice spacing?
By continuum I mean you write down the continuum Boltzmann equation, i.e. a partial differential equation for the evolution of the single particle distribution function. You can then discretize this onto a lattice to recover the lattice Boltzmann method.
Anyway, to me, the continued application of these methods is one data point that NKS-like methods are proving useful across a variety of domains.
This is something that kind of died in the late 80s. One of the most noteworthy cases was Damgard's CA-based hash function in the paper that proved collision-resistance of the Merkle-Damgard mode [1]. It was quickly broken [2]. The SHA-3 winner, Keccak, has roots in CA-based designs [3], but at this point it's little more than an historical footnote.
[1] http://www.inf.usi.ch/faculty/shrimpton/spring09/damgard89.p...
[2] http://www.cosic.esat.kuleuven.be/publications/article-132.p...
For 3, I think having a full 7 slides of Bertoni et al's slide deck devoted to the influence of CA-based cryptography on SHA-3 makes it fair to call the approach influential.
Thanks for the references!
Also, I think the key insight is pretty deep -- systems are either trivially simple, or limitlessly complex, once you reach a (very low) level of complexity, you can do pretty much anything.
As for his post, it should have been titled: "A New Kind of Programming Language".
It seems like he has an awful lot of balls in the air, which might mean long intellectual leaps, but not the legwork behind them.