3 ms·
Prosody developer here. Sorry that your first experience developing with Prosody was a poor one. I think about this a lot - we've had a lot of people come from
by MattJ100 4y ago
Prosody developer here. Sorry that your first experience developing with Prosody was a poor one. I think about this a lot - we've had a lot of people come from the direction of Jitsi, wanting to extend things for various purposes, and I understand that, depending on what you are trying to do, it can be like jumping in at the deep end.
All at once, not only do you have to suddenly grok Lua and Prosody's APIs, but also XMPP and the way that Jitsi uses it. Prosody's API documentation typically assumes you understand XMPP concepts and what you are trying to do with them.
I also generally only hear from people after they've already tried and struggled (they either reach out then, or I hear the story later on after they've given up). Unfortunately this means we don't get much useful feedback from folk like you who are trying to build upon the Jitsi/Prosody duo.
I've thought about some Jitsi-focused developer docs, and possibly even an additional API layer that presents things using high-level Jitsi concepts rather than the low-level XMPP concepts. But I don't know how much demand/interest there actually is, or whether I'm even barking up the right tree with these solutions.
Anyway, this is something I'm aware of and I appreciate any specific feedback - you can email developers@prosody.im to reach us.
- KRAKRISMOTT 4y agoI don't think the difficulty of the Lua language is the issue. Lua is very easy for web developers (same abstraction level as JS). The issue is that a great number of Lua developers enjoy abusing the metaprogramming functionalities for basic APIs. Not everything needs to be a meta table, a simple method call or getter/setter function is more than sufficient.
- solarkraft 4y agoThanks for responding! I did find it a bit hard to understand how Jitsi Meet works with XMPP and documentation on that would make development much easier (finding the right events to listen to, for example). Understanding XMPP was a bit of a hurdle as well, but I found it rather easy to clear (just some effort) because the specification is very clear. The hardest parts were really the Prosody bits. "Why does my plugin not load", "What the hell does this method return", "Which methods are even available", "So how the hell do I actually use this WebSockets plugin now" - stuff like that. I don't remember the specifics very well because I did it a while ago, but few end-to-end tutorials with tips on finding the answers to my questions (where in the code do I have to look/what can I infer from it?) would likely have helped a lot. This interaction may just encourage me to have a look again. I'll keep in touch this time, thank you for caring.