Fabio Manganiello on Nostr: The code of xmpppy is such a mess. Out-of-date documentation. Examples that don't ...
The code of xmpppy is such a mess. Out-of-date documentation. Examples that don't work. Class attributes declared outside of the constructor (or in another class entirely). Methods that are sometimes called with lowercase names, sometimes with uppercase. Sometimes with underscores, sometimes in camel case. Methods that sometimes return "0" (as a string) or 0 (as an int), and those mean two different things. Tons of unused variables. And, of course, no formatting conventions - multiple statements squeezed on the same lines, assignments that sometimes have spaces, sometimes don't.
xmpppy is, as far as I know, the reference library for doing XMPP things in Python, yet some parts haven't been changed since 2005 (some of that code has basically just earned a license to drink and drive), but it's barely holding itself together and it's just waiting for a small breaking change to break for good.
Unfortunately, this is the state where I've found a lot of commonly used libraries (especially for Python) that "just work" and get basically abandoned. I've had to make my own forks of (and eventually end up maintaining) PyOBEX (the Python library for Bluetooth file transfer), the Leap Motion SDK (an amazing device btw, that was just unlucky to be released way ahead of its time and get quite bad marketing) and the Alexa Voice Service scripts that Amazon abandoned long ago - and I'm only mentioning the dependencies directly used by Platypush.
I may consider take xmpppy under my umbrella too if things turn out too bad, but this is a very bad trend. We can't let the tragedy of commons hit so badly. If we love open-source stuff, then we can't let an official library (either de jure or de facto) rot for almost two decades until it becomes basically unusable.
https://github.com/xmpppy/xmpppyPublished at
2023-06-28 12:07:39Event JSON
{
"id": "7a2153e4c786697c7eab5f1cf5aa50a8ddcdcad74652a82324a97ff717639b50",
"pubkey": "678fbdf04a787406ea6ccc5fd35c1cf57ac74ea9d0aa81df88f7a941f57e75e3",
"created_at": 1687954059,
"kind": 1,
"tags": [
[
"mostr",
"https://social.platypush.tech/users/blacklight/statuses/110621757246368940"
]
],
"content": "The code of xmpppy is such a mess. Out-of-date documentation. Examples that don't work. Class attributes declared outside of the constructor (or in another class entirely). Methods that are sometimes called with lowercase names, sometimes with uppercase. Sometimes with underscores, sometimes in camel case. Methods that sometimes return \"0\" (as a string) or 0 (as an int), and those mean two different things. Tons of unused variables. And, of course, no formatting conventions - multiple statements squeezed on the same lines, assignments that sometimes have spaces, sometimes don't.\n\nxmpppy is, as far as I know, the reference library for doing XMPP things in Python, yet some parts haven't been changed since 2005 (some of that code has basically just earned a license to drink and drive), but it's barely holding itself together and it's just waiting for a small breaking change to break for good.\n\nUnfortunately, this is the state where I've found a lot of commonly used libraries (especially for Python) that \"just work\" and get basically abandoned. I've had to make my own forks of (and eventually end up maintaining) PyOBEX (the Python library for Bluetooth file transfer), the Leap Motion SDK (an amazing device btw, that was just unlucky to be released way ahead of its time and get quite bad marketing) and the Alexa Voice Service scripts that Amazon abandoned long ago - and I'm only mentioning the dependencies directly used by Platypush.\n\nI may consider take xmpppy under my umbrella too if things turn out too bad, but this is a very bad trend. We can't let the tragedy of commons hit so badly. If we love open-source stuff, then we can't let an official library (either de jure or de facto) rot for almost two decades until it becomes basically unusable.\n\nhttps://github.com/xmpppy/xmpppy",
"sig": "c5b4ed735e5478a39f7eda946548b7009b8a627bb5f13882d2c7886a7f662c74bf0b2f25f23b8f898ae27a7a35959f11da99ecaf1996b3f56981e5b14b3ded69"
}