axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Conway's Law, Axiom, and Axiom SANE


From: Tim Daly
Subject: Conway's Law, Axiom, and Axiom SANE
Date: Sat, 19 Aug 2023 09:44:29 -0400

Conway's Law[0] basically says that software structure reflects organizational structure.

In the youtube video[1] the argument is made that, despite evolving organizational
changes, the old structure of software remains basically unchanged.

So it appears with Axiom. The Meta language was early work by Dick Jenks.
Portions of the effort still exist in Axiom despite removing the Meta compiler.
So Scratchpad's early organization still shines through.

Since the SANE effort is not a committee design but a single person effort things change.
Except for maintaining certain ideas like Liskov's CLU[2], Jenks/Trager/Davenport/et al.
ideas of group theory scaffolding, category-domain structuring, inheritance ideas, and
algorithms the Axiom SANE effort is a fundamental break from Axiom's past.

SANE is bringing the scaffolding idea to the forefront. It architects the proof technology
as a companion scaffold. LEAN-style definitions, axioms, and proofs are distributed
in parallel with the group theory category structure. The two are intimately connected
but separate. This preserves LEAN proofs yet enables the current code to reference
and inherit the proofs. It also provides a place for LEAN tactic algorithms.

Ultimately an Axiom domain inherits from both scaffolds so a function
not only inherits algorithms, it inherits definitions, axioms, and tactics 
which can be used to prove a domain function is sound.

This break with the past undermines the effort, initially with Meta, then with
boot, to try to construct a surface language like spad. There are a lot of good ideas
for ensuring type safety in spad. However, it doesn't seem possible to add a proof
language by extending spad. Attempts at doing so result in a dead end.

Axiom's spad language is really just a domain-specific language on top of common lisp.
Apart from the inability to include proofs, two key problems are that spad code is not
well specified, making spad-level proofs questionable and that almost no-one speaks spad.

It makes more sense to revert to common lisp. This gives the full power of things like
CLOS and the macro facilities directly rather than "adding paint". A macro language
can mimic most of the features of spad without the struggle to build a compiler.

Axiom SANE keeps the algorithms and the structure but removes the paint.

Tim

[0] Melvin Conway "How Do Committees Invent"
https://www.melconway.com/Home/pdf/committees.pdf

[1] Conway's Law (youtube) https://youtu.be/5IUj1EZwpJY?t=1791

[2] Barbara Liskov CLU
https://en.wikipedia.org/wiki/CLU_(programming_language)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]