Keepalive doesn't quite do the right thing -- you'd like to be notified
*early* if a connection is broken, not when you do a write (although the
latter could be useful if you just wanted early feedback that the connection
is bad).
Change dp_send so that it takes the same arguments as puts

Use tk 4.0 event handling (fileevent, remove dp_after, dp_waitvariable, etc).
Better handling of binary data.  Possibilities:
  o Buffer command to hold the data
  o vprintf style command for parsing the data.
Better C langauge API
Change dp_RPC semantics to correctly handled multiple RPC's on
  the same socket.
     Case 1) A RPC B; B RPC A; A RPC B
     Case 2) A RPC B; B RDO A; A RPC B
  In case 1, the order of replies on the socekt is fixed (a stack will
  work).  In case 2, the order is unpredictable.  So we need sequence
  numbers on the RPCs.
Some way to allow asynchronous connects.  For example, write a "web
  finder" script to run locally that simply cycled through all the local
  addresses and tried to connect to port 80 or 8080. The script is
  trivial, it is just that dp_connect waits for ages if the host is not
  there so it is impractical to run the script. You can do it in C of
  course.

Improve name server implementation.  Right now, to launch a service,
the client calls ns_Launch and then polls the server.  A better
way is for the client to call ns_Launch and then issue a blocking
RPC, which the server unblocks when the service advertises itself.
With launchd, should get starting of new processes down to about 0.1
seconds.

Better handling of command line flags to dpwish
Make sure Tcl-DP co-exists with blt, incr tcl, and tcl-X
Make sure Tcl-DP installs in a non-development mode.  That is,
I should be able to set DP_INCLUDE, DP_LIB to "." and only install
dpwish , the man pages, and the tcl libraries.
Launch server should be a shell script.  It'll start *much* faster.
