My Lisp experiences and the development of GNU Emacs

My Lisp experiences and the development of GNU Emacs

My Lisp Experiences and the Development of GNU Emacs

The never-dull Richard Stallman talks about his experiences with Lisp and with the development of Emacs. It’s got some useful observations on why Lisp became the core of Emacs: it was news to me that this hadn’t always been the case. It started with an “editor control” language in the spirit of editors like ed. But as people wanted more support from their editor, they wanted to program it more effectively.

The language that you build your extensions on shouldn’t be thought of as a programming language in afterthought; it should be designed as a programming language. In fact, we discovered that the best programming language for that purpose was Lisp.

The result was a re-write of Emacs in C (for portability), with a Lisp interpreter specialised towards editing tasks.

He then gives an insider’s perspective on the Lisp machines and their evolution, as well as revealing the genesis of his ideas for the free software movement. While these are interesting to read, it should be noted that much of it has been rebutted: his description of the formation and later history of the two spin-outs, Symbolics and Lisp Machines Inc, is strongly disputed by Dan Weinreb on his blog.)

The Romanovs: 1613-1918

Simon Sebag Montefiore (2016)

When complimented on his armies capturing Berlin at the end of the Second World War, Stalin famously replied that “Tsar Alexander made it to Paris.” This book describes how, and why, that happened – and why it meant to much to Stalin, on whom Sebag Montefirore is of course a recognised expert.

The sweep of Romanov history is epic in all senses. It’s impossible not to realise how deeply personal their rule was, identifying their own reigns absolutely with Russia and its greatness. The main characters are all flawed in tragic ways, sometimes grotesque but equally often brilliant and self-aware within the limitations of their eras – which none ever really managed to trascend, with the possible exception of Peter and later Catherine, each known as “the Great” for that reason.

The story is made powerful by recent research in the Russian archives and access to previously-unkown letters between Alexander II and his mistress, and later between Nicholas II and Alexandra. They highlight the impact of extra-marital affairs on high policy right across the Romonov era: it’s often hard to keep track of who is related to (or sleeping with) whom, or to understand the true importance of some of the less well-known characters in the story who may have have had an advisory impact far beyond what their “official” position might suggest.

It’s a book that’s hard on autocracy – but also quite hard on the alternatives that came after. Sebag Montefiore sees a continuity between the tsars, Lenin, Stalin, and Putin, and almost seems to regard it as inevitable that Russia will need strongman leadership. One can perhaps hope not.

5/5. Finished Saturday 23 March, 2024.

(Originally published on Goodreads.)

Escape from Model Land: How Mathematical Models Can Lead Us Astray and What We Can Do About It

Erica Thompson (2022)

A thoughtful look at modelling by an experienced climate modeller.

What are models for? The most common answer would be “to predict the future behaviour of some system,” but Thompson argues a far more subtle line: that the most important models often fail to be predictive in any real sense. Much of this is down to problems of validation, especially in climate models for which we have no experience of the world the models are trying to predict.

An even more subtle mistake is regarding all models as “cameras” that simply observe the world. That’s true for the more abstract kinds of modelling, where one is trying to understand possible behaviours of systems in general without tying them to specific circumstances. But the models with which most people are familiar act ore like “engines” that can perturb the system they’re purporting simply to observe by baing used as drivers for policy. Climate and epidemic models seek to warn as well as predict and understand, but this exacerbates the problems of validation: if the model’s predictions don’t come to pass, perhaps this is because policy-makers took corrective actions in response, or maybe bacause they didn’t intervent effectively enough. This isn’t a reason to give up on modelling altogether: how else are we to understand complex systems, and how else are we to respond rationally to them? But it does mean that the notion of “following the science” problematic.

Thompson also wrestles with the problem of groupthink amongst modellers, who often share a common overallping background. I agree this is a problem, but the idea that we can increase diversity in the community easily seems flawed to me. Modellers share a scientific viewpoint and a belief in modelling, and no-one who doesn’t will ever be able to effectively engage with the models or their arguments. Perhaps it’s enough that scientists are always advisors and never decision-makers, and allow politicians to deal with the integration of different choices and values – although that split isn’t always appreciated by the public, and is often (as in the covid-19 pandemic) deliberately blurred to allow less-trusted politicians to draw credibility from more-trusted scientists and doctors.

Overall I think this is a lucid and valiant attempt to summarise and explore the benefits and limitations of models, and science in general, when it impacts directly on the wider world. It deserves to be widely read in the scientific community so that we can better understand our place in policies that we often unavoidably have to influence.

4/5. Finished Friday 22 March, 2024.

(Originally published on Goodreads.)

How Lisp is designing nanotechnology

How Lisp is designing nanotechnology

How Lisp is designing nanotechnology (video, 52 minutes).

An interview on the Developer Voices podcast with Prof Christian Schafmeister on designing enzymes using a custom dialect of Lisp to control computational chemistry libraries.

He initially started from an idea based on CAD applications (written in Smalltalk), but rapidly realised there were too many possible components and combinations to work with graphically and so started treating it as a language-design problem – and designed a custom Lisp based on ECL. Lisp provides simplicity and efficiency, as well as being a “forever” language in which software keeps working over the long term.

A micro-manual for Lisp: Not the whole truth

A micro-manual for Lisp: Not the whole truth

John McCarthy. A Micro-Manual for Lisp: Not the Whole Truth. ACM SIGPLAN Notices 13, pp.215–216. 1978.

A “manual” in the sense of providing a complete implementation of Lisp – in Lisp itself.

Is that useful? A semantics expert would say “no”, since such a model has no real explanatory power: the recursion doesn’t bottom-out to define the concepts. However, a programming language expert might disagree and observe that this is meta-linguistic abstraction, the use of one high-level language to capture the definition of another. The “host” language provides a higher level of abstraction than is usual when writing interpreters and compilers, so it becomes easier to experiment with different forms of “target” language as there’s less low-level work to do. This benefit exists even when host and target are the same: essentially the target is bootstrapped and can then be adjusted while running within an earlier version of itself.

As far as I know this is the first example of meta-linguistic abstraction in the computer science literature. The idea was popularised by SICP (using Scheme), and forms the basis for a lot of modern bootstrapped compilers.