[
Lists Home |
Date Index |
Thread Index
]
On Wednesday 26 February 2003 03:17, Tim Bray wrote:
> The reason XML has taken off is that generation after
> generation of attempts to interoperate at the datamodel/API level has
> either failed or provided poor price/performance.
What makes you say that?
I think TCP/IP works rather well, as does the phone network.
> Syntax is a
> qualitatively, consistently, dramatically better basis for
> interoperation; desires to interoperate at the data model level, no
> matter how reasonable, are apt to remain unfulfilled for the foreseable
> future. -Tim
Hahah!
When I use a phone, I press buttons on the thing or generate my own DTMF
tones from a gadget, and I speak into a microphone. There are a number of
different electrical interfaces that can lead from my home into the phone
network to implement that, from an analogue line that is little more than a
transduction of my DTMF tones and voice into electrical waves to ISDN that
moves the dialing out of band and encodes my voice digitally, or more exotic
framings used by cable telephone companies.
With that *interface* I can reach phones all over the world - in a lot of
different countries with different phone systems - and I can interact with
systems that do not use the same interface as my phone, even; when I dial an
automated line my voice is probably processed entirely digitally.
Likewise, with TCP/IP, I use the sockets API. Deep beneath it my packets
might be being carried over PPP, or Ethernet, a loopback interface, or SOCKS,
or TLS. The only guarantee I have is that my string of data will arrive at
the other end; all sorts of stuff can happen to it en route, and the header
information I supply as source and destination IP and port numbers can be
remangled in various ways without me needing to care.
There are syntactic standards involved - when running TCP over Ethernet, the
TCP, UDP, ICMP, IP, and Ethernet frames are standardised. But between two
routers on a point to point link there is more variety; SLIP and PPP, to
start with. And if my sockets library is being backed by a SOCKS
implementation then those TCP, IP, and so on headers only come up when the
underlying SOCKS connection itself is made.
There are a bunch of syntactic standards that make up the individual *links*
of the Internet, but thanks to the abstracting APIs involved, I don't care
which ones are used to carry my data; it just works. Indeed, if my system is
running on a primarily IPv6 network, then it could be emulating TCPv4 in
TCPv6 without me being any the wiser. *shrug*
If the Internet was stuck to a syntactic standard, with applications making
up their own Ethernet or PPP frames as they see fit, would it have succeeded?
ABS
--
A city is like a large, complex, rabbit
- ARP
|