Like Kaj, I've decided 0MQ is a better way to go at this point.
Taking on this, I'm a bit fan on the BEEP protocol building framework. It offers some higher level features thatn 0MQ.
I always thought it's a very cool (maybe even a killer feature) to build such an application protocol framework right into R3. So, when you want to do P2P, Client/Server etc. and use R3 on both ends, you just use this BEEP stuff and all networking problems are gone.
I'm still convinced that it makes a lot of sense.
That was also kind of idea of Uniserve, upon which Cheyenne is built. Maybe a bit inspired in Python's Medusa. All protocols are hot plugs IIRC. I too think, that some kind of general mechanism, upon which various (app) protocols could be built, would be fine. In that regards, I found R3 Chat being a step back, not forward ...
And I wouldn't do all the low-level stuff in Rebol but on the C side.
Didin't Ladislav write BEER a long time ago?
Yes, in Rebol. With a lot of problems.
I don't know if it was standard conform or just a fork of the idea.
I don't either. Probably have an old copy somewhere here. Lad's stuff has been offline for a while I think.
I think I liked the idea of a way to build protocols like PARSE lets us build DSLs, but never got it to stick for me.
I would not try to overcome port mechanism, whatever it takes. If there are bugs, those should be fixed. Well, it might be an extension (which is C). We will see, how Red IO turns out, once out ...
I don't like to port model that much. Might be because I never digged deep enough into it. But trying to generalize IO with a common API or model was tried in several other enviironments and all I know failed.
IMO putting network stuff to a higher level makes sense. Much higher level so that I can think of it in sending things back and forther and that's it.
Have you looked at 0MQ? It's basically send/receive, with socket types that have semantics (req/rep, pub/sub, push/pull).
0MQ looks like that on the surface and in the marketing, but when you start making real systems, you have to do a fair bit more
The problem with those network abstractions is that there quickly are reasons you have to poke under the hood
Have you found something better? It's all about tradeoffs, right?
Now I'm tickled
Kaj, maybe I should ask, instead, what poking under the hood you've had to do. I'm not stressing 0MQ in my work (very low message rates, largely for IPC), but some other work I did with it a few years ago hit it much harder and was still very easy to do.
Most simple examples, and what most people start with, is request/reply, but this quickly becomes useless in real-world situations