Daniel, Not an elaborate joke. It's trying to provide a safe middle ground between "Stuff JSON in <body/>" and "Write your own extension", and the need is based very firmly on evidence from multiple cases of people outside this community trying to use our product and failing.
sjaakhas left
dwd
Daniel, So yeah, it sucks, but it sucks less than what people do now.
sjaakhas joined
pep.
dwd, isn't the answer "teach these devs that XML is extensible"?
dwd
pep., How?
pep.
I don't know, just say that
pep.
"XML is extensible"
dwd
pep., Genuine question. Because whatever we're doing now isn't working. Most of the examples I've been told are in confidence, but I can be quite open about how my employer used (and misused) XMPP before I came along.
pep.
I really don't see the point of this XEP
pep.
Maybe what we need is dev docs, not weird extensions
dwd
pep., Did you read the thread between me and Marvin?
pep.
yes
pep.
(admittedly I'm still a walking zombie from CCC-induced sleep depravation)
lovetox
dwd, your argument was, xmpp libs provide set_body() set_subject(), but not set_my_random_extension()
mathijshas joined
lovetox
correct me if im wrong
dwd
pep., OK. I can assure you that the folks who worked on our app aren't stupid, do read docs, and so on. But they also thought the simplest and fastest way to get custom messages into XMPP was to stuff JSON into the body tag.
dwd
lovetox, Not quite. My argument was that people do this stuff. My proposed solution is that we give them a very very low friction path to doing something slightly less sucky.
pep.
dwd, and you assume they'll find this new XEP just like they found the hundreds of others that were using custom elements? :)
lovetox
pep. they find the docs of the xmpp libs
lovetox
and the xmpp lib, provides, set_custom_json_payload
lovetox
or something
dwd
pep, Nope, which is why I think that for success, it needs to be a recognisable API in libraries.
lovetox
because it implements the xep
dwd
lovetox, That, yes.
pep.
Well you can have a library provide this API without actually having a XEP for it. It's all non-standard anyway
dwd
pep., But the library's implementation needs to be interoperable with another's.
lovetox
i understand what you are trying to say, but this seems all very werid, we seem to talk about developers that totally ignore what xml is and how it can be used
dwd
lovetox, Yes. Exactly.
lovetox
and there is no xmpp lib in the world that does not have a api to add a node under body
dwd
lovetox, Give me 100 developers, and we'll find maybe one that understands basic XML.
winfriedhas left
winfriedhas joined
lovetox
not under body, under message i meant
lovetox
really? ok im not in the software dev industry, so i dont have experience what devs know usually
dwd
lovetox, Sure, we could stuff in a generic element maybe. Though the API radically changes between libraries, and listening for it would also change.
dwd
lovetox, Developers tend to understand JSON - they get the exposure. Very few people use XML these days.
lovetox
ah, yeah thats a better point :)
lovetox
so basically you could use these libs and xmpp, without knowing a single thing about xml
dwd
lovetox, Yeah, that's the idea.
dwd
lovetox, You can already, mind, it's just that for these custom cases you tend to make design choices that suck later.
dwd
lovetox, Like we did. ALso other cases that I know you've heard of but I was told in confidence.
winfriedhas left
winfriedhas joined
Lance
I remember quite clearly my experience first building things in XMPP. I stuffed json payloads in messages because I could do _that_ in the first days before really figuring out what exactly an IQ stanza is, etc. And even more, I could use my existing IM client as a 'console' of sorts to act as a REPL without needing to build something custom.
lovetox
yeah i understand, if they want to extend xmpp, they suddenly need someone who knows his shit about xmpp
dwd
lovetox, Oh, no. It's worse than that.
lovetox
for us its quite natural to just add a node under message and say we extended with a custom element
dwd
lovetox, They extend XMPP just fine, but they do so in a way that isn't sustainable.
lovetox
but coming with no expierience, i wouldnt know if this is allowed, i would need to read the xmpp standard
dwd
lovetox, RIght - anyone who ever reads that XEP is not the target audience for the API. :-)
lovetox
yeah gottcha :)
mukt2has left
pep.
dwd, do you actually need library compatibility? I mean, why not, but this proprietary protocol that unknowing devs created would probably be used only internally. If they want to expose that then maybe they'd think twice.
pep.
I thought I was thinking application devs shouldn't be required XMPP knowledge, but maybe it's time for me to revisit the idea. This XEP just feels wrong
dwd
pep., Library compatibility for UDT? Sure. We use two entirely different XMPP libs in our case - Smack and XMPPFramework. If these don't provide a similarish API to do this then people will just carry on what they're doing - stuffing JSON into body and wrecking the extensibility.
dwd
pep., I mean, you could also do a meta-extension like Marvin suggests, but I think that's harder to specify, and you definitely couldn't do XPath.
winfriedhas left
winfriedhas joined
dwd
pep., Oh, and the XEP *is* wrong. For you, for me, and for anyone else that reads it.
pep.
Also, why only JSON
pep.
What about all other serialization formats
pep.
Do I need to define another udt
winfriedhas left
winfriedhas joined
lovetox
i think json is just an example
Daniel
Isn't the problem that libraries don't make it easy and obvious how to create extensions?
murabitohas joined
serge90has left
Daniel
For example I find babbler does a good job and explaining fairly early on in its documentation how to do that
Daniel
And if the xeps goal is to change libraries. Can we not just have them do that
sjaakhas left
sjaakhas joined
sjaakhas left
sjaakhas joined
serge90has joined
mukt2has joined
winfriedhas left
winfriedhas joined
lovetox
yes if every library adds a set_custom_extension() method, this would serv the same purpose
debaclehas left
lovetox
but libs tend to implement XEPs
lovetox
but yeah actually no lib that i know has this
pep.
Slixmpp allows the user to define new extensions by using classes. Might not be perfect and possibly confusing, but that's one way to do it
pep.
(Well, sleekxmpp allowed*)
lovetox
funny, im using a xmpp lib, and it gives me no method or api to Extend the extensible protocol
lovetox
only XML api
lovetox
and i use a xmpp lib to abstract the XML stuff away in the first place
dwd
FWIW, later work on our codebase added custom XML elements. This stuff can be done (and I like the way Sl*XMPP does in=t in Python myself).
dwd
Oh, UDT picks JSON because that'd cover everyone. Anyone who feels strongly enough to do something other than JSON would be willing to dig into the library and extend it properly.