> Broadly speaking, that's [rio running inside rio] the essence of Rio. i have lately investigated the code of rio, devdraw and memlayer and understood a bit the historic connection to bitblt, etc., and i've been wondering lately where statements like above, which i have heard before, come from.
they makes no sense to me, that rio nesting feature seems like an afterthought and involves a lot of back and forth which isn't just inefficient, but extremely inflexible! there isn't just a perceived lack of symmetry, direction of information flow is unordered and opposing the common need. there are lots of layer violations and no actually transparent understandable interface. the documentation is thus also scattered all over those components that are divided into non-obvious non-coherent layers. if you knew bitblit it makes more sense, but if you just start (like me) with modern plan9 proper, consuming the documentation is hard unless you accidentally stumbled over some descriptions of the historic progressions, which did seem like a viable excuse for this clutch that is rio. this old stuff (before rio) must have been the most latency-sensitive, and bandwidth-constrained piece that had obvious immediately experienced effects for user interactions. it makes total sense that bitblit protocol is quite powerful (for the time) and a lot of stuff is done efficiently in hardware. i can only assume that the developers knew about the historic debt and why rio can never be truly elegant as many people (still) advertise, and that seems to me to be the reason why both sam and rio include their own incomplete window management that isn't integrated with anything else in the system in any meaningful way. other reasons might have been that the system suddenly included drawterms on windows NT, unixes, macbooks, etc., and inferno, and nowadays especially plan9port seems to be more important to most 9fans people than the underlying operating system itself. so why make another window manager for plan9 if you can make a new theme for windows95 or ubuntu or whatever instead... please contest me on my ranty points above, i really would like to see the real reasons, i'm sure i cannot imagine most of the historic progression and reasoning. i'm a small kid and i grew up with very high bandwidth hardware, so... enlighten me please. and definitely stop this myth about rio being so elegantly nested. (ask yourself: why does rio need to read the mouse file in order to be informed about resize events in order to ask for a new window name in order to attach to the new resize image's window in order to redraw to the correct size?)
