Hah, wrong button. Sorry all! Meant to hit forward, as I really enjoyed
this one and wanted to share it:)

On Tue, Jan 1, 2013 at 6:40 PM, Casey Ransberger
<casey.obrie...@gmail.com>wrote:

> Read this guy!
>
> On Tue, Jan 1, 2013 at 7:53 AM, Alan Kay <alan.n...@yahoo.com> wrote:
>
>> The most recent discussions get at a number of important issues whose
>> pernicious snares need to be handled better.
>>
>> In an analogy to sending messages "most of the time successfully" through
>> noisy channels -- where the noise also affects whatever we add to the
>> messages to help (and we may have imperfect models of the noise) -- we have
>> to ask: what kinds and rates of error would be acceptable?
>>
>> We humans are a noisy species. And on both ends of the transmissions. So
>> a message that can be proved perfectly "received as sent" can still be
>> interpreted poorly by a human directly, or by software written by humans.
>>
>> A wonderful "specification language" that produces runable code good
>> enough to make a prototype, is still going to require debugging because it
>> is hard to get the spec-specs right (even with a machine version of human
>> level AI to help with "larger goals" comprehension).
>>
>> As humans, we are used to being sloppy about message creation and
>> sending, and rely on negotiation and good will after the fact to deal with
>> errors.
>>
>> We've not done a good job of dealing with these tendencies within
>> programming -- we are still sloppy, and we tend not to create negotiation
>> processes to deal with various kinds of errors.
>>
>> However, we do see something that is "actual engineering" -- with both
>> care in message sending *and* negotiation -- where "eventual failure" is
>> not tolerated: mostly in hardware, and in a few vital low-level systems
>> which have to scale pretty much "finally-essentially error-free" such as
>> the Ethernet and Internet.
>>
>> My prejudices have always liked dynamic approaches to problems with error
>> detection and improvements (if possible). Dan Ingalls was (and is) a master
>> at getting a whole system going in such a way that it has enough integrity
>> to "exhibit its failures" and allow many of them to be addressed in the
>> context of what is actually going on, even with very low level failures. It
>> is interesting to note the contributions from what you can say statically
>> (the higher the level the language the better) -- what can be done with
>> "meta" (the more dynamic and deep the integrity, the more powerful and safe
>> "meta" becomes) -- and the tradeoffs of modularization (hard to sum up, but
>> as humans we don't give all modules the same care and love when designing
>> and building them).
>>
>> Mix in real human beings and a world-wide system, and what should be
>> done? (I don't know, this is a question to the group.)
>>
>> There are two systems I look at all the time. The first is lawyers
>> contrasted with engineers. The second is human systems contrasted with
>> biological systems.
>>
>> There are about 1.2 million lawyers in the US, and about 1.5 million
>> engineers (some of them in computing). The current estimates of
>> "programmers in the US" are about 1.3 million (US Dept of Labor counting
>> "programmers and developers"). Also, the Internet and multinational
>> corporations, etc., internationalizes the impact of programming, so we need
>> an estimate of the "programmers world-wide", probably another million or
>> two? Add in the *ad hoc* programmers, etc? The populations are similar
>> in size enough to make the contrasts in methods and results quite striking.
>>
>> Looking for analogies, to my eye what is happening with programming is
>> more similar to what has happened with law than with classical engineering.
>> Everyone will have an opinion on this, but I think it is partly because
>> nature is a tougher critic on human built structures than humans are on
>> each other's opinions, and part of the impact of this is amplified by the
>> simpler shorter term liabilities of imperfect structures on human safety
>> than on imperfect laws (one could argue that the latter are much more of a
>> disaster in the long run).
>>
>> And, in trying to tease useful analogies from Biology, one I get is that
>> the largest gap in complexity of atomic structures is the one from polymers
>> to the simplest living cells. (One of my two favorite organisms is 
>> *Pelagibacter
>> unique*, which is the smallest non-parasitic standalone organism.
>> Discovered just 10 years ago, it is the most numerous known bacterium in
>> the world, and accounts for 25% of all of the plankton in the oceans. Still
>> it has about 1300+ genes, etc.)
>>
>> What's interesting (to me) about cell biology is just how much stuff is
>> organized to make "integrity" of life. Craig Ventor thinks that a minimal
>> hand-crafted genome for a cell would still require about 300 genes (and a
>> tiniest whole organism still winds up with a lot of components).
>>
>> Analogies should be suspect -- both the one to the law, and the one here
>> should be scrutinized -- but this one harmonizes with one of Butler
>> Lampson's conclusions/prejudices: that you are much better off making --
>> with great care -- a few kinds of relatively big modules as basic building
>> blocks than to have zillions of different modules being constructed by
>> vanilla programmers. One of my favorite examples of this was the "Beings"
>> master's thesis by Doug Lenat at Stanford in the 70s. And this influenced
>> the partial experiment we did in Etoys 15 years ago.
>>
>> There is probably a "nice size" for such modules -- large enough to both
>> provide and be well tended, and small enough to minimize internal disasters.
>>
>> An interesting and important design problem is to try to (a) vet this
>> idea in or out, and (b) if in, then what kinds of "semi-universal" modules
>> would be most fruitful?
>>
>> One could then contemplate trying -- inducing -- to get most programmers
>> to program in terms of these modules (they would be the components of an
>> IDE for commerce, etc., instead of the raw programming components of
>> today). This tack would almost certainly also help the mess the law is in
>> going forward ...
>>
>> Note that desires for runable specifications, etc., could be quite
>> harmonious with a viable module scheme that has great systems integrity.
>>
>> Cheers,
>>
>> Alan
>>
>>
>>
>>
>>
>> _______________________________________________
>> fonc mailing list
>> fonc@vpri.org
>> http://vpri.org/mailman/listinfo/fonc
>>
>>
>
>
> --
> Casey Ransberger




-- 
Casey Ransberger
_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to