I don't feel the async calls to networking API are a burden. I also have a
strong dislike of lock'ing from Java, so I don't feel particularly
enthusiastic about your example, but I can also see how this would be a
common thing to do. Think of what happens if your first call ends up in an
error? - will the lock be released? - if so, maybe the second part of the
code shouldn't be executed? Or maybe it should? and so on. Well, it is too
early to speculate about how the threading may look in AS3, but if I could
have a wish, I'd rather it be done in a way it is in Erlang, then Java
because it makes concurrency problems easier to spot / more similar to
events we already have in Flash.

If there is any improvement I wish for Flash networking API it would be
consistency. There is a handful of classes all having load() methods, but
impossible to abstract because the signature of the load() is different
(invariant types of context that is passed as a second argument). The
division of responsibilities of the said classes is lacking structure. Some
of them may be able to do the same thing, while not even being in any sort
of relationship one to another.
I'd be happy if Flash API followed more fairly the definitions of protocols
they implement and provide some sort of abstraction to that. S.t. for
example there would be an HTTP class that can connect, disconnect and
expose the stream, while connected, similarly, RTMP class etc, all either
inheriting or implementing the same superclass / interface.

I don't know what's the purpose of Flex RPC packages. So, I don't really
have an opinion on async tokens and such. That always seemed to me to be an
attempt of adding yet another layer of indirection on top of something that
already has few such layers.

Best.

Oleg

Reply via email to