[r6rs-discuss] Thoughts on Scheme's Future
Joe Marshall
jmarshall at alum.mit.edu
Fri Sep 4 15:04:08 EDT 2009
> On Thu, 27 Aug 2009 03:06:18 -0400, AntonioV <antonio.vieiro at gmail.com>
>> I don't think any Scheme
>> user is "resistant" to have a standards-compliant "sockets" (XML/
>> Threads/etc) library!!
I am.
To give one example, a network package modeled upon Berkeley sockets is
far too primitive and low-level. I don't even want to *know* about that kind of
detail. I've seen far, far too many network programs that screw up because
it is rather difficult to write a good network program when all you have is
tin cans and string (that haven't even been tied together yet!).
Here's what I want: if I'm using a network, I'm probably either
writing a client or
server (or peer). There is a protocol to be followed (likely it has
been standardized).
I want to say very simply ``connect to that machine, use this protocol, and
perform this action''. I do *not* want to allocate a SOCKADDR_IN, memset it,
setsockopt( TCP_NODELAY), gethostbyname(), select() read bytes, etc.
Similarly with threads. These are a disaster. It is very hard to program with
concurrency. It is harder still if your concurrancy mechanism is something
as primitive as a thread. In nearly every implementation of Common Lisp
I've worked on, they've made major errors in concurrency control. And these
are the *vendors*. The users have no hope of getting it right.
I don't know what the correct solution to concurrency is, but I'm sure we
can do better than a thread library.
--
~jrm
More information about the r6rs-discuss
mailing list