On Mon, 07 Nov 2011 11:40:39 -0500, Helmut Eller heller@common-lisp.net wrote:
- Hugo Duncan [2011-11-07 13:56] writes:
This makes the messages less easy to inspect, and less easy to write integration tests for.
Only marginally. Shifting 3 bytes together is not exactly rocket since.
It isn't rocket science, but does remove the possibility of visual verification, and of being able to send messages via scripting or a simple console. HTTP, SIP, SMTP, and STOMP are all good examples of protocols with text headers, and I think appropriate, if one looks at swank as a sort of control protocol.
If HTTP is so great then why are WebSockets specified as a binary protocol?
The websockets protocol has text headers: http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17
Given this is a breaking change, I also see the desire to introduce an extension mechanism at the same time. I would argue a text based header/value extension would be more appropriate.
A fixed sized header is a clear efficiency win. It's also easier to implement.
The efficiency difference is negligible, imho. The implementation isn't any easier in clojure at least.
At the end of the day, I realise the balance between the respective merits of binary and text headers is somewhat subjective.
Yes, it's also rather academic as there are only 2 or 3 people that need to debug this.
Being one of these people, it effects me [1]. As you say, it is not rocket science and I have a working version with the new protocol. For what it is worth, I still think it is the wrong direction.