This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
I am sitting here trying to translate Python into Guile. It has reminded me why I love the Scheme/Guile/Lisp language, or at least the external representation. It is clean, formally specified and consistent... Which reminds me. A lot of the focus for Guile is as a extension language but there is an overlooked strength in the language and that lies in its ability to be a communication protocol/RPC implementation. The Scheme external representation can be used as an inter-process, inter-system and inter-platform protocol. Its strengths are: Builtin message delimiting, with the list parenthesis. Platform independent data representation. The OSI Presentation Layer bombed because of the complexity of representing external types across platforms and language specifications (i.e. ASN.1) . The CORBA spec also goes to great lengths specifying language bindings. You can use the builtin read/eval/print procedures by providing ports that allow interprocess communications. You automatically have RPC functionality, with hardly any code added to a Scheme implementation. An application sends a message which is eval(ed) by the peer. The protocol allows one to extend the functionality of a peer (by defining new procedures in the peer) without having to revise the communication specification. Using this you could reduce the bandwidth between peers by creating high enough abstractions. The caveat being that the core functions are sufficient. However with ffi abilities even this can be got around. The protocol is readable by human beings. I have spent many hours in front of protocol analyzers puzzling out a communications link. In addition, other possibilties are: that a program could move its whole self for execution on a different system as it needed different resources, etc. Of course issues like these need security measures, but with certificates, encryption and such this type of communications could be made secure. Wade.