Rereading <Bret Victor on climate change>, it fina...
# linking-together
k
Rereading Bret Victor on climate change, it finally sunk in that he really really cares about software tools for scientific computing.
I’m happy to endorse Julia because, well, it’s just about the only example of well-grounded academic research in technical computing. It’s the craziest thing. I’ve been following the programming language community for a decade, I’ve spoken at SPLASH and POPL and Strange Loop, and it’s only slightly an unfair generalization to say that almost every programming language researcher is working on
(a) languages and methods for software developers,
(b) languages for novices or end-users,
(c) implementation of compilers or runtimes, or
(d) theoretical considerations, often of type systems.
The very concept of a “programming language” originated with languages for scientists — now such languages aren’t even part of the discussion! Yet they remain the tools by which humanity understands the world and builds a better one.
If we can provide our climate scientists and energy engineers with a civilized computing environment, I believe it will make a very significant difference. But not one that is easily visible or measured!
c
This makes a lot of sense in the context of the last few years of his research! Do you think this implies that the applications of Dynamic Land™ are more domain specific than it’s usually described as?
k
He objects to the usual way programmers use "general-purpose" and "domain-specific": > They’re typically dismissed as “domain-specific”. This pejorative reflects a peculiar geocentrism of the programming language community, whose “general-purpose languages” such as Java and Python are in fact very much domain-specific — specific to the domain of software development.
a
Ok this made me feel bad in a really good way :-)
k
Climate change has put scientific computing back on the agenda of CS. Bret's statement is the first I have seen along these lines. For a more recent manifestation see last year's Programming for the planet conference. Some talks in the latter are unfortunately little more than "Look, my favorite topic of the last ten years could actually make a difference for the planet if only scientists would start using it.". But there are also real collaboration scenarios, which look much more encouraging. Bret's discussion of programming tools for scientists has only one major fault from my point of view: it considers scientific/technical computing as a single domain whose needs can be satisfied by a few general-purpose tools. For most scientists, Julia is no more useful than Fortran or Matlab, all of these being too low-level and machine oriented. Climate science, to stay with the example, works at the level of air and water flows, thermodyamic variables, etc. None of these are primitives in Julia, or any other programming language or system. Most science needs much more domain-specific languages.
b
I recently saw Toward a Live, Rich, Composable, and Collaborative Planetary Compute Engine vision paper, arguing scientists need more than a language — a shared live environment better than notebooks — then hoping Hazel's incomplete-program semantics might enable such an env.
k
I suppose most scientists would agree that they need more than a language. But that's likely to be the end of a consensus. Everyone has their favorite culprit for what's blocking productive work. There's user interfaces (I count notebooks and the surface aspect of Hazel there), management of software environments, management of diverse machines in different places with different policies and software stacks, and probably a lot more.