Dear Levy,

> “Programs must be written for people to read, and only incidentally for
> machines to execute.”
> -- Hal Abelson, Structure and Interpretation of Computer Programs
>
As Henry Baker put it (long afterward), "[A] Computer [programming]
language is inherently a pun -- [it] needs to be interpreted by both
men & machines."

> I think people working on a complex program
>  - have different [...]
different points of view. And even the same person has multiple points
of view at different moments.

> I think people need better tools that provide different presentations of the
> same complex program [...]
I like to call them points of view.

I suppose you are familiar with the work of that other Hungarian guy,
Charles Simonyi, on Intentional Programming. Our common friend Attila
L. worked briefly with him. That was his general idea, and he still
has working prototypes (he's also very much a proprietary software guy
and a control freak).

> Without going into too much detail on what becomes possible when programs
> are stored in domain specific data structures [...]
Yes, yes, yes, but to beat a good text editor like Emacs, you have to
fight this phenomenon identified long ago by Alan Perlis: "It is
better to have 100 functions operate on one data structure than 10
functions on 10 data structures."

Your super structure editor will have work that grows super-linearly
with the number of points of views that you're interested in and
number of non-trivial bridges between them. That's a lot of work, and
it soon requires many people, who are non-trivial to coordinate.

A good text editor can can in constant programming time improve all
the points of views at the same time, and delegate the finer
non-trivial details of bridging to the human imagination. That
requires fewer people with loose coupling.

It might not be impossible to beat the text editor, but that'll be
mighty hard, and probably very domain-specific. Doing it will a
committed person at the heart who has a good architectural vision that
makes sense and attracts hackers, can maybe communicate it well enough
to convince other people to join, but surely knows how to coordinate
hackers, at la Linus.

> data structures should be able to represent any desired state such as 
> partially invalid program in textual notation.
>
That's an essential insight indeed. It should be possible to start
thinking according to one point of view without having to keep
coherence with other points of view at all times. But then, how does
your system reconcile things? What if two people edit at the same
time, breaking different invariants? Soon enough, you'll find you need
version control, transactions, schema invariant enforcement, and
tracking of temporarily broken invariants (where "temporary" all too
often means "till death do us part").

> Wiki: https://github.com/projectured/projectured/wiki
> Project home: http://projectured.org/
>

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Intentions are not so much direct descriptions of actual mind processes as
Schelling points in the way social animals communicate.
_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to