<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Simon Dobson</title><link>https://simondobson.org/</link><description>Aut tace aut loquere meliora silentio</description><atom:link href="https://simondobson.org/rss.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:simoninireland@gmail.com"&gt;Simon Dobson&lt;/a&gt; </copyright><lastBuildDate>Fri, 10 Jul 2026 14:45:15 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>A programmable programming language</title><link>https://simondobson.org/2026/07/10/a-programmable-programming-language/</link><dc:creator>Simon Dobson</dc:creator><description>&lt;div id="outline-container-org90d39a3" class="outline-2"&gt;
&lt;h2 id="org90d39a3"&gt;A programmable programming language&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-org90d39a3"&gt;
&lt;p&gt;
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram
Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam
Tobin-Hochstadt.  &lt;i&gt;&lt;a href="https://doi.org/10.1145/3127323"&gt;A Programmable Programming Language&lt;/a&gt;&lt;/i&gt;.
Communications of the ACM &lt;b&gt;61&lt;/b&gt;, pp.62–71. 2018.
&lt;/p&gt;

&lt;p&gt;
Lisp has been described as a "programmable programming language":
the fact that Lisp code is valid Lisp data and can be manipulated
as such, coupled with macros, makes it easy to construct new Lisp
variants in Lisp, and to combine them with "real" Lisp in
interesting ways.
&lt;/p&gt;

&lt;p&gt;
Racket is a Lisp that takes this to its logical conclusion, making
domain-specific sub-languages into first-class objects that can be
freely interleaved within programs and can be matched to the
"natural" expression of the target domain. The languages don't
even have to be Lisp-like.
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
In the ideal world, software developers would analyze each problem in
the language of its domain and then articulate solutions in matching
terms.
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
Racket languages are formed of two parts: a &lt;b&gt;reader&lt;/b&gt; that turns
strings into properly bracketed S-expressions, and an &lt;b&gt;expander&lt;/b&gt;
that turns these expressions into "real" Racket (or some other
Racket-defined language).
&lt;/p&gt;

&lt;p&gt;
This flexibility adds a whole new level to Lisp programming. For
example, it allows languages that don't readily translate to Lisp
style to be implemented and integrated into Lisp. This may simply
be for user convenience, or may have some deeper semantic
structure. Racket also defines clean interfaces between languages,
which is what allows them to be combined. It's a deeper version
of the usual Lisp multi-paradigm approach, reaching out beyond
macros working on Lisp syntax.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><category>language-reference</category><category>lisp</category><category>project:lisp-bibliography</category><guid>https://simondobson.org/2026/07/10/a-programmable-programming-language/</guid><pubDate>Fri, 10 Jul 2026 14:44:09 GMT</pubDate></item><item><title>The Lisp curse</title><link>https://simondobson.org/2026/06/18/the-lisp-curse/</link><dc:creator>Simon Dobson</dc:creator><description>&lt;div id="outline-container-orgef71109" class="outline-2"&gt;
&lt;h2 id="orgef71109"&gt;The Lisp curse&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-orgef71109"&gt;
&lt;p&gt;
&lt;a href="https://www.winestockwebdesign.com/Essays/Lisp_Curse.html"&gt;https://www.winestockwebdesign.com/Essays/Lisp_Curse.html&lt;/a&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
The power of Lisp is its own worst enemy.
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
An interesting essay on the "Lisp curse", the idea that Lisp's
power can sometimes be a &lt;i&gt;disadvantage&lt;/i&gt; for developers. The core
idea expressed as a question: how hard is it to add
object-oriented features to a language? In the C world it's
happened twice, giving rise to C++ and Objective-C, an no-one
would even &lt;i&gt;think&lt;/i&gt; about defining their own. In the Lisp world, by
contrast, building that style of object-oriented extension is a
weekend's work (assuming we didn't already have CLOS, which is in
many ways superior anyway). The point is that it's relatively easy
to build even complex features as libraries, meaning there's less
reason to standardise, and this leads to a proliferation of
mutually incompatible designs that solve 80% of the problem – but
all a &lt;i&gt;different&lt;/i&gt; 80%. This then makes interoperability difficult.
&lt;/p&gt;

&lt;p&gt;
In fact the essay goes farther, to argue that the sorts of people
who write Lisp tend not to be the sorts of people of work well in
the political and compromise-driven world of standardisation. I'm
not sure how true that is, given the stability of the Common Lisp
standard itself since its adoption in 1994, but it's an
interesting reflection on how increased language expressiveness
need not automatically be a strength.
&lt;/p&gt;

&lt;p&gt;
(Some of the links in the article are now broken, or point to what
looks like an AI link farm.)
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><category>experience</category><category>lisp</category><category>project:lisp-bibliography</category><guid>https://simondobson.org/2026/06/18/the-lisp-curse/</guid><pubDate>Thu, 18 Jun 2026 09:07:24 GMT</pubDate></item><item><title>Programming algorithms in Lisp</title><link>https://simondobson.org/2026/06/13/programming-algorithms-in-lisp/</link><dc:creator>Simon Dobson</dc:creator><description>&lt;div id="outline-container-orgbcdd817" class="outline-2"&gt;
&lt;h2 id="orgbcdd817"&gt;Programming algorithms in Lisp&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-orgbcdd817"&gt;
&lt;p class="floater"&gt;
&lt;img src="https://simondobson.org/attachments/ef/0a5cf2-5145-45d5-bee1-da969fcbc18b/pail.jpg" alt="nil"&gt;
&lt;/p&gt;

&lt;p&gt;
Vsevolod Domkin.  &lt;i&gt;&lt;a href="https://doi.org/10.1007/978-1-4842-6428-7"&gt;Programming Algorithms in Lisp&lt;/a&gt;&lt;/i&gt;. Apress. 2021.
&lt;/p&gt;

&lt;p&gt;
This is exactly what it sounds like: an algorithms textbook that
uses Lisp as its implementation language. It has the strengths and
weaknesses of all such textbooks: it shows programmers, especially
new programmers, how to write algorithms that are both correct and
efficient, and the places where incorrectness and inefficiency
will hide; and in doing this it tempts them to write algorithms
that are already implemented in libraries, when they should really
seek out and re-use the already-developed and -debugged code.
&lt;/p&gt;

&lt;p&gt;
But of course there are always new algorithms that &lt;i&gt;don't&lt;/i&gt; have an
existing library and therefore &lt;i&gt;need&lt;/i&gt; to be written from scratch. This
book is excellent preparation for that. It would give a new-ish
programmer the confidence to tackle a challenging algorithm design
and implementation job. It ranges well away from the common
algorithms, to cover things like approximation and (especially
importantly) parallelism and lock-free data structures, and I can
imagine it providing templates that could be used as starting points
for a huge range of new algorithms. Just remember not to re-invent
the wheel.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><category>advanced-tutorial</category><category>lisp</category><category>project:lisp-bibliography</category><guid>https://simondobson.org/2026/06/13/programming-algorithms-in-lisp/</guid><pubDate>Sat, 13 Jun 2026 11:15:03 GMT</pubDate></item><item><title>Modern Common Lisp with FSet</title><link>https://simondobson.org/2026/06/12/modern-common-lisp-with-fset/</link><dc:creator>Simon Dobson</dc:creator><description>&lt;div id="outline-container-org3fbef36" class="outline-2"&gt;
&lt;h2 id="org3fbef36"&gt;Modern Common Lisp with FSet&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-org3fbef36"&gt;
&lt;p&gt;
&lt;a href="https://fset.common-lisp.dev/Modern-CL/Top_html/index.html"&gt;https://fset.common-lisp.dev/Modern-CL/Top_html/index.html&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
A book-length description of a library, &lt;a href="https://github.com/slburson/fset"&gt;FSet&lt;/a&gt;, that provides
functional collections for Lisp. By "functional collections" the
author means collections – sets, trees, maps, and others – where
update always produces a new collection rather than mutating the
original collection in place. This is an attractive property for a
language, and one that's hard to do efficiently. As with &lt;a href="/2024/09/27/purely-functional-data-structures/"&gt;Purely
functional data structures&lt;/a&gt;, it provides a change of emphasis that
makes for more referentially transparent code.
&lt;/p&gt;

&lt;p&gt;
The book contains a lot of discussion about the library's
rationale and design, which makes it useful as a reference for
others designing large libraries (or new languages, which of course
in Lisp can mean much the same thing). There's an equally
important discussion about what's &lt;i&gt;not&lt;/i&gt; provided (for example lazy
collections) which is really interesting by giving an example of
when to stop with a codebase that could otherwise probably grow
indefinitely.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><category>advanced-tutorial</category><category>lisp</category><category>project:lisp-bibliography</category><guid>https://simondobson.org/2026/06/12/modern-common-lisp-with-fset/</guid><pubDate>Fri, 12 Jun 2026 08:56:40 GMT</pubDate></item><item><title>Made in America</title><link>https://simondobson.org/goodreads/made-in-america/</link><dc:creator>Simon Dobson</dc:creator><description>&lt;div&gt;
    &lt;div&gt;
      &lt;img src="https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1768450017l/246596797._SX98_.jpg" style="float: left; margin-right: 10px"&gt;
      &lt;h2&gt;
	Edward Stourton
	  (2026)
      &lt;/h2&gt;
    &lt;/div&gt;
    &lt;p&gt;
      A view of Donald Trump's presidency through the lens of American history.&lt;br&gt;&lt;br&gt;Stourton's premise arises from surprise: when people frequently describe Trump as an anomaly and a unique threat to democracy, is that actually true? – or were there precedents? He sets out to show that many of Trump's ideas are deeply embedded in American history, arising repeatedly in similar guises.&lt;br&gt;&lt;br&gt;Many of the connections have been made before, notably with President Andrew Jackson's view that politics comes before, and must sometimes supercede, the law. But Stourton has a journalist's ear for subtle echoes, and surprisingly (to me) includes Franklin Delano Roosevelt in the same sequence of presidents willing to ignore or circumvent the established readings of the law and constitution as he pushed the New Deal forward.&lt;br&gt;&lt;br&gt;I found strongest arguments to be those about religion. To the question of how religious voters support a clearly irreligious president so fervently, Stourton reaches back almost to the foundation of America, to the early Puritan colony of Massachusetts, where the theme of religious liberty didn't mean what we might expect today. The Puritans left England to seek liberty for themselves, but once established in their own realm proceeded to reproduce the intolerance they themselves had fled. The later Madisonian view that religion belongs to the private sphere, untouched by and untouching of the state, therefore sits alongside a completely contrary view that the state should have a controlling religious faction and orthodoxy – and the latter view seems to have recently become dominant, much to the surprise of outside observers but perhaps not as historically anomalous as it at first appears.&lt;br&gt;&lt;br&gt;In the epilogue Stourton returns to the often surprising differences between American and European (and especially British) views. It raises the question: was the post-war consensus on human rights and peaceful co-existence actually sincere, based in an idea of progress? – or was it adopted purely as a response to the shocks of the war? Has it simply taken eighty years for the old power politics to re-emerge, and were we foolish to think it might be otherwise? I hope not.
      &lt;/p&gt;&lt;p&gt;
	4/5.
	  Finished Sunday 7 June, 2026.
	&lt;/p&gt;&lt;p&gt;
	  (Originally published on &lt;a href="https://www.goodreads.com/review/show/8225761519?utm_medium=api&amp;amp;utm_source=rss"&gt;Goodreads&lt;/a&gt;.)
  &lt;/p&gt;&lt;/div&gt;</description><category>books</category><category>reviews</category><guid>https://simondobson.org/goodreads/made-in-america/</guid><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate></item><item><title>A Lisp interpreter implemented in Conway's Game of Life</title><link>https://simondobson.org/2026/05/22/a-lisp-interpreter-implemented-in-conway1s-game-of-life/</link><dc:creator>Simon Dobson</dc:creator><description>&lt;div id="outline-container-org3d7d474" class="outline-2"&gt;
&lt;h2 id="org3d7d474"&gt;A Lisp interpreter implemented in Conway's Game of Life&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-org3d7d474"&gt;
&lt;p&gt;
&lt;a href="https://woodrush.github.io/blog/posts/2022-01-12-lisp-in-life.html"&gt;A Lisp Interpreter Implemented in Conway’s Game of Life&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I include this as an application rather than an implementation
technique because … well … it's far more interesting as an
example of cellular automata (CAs) than as a Lisp.
&lt;/p&gt;

&lt;p&gt;
Having said that, there's something utterly compelling in watching
a CA run something this complicated. It basically implements a
Lisp machine core, and watching it execute is rather like watching
a real chip in action (even though the mechanisms are completely
different). You can &lt;i&gt;see&lt;/i&gt; memory being accessed. Its implementation
includes lexical closures, enough to build a simple object system.
&lt;/p&gt;

&lt;p&gt;
The implementation uses the VarLife system as an abstraction layer
over the "raw" Conway rules. The compiled programs can be run on
the &lt;a href="https://en.wikipedia.org/wiki/Golly_(program)"&gt;Golly&lt;/a&gt; CA emulator.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><category>applications</category><category>lisp</category><category>project:lisp-bibliography</category><guid>https://simondobson.org/2026/05/22/a-lisp-interpreter-implemented-in-conway1s-game-of-life/</guid><pubDate>Fri, 22 May 2026 11:47:12 GMT</pubDate></item><item><title>Common Lisp screenshots</title><link>https://simondobson.org/2026/05/22/common-lisp-screenshots/</link><dc:creator>Simon Dobson</dc:creator><description>&lt;div id="outline-container-org66d9b91" class="outline-2"&gt;
&lt;h2 id="org66d9b91"&gt;Common Lisp screenshots&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-org66d9b91"&gt;
&lt;p&gt;
&lt;a href="https://www.lisp-screenshots.org/"&gt;https://www.lisp-screenshots.org/&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
A collection of links to Common Lisp applications, including
utilities, games, and full-blown science packages and web
applications. Most have links to the applications' home pages.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><category>applications</category><category>lisp</category><category>project:lisp-bibliography</category><guid>https://simondobson.org/2026/05/22/common-lisp-screenshots/</guid><pubDate>Fri, 22 May 2026 11:46:17 GMT</pubDate></item><item><title>The Common Lisp cookbook</title><link>https://simondobson.org/2026/05/22/the-common-lisp-cookbook/</link><dc:creator>Simon Dobson</dc:creator><description>&lt;div id="outline-container-orgf1d1f85" class="outline-2"&gt;
&lt;h2 id="orgf1d1f85"&gt;The Common Lisp cookbook&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-orgf1d1f85"&gt;
&lt;p&gt;
&lt;a href="https://lispcookbook.github.io/cl-cookbook/"&gt;https://lispcookbook.github.io/cl-cookbook/&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Part tutorial and part recipe site for topics ranging from the
common (syntax, the &lt;code&gt;loop&lt;/code&gt; macro), to the advanced (packages,
multi-threaded web application programming, building stand-alone
binaries). It's extremely thorough in terms of the patterns used
in real Lisp code.
&lt;/p&gt;

&lt;p&gt;
I think the most useful aspect is that the recipes go well beyond
what's built-in to Lisp and tackle some of the common (and
not-so-common) packages: the chapter on arrays goes into a couple
of linear algebra packages, for example. It also has useful
chapters on development tasks like profiling and continuous
integration.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><category>advanced-tutorial</category><category>lisp</category><category>project:lisp-bibliography</category><guid>https://simondobson.org/2026/05/22/the-common-lisp-cookbook/</guid><pubDate>Fri, 22 May 2026 11:45:13 GMT</pubDate></item><item><title>Lush</title><link>https://simondobson.org/2026/04/30/lush/</link><dc:creator>Simon Dobson</dc:creator><description>&lt;div id="outline-container-org7c86248" class="outline-2"&gt;
&lt;h2 id="org7c86248"&gt;Lush&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-org7c86248"&gt;
&lt;p&gt;
&lt;a href="https://scottlocklin.wordpress.com/2024/11/19/lush-my-favorite-small-programming-language/"&gt;Lush: my favorite small programming language&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
A blog post all about &lt;a href="https://lush.sourceforge.net/"&gt;Lush&lt;/a&gt;, a small language that the authors
present as a "Lisp Universal SHell" whose main features are its
ability to integrate simply with underlying libraries with the
interactivity of Lisp. And it's a full Lisp, with a compiler, a
macro system, an object system, and (importantly for what comes
next) high-performance arrays and tensors.
&lt;/p&gt;

&lt;p&gt;
Lush's main claim to interest is that its authors include Yann
LeCun, Yoshua Bengio, and the other researchers who went on to
have a massive influence on the resurgences of interest in deep
learning neural networks. Indeed, the first version of the Torch
package, which later became &lt;a href="https://pytorch.org/"&gt;PyTorch&lt;/a&gt;, was written in Lush. Lush's
arrays make use of a sub-language modelled on APL that leverage
Lush's ease with foreign functions to call into underlying C
kernels for tensor operations.
&lt;/p&gt;

&lt;p&gt;
This is a great example of how Lisp's claim to fame as a language
for doing AI has continued into the "new" AI era of deep learning
models. It also shows that, if you believe that Lisp's dynamism
and flexibility are an advantage to you, there are no barriers to
continuing to benefit from that even if you need to access a wider
ecosystem of tools. It'd be interesting to understand the
performance trade-offs in this: what is the performance of a Lush
algorithm that makes extensive use of its array language, and
how can this performance be maximised using higher-level language
constructs of the sort Lisp encourages?
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><category>language-reference</category><category>lisp</category><category>project:lisp-bibliography</category><guid>https://simondobson.org/2026/04/30/lush/</guid><pubDate>Thu, 30 Apr 2026 14:03:14 GMT</pubDate></item><item><title>The Signal and the Noise: The Art and Science of Prediction</title><link>https://simondobson.org/goodreads/the-signal-and-the-noise-the-art-and-science-of-prediction/</link><dc:creator>Simon Dobson</dc:creator><description>&lt;div&gt;
    &lt;div&gt;
      &lt;img src="https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1645793058l/17874847._SX98_.jpg" style="float: left; margin-right: 10px"&gt;
      &lt;h2&gt;
	Nate Silver
	  (2012)
      &lt;/h2&gt;
    &lt;/div&gt;
    &lt;p&gt;
      An essential book for anyone concerned with "big data" or any aspect of science of forecasting. Silver casts an experienced (and somewhat jaundiced) eye over a range of commonly-encountered forecasts, including politics (his own main area), poker, finance, and climate change. In each area he manages both to convince that forecasts can be made to good effect -- and to demolish many of the current practices one finds in these areas. On the way he discusses Bayesian statistics, the psychology of a good forecaster (be a "fox," not a "hedgehog"), how to spot bias, and gives some critical advice that would be of useful to anyone looking to apply such techniques. Should be required reading for all science PhD students.
      &lt;/p&gt;&lt;p&gt;
	5/5.
	  Finished Tuesday 17 February, 2026.
	&lt;/p&gt;&lt;p&gt;
	  (Originally published on &lt;a href="https://www.goodreads.com/review/show/651003528?utm_medium=api&amp;amp;utm_source=rss"&gt;Goodreads&lt;/a&gt;.)
  &lt;/p&gt;&lt;/div&gt;</description><category>bonanza</category><category>books</category><category>reviews</category><guid>https://simondobson.org/goodreads/the-signal-and-the-noise-the-art-and-science-of-prediction/</guid><pubDate>Tue, 17 Feb 2026 11:01:38 GMT</pubDate></item></channel></rss>