From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,38fc011071df5a27 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-05-29 10:09:11 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!snoopy.risq.qc.ca!news.uunet.ca!nf3.bellglobal.com!nf1.bellglobal.com!nf2.bellglobal.com!news20.bellglobal.com.POSTED!not-for-mail Message-ID: <3ED63B23.5040308@cogeco.ca> From: "Warren W. Gay VE3WWG" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Ideas for Ada 200X (Ada.Sockets) References: <6a90b886.0305262344.1d558079@posting.google.com> <3ED4A94C.2020501@noplace.com> <3ed4c9a2@news.wineasy.se> <3ED4EB4E.6050108@cogeco.ca> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Date: Thu, 29 May 2003 12:53:55 -0400 NNTP-Posting-Host: 198.96.223.163 X-Complaints-To: abuse@sympatico.ca X-Trace: news20.bellglobal.com 1054227235 198.96.223.163 (Thu, 29 May 2003 12:53:55 EDT) NNTP-Posting-Date: Thu, 29 May 2003 12:53:55 EDT Organization: Bell Sympatico Xref: archiver1.google.com comp.lang.ada:38005 Date: 2003-05-29T12:53:55-04:00 List-Id: Tarjei T. Jensen wrote: > Robert A Duff wrote: ... > One could also add a layer to the socket library in order to simplify socket > programming for ordinary mortals. e.g. add a tcp client and server library. > This is not supposed to be something fancy; just something that hides the > ugly stuff and works reasonably well and with no surprises. > > How simple should such a library be? Just four procedures: open_tcp_client, > open_tcp_server, read_tcp, write_tcp. That's it. The latter should ideally > be just aliases for more general read and write procedures/functions. In fairness, there is more to sockets than just that. Consider: - What about UNIX sockets? - On UNIX sockets: - what about sending/receiving user credentials? - what about sending/receiving open file descriptors? - what about other out-of-band data? - What are the name services APIs provided? - How are name services choices and errors handled? - Do you support Ada streams on the socket(s)? - Are Ada streams buffered for better performance (note earlier threads about the abysmal performance of some T'Write() operations). - Does Ada streams I/O convert to endian neutral network formats (a la XDR routines for RPC?) - What about UDP and lower level IP services? - What about raw socket services? - What about authentication? SSL? Kerberos? I am not saying it shouldn't be done, but I think you've overly trivialized it. 8-) I think most people would settle for a good TCP level API for applications. But this would need to include naming services at a minimum, and ideally Ada streams with endian neutral I/O to be truly useful. It would also be useful for Ada0X to include some extensions to the distributed annex to consider standard ways to authenticate. This is perhaps one of the biggest thorn patches for distributed computing in hostile environments. I would love to see SSL (perhaps) as a builtin selectable option for the channel filter for example. -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg