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