Personally, I think this idea is a bad one, that will come back to bite
people hard- but I doubt anyone is going to listen to me.

If you serialize the code (either in lisp s-expression form, or java byte
code), you can easily end up serializing most of the whole program.  See,
serialization isn't a bi-directional protocol, there's no way for the
recipient to say "OK, I've got that code, you don't have to send it".  So to
serialize a function, you have to serialize all the functions it depends
upon, and then all the functions the depended-up functions depend upon, and
so on.

Depending upon the code already being in the recipient's program simply
creates a very specific dependency.  This serialized file or stream can only
be read with this precise version of the code.  Make a small change, and
whomp- old files can't be read, and you can't communicate with older version
of the code- because they want you to call function foobar__57, and you
don't have foobar__57, you have foobar__59.

And in clojure, it's very easy for closures to sneak into your data
structures.  Got a lazy list?  It's got a closure.  Got a tree map or set?
It's got a closure.  And so on.

Now, get off my lawn.

Brian

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to