[e2e] 0% NAT - checkmating the disconnectors

Vadim Antonov avg at kotovnik.com
Wed Feb 22 13:52:43 PST 2006


On Wed, 22 Feb 2006, David P. Reed wrote:

> Does anyone have any good thoughts on how to collectively create the 
> next generation *Inter* Net - one that actually provides the 
> interoperability that all of us old codgers dreamed was possible when 
> Licklider, Taylor, Englebart, etc. first imagined it and Vint Cerf and 
> Bob Kahn made it happen?

I do, but it involves some rather drastic changes in the way software is 
designed.  And, no, I didn't figure out how to make an economic case or a 
viable business plan out of that.

The problem, by far, is not in the Internet itself, but in the fact that 
the end-systems are, frankly, a pile of badly designed and hastily 
slapped-together manure.

The proprietary software development, dependent on the intellectual
"property" (which is not property, but, rather, government granted
monopoly privilege) protection, is in many aspects driven by the need to
preserve the loot brought to the privilege holder by the protection.  It
is totally unrealistic to expect any such development to be concerned with
interoperability with competitors and such, or with competing on quality - 
after all, once the privelege rights are obtained by locking-in the 
customers, there's no further reason to improve.

The "bazaar" model is somewhat better but, being mostly ego-driven and
dependent on final-product contributions from obviously inexperienced
professionals-in-training (show me a real professional working in the
industry on the product-delivery track who actually has time to do free
software) and amateurs, seems to be very good at producing mountains of
garbage conisting of countless variations on similar simple themes.

We have abandoned any pretense of software production being scientific,
and reverted to artisan attitudes, and thus made it impossible to
accumulate experience and knowledge in a way immediately accessible and
useful to other practitioners (we even sunk to the point of being
incapable of replicating older achievements -- watch the FAA systems
upgrade saga). It is painful to see generation after generation of bright
young software jockeys doing exactly the same old mistakes.  Of course,
the evolution will take care of improving things, but it is bound to be
very slow.

There weren't any truly groundbreaking ideas in the software industry for
a decade, at least.  What we have instead are 30-year-old technologies
being embellished and bloated by featuritis.  By and large, the
state-of-the-art approached the state-of-a-garbage-dump - which,
undoubtly, contains a lot of useful and valuable pieces, but which is so
full of junk that it makes is easier to make a new piece than to find an
old one fitting the purpose - thus adding to the ever-growing mountain of
irrelevant, partially working, and incomplete (and, yes, insecure).

And taking a potentially interesting idea and making it into a useful
product involves years of hard mind-numbing labour; every time repeating
the steps of building from the ground up. I wish I didn't have to write a
doubly-linked list (just to give an example) hundred times over the last
twenty years just to work around intellectual "property" protections,
language ideosyncracies, library compatibility issues, different languages
and simply because it is faster to do so than to use baroque templates.
Thus, many good ideas are simply abandoned: very few people would be
prepared to put in the years of their life (and have the ability to
survive these years with no income) into a pursuit of an idea.

So... how about a culture shift? An ascetic religion, perhaps, which
dictates that the high virtue is quality improvement, simplification and
generalization rather than hacking away?  Something which makes improving
productivity of software design a worthier goal than delivery of the
end-product? A culture which measures worth of a professional not by the
amount of new stuff he built but by the amount of trivial coding and
trivia learning he eliminated? Valuing coherent general explanations and
designs over data and code? Discipline and precision over creative energy
and unfettered fantasy? Science, not art.

I do have some ideas on specific steps in that direction (so, apparently,
do many other people... and some corporations even flirted with trying to
get there, although these projects were quickly perverted and destroyed by
the corporate politics and short-termism).  I'm also keenly aware that any
efforts in this direction will not be able to pay for themselves for many
many years (if ever), are uncertain, and can be susustained only by faith
and belief into the transcendent value of beauty and truth themselves.

Anyone wishes to donate to the establishment of the new software
religion?

--vadim



More information about the end2end-interest mailing list