Commit 9967e000 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Redid my conclusion paragraph.

parent 94424e39
......@@ -1039,10 +1039,6 @@ corresponding to operating on the composite component
does not wrap {\em around} the {\step}s involving its constituents,
but is only a synchronization mark scheduled {\em after} all of them;
The {\perform} method over such an {\step} does nothing.
This foils the common desire of {\ASDF} system definers
to define {\around} methods for {\perform} that would e.g.
allow one to bind a dynamic variable (such as \lisp{*readtable*})
around all of the loading done to a module or system.
So, in {\ASDFi}, if one was to (compile and) load system
\lisp{test-module-depend}, touch \file{file2.lisp},
......@@ -1057,6 +1053,17 @@ although according to the maybe more intuitive model,
the answer would be ``no''
(there are effects required to compile the constituents of that module).
This foils the common desire of {\ASDF} system definers
to define {\around} methods for {\perform}.
Such methods could for instance
bind a dynamic variable (such as \lisp{*readtable*})
around all of the loading done to a module or system,
or establish some handler to catch common conditions,
or build and check some datastructure based on
effects of operating on sub-components (e.g. exported interfaces).
Currently, such things have to be done inside each source file,
or by specializing the class of the source files in the module.
Trying to fix composite dependencies in {\traverse}, therefore,
opened a big can of worms.
The rule of good engineering that {\ASDF} fails to adhere to is,
......@@ -1494,40 +1501,30 @@ does not work for others using their new classes.
\section{Conclusion}
\label{sec:conclusion}
%%\rtof{I cut the following because as I read it, I realized that the claims are true
%%of any program in a Turing-complete language. I added a new sentence that I
%%HOPE catches your meaning.}
%%\ftor{ That was the point indeed --- I wanted to bring home a general
%% truth about software in general. Few of our readers care much about ASDF in particular.}
% There is nothing one can do with {\ASDFii} that one couldn't already do with {\ASDFi}.
% For that matter there is nothing one can do with {\ASDFi} that one couldn't do without it.
% The two above statements are trivially proven by noticing that
% before you had {\ASDFi} or {\ASDFii}, you could write it, and then do
% everything you can do with it.
From the point of view of computability,
there is nothing one can do with {\ASDFii}
that one couldn't already do with {\ASDFi}.
For that matter, there is nothing one can do with {\ASDFi},
that one couldn't do without it,
and nothing that any piece of software can do
that one couldn't do by reimplementing said piece of software.
Of course, the implicit assumption above is that of development
by a single notional programmer with unlimited resources.
The whole point of {\ASDF} is to improve software development
in the case of many programmers each with limited resources,
where communication between programmers is costly.
Our ambitions in developing {\ASDFii} were relatively modest, and
indeed the ambitions behind {\ASDF} itself are relatively modest.
Despite this, {\ASDF} has brought something to the {\CL} community that past
system build systems failed to achieve:
%And yet, both {\ASDFi} and {\ASDFii} do bring something useful ---
Despite this, {\ASDF} has brought something to the {\CL} community that
past system build systems failed to achieve:
the ability for developers to cooperate with each other,
using pre-negotiated conventions to share their work and build
larger {\CL} systems across the community
without a shared enterprise or top-down leadership.
% such that they don't each have
% to pay the price of implementing it, and then again
% have to pay the price of synchronizing their interface
% with those of other developers.
% In other words, any piece of software that isn't
% the original solution of a research problem takes its value
% from the economic savings it brings to people who thereby
% don't have to pay the price of rewriting it,
% and don't to pay the price of negotiating an interface
% with other users of similar software.
In revising {\ASDFi} to {\ASDFii} much of the challenge was to do so in ways
that would minimally disrupt this beneficial sharing, and
without centralized coordination.
In revising {\ASDFi} to {\ASDFii} much of the challenge was to do so
in ways that would minimally disrupt this beneficial sharing, and
ideally would further it.
% We hope that the future will show that we succeeded. % \ftor{duh}
Doing so, we were reminded that software is hard, very hard.
Simple ideas can take literally hundreds of iterations to get right.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment