An important quality in trying to “sell” channels is WYSIWYG semantics, first coined so by Peter Welch, I believe, in a letter signed by some of us in 1997 [1]. (Is there any other trace on the net of anything eralier?) Over the years I have tried to show how the SDL [2] type send and forget methodology does not have WYSIWYG semantics and how that relates to maintenance and hidden type of errors etc. I have tried to blog about it [3]. Reading that again now I wonder if this statement is correct:
“If the client sends into a buffered channel, it's still WYSIWYG, since the channel pipe disregarding size is process to process.” I struggle with tagging WYSIWYG semantics to something: 1.
Synchronous non buffered channel (ok). 2.
Safe process-process that sooner or later synchronizes / buffered channel (ok).
3.
Send and forget into potentially infinite buffer pool with one input path only (many-one) (not WYSIWYG).
a.
Same but with application acknowledge messages always (ok).
b.
Same but with return false from MessageSend if buffer pool is full (then polling, since no XCHAN) (not WYSIWYG). Is there a simple way to describe which paradigm has WYSIWYG semantics and which does not? [1] - 1997 letter to Edward A. Parrish The Editor IEEE Computer, see
http://web.archive.org/web/19991013044050/http://www.cs.bris.ac.uk/~alan/Java/ieeelet.html (just wait, it will appear) [2] – SDL
http://en.wikipedia.org/wiki/Specification_and_Description_Language [2] –
http://oyvteig.blogspot.com/2011/12/036-wysiwyg-semantics.html (Mr) Øyvind Teig Senior development engineer, M.Sc. Autronica Fire and Security AS UTC CCS EMEA Fire & Security Operations Tel: +47 7358 2468
oyvind.teig@xxxxxxxxxxxxxxxx http://www.autronicafire.no/ http://www.teigfam.net/oyvind/work/work.html |