Hi Folks, I apologize first for venting out my deep frustration here, but I think it is time to "rattle the cage" a bit and bring this to everyone's attention working with or on Qpid Proton.
I have been trying to work with AMQP 1.0 for quite some time now. After doing my research, I soon found out that there are very few alternatives for client libraries in Java. I started with the "classic" qpid-java-amqp-1-0-client-jms library (which is not based on Qpid Proton), but abandoned it for various reasons that I won't elaborate here. Then I researched some other alternatives outside of Apache, also without much success. I finally ended up trying out Qpid Proton-j since it is being used by many excellent projects (ActiveMQ, Apollo, QPid Java Broker) to enable AMQP 1.0. However, I found using Qpid Proton-j to be extremely cumbersome to say it even politely and here is the main reason: Qpid Proton-j has no meaningful or useful developer documentation and the Java examples are limited to two extremely primitive applications demonstrating a sender and receiver using the messenger API. Unfortunately this example is far from being useful because it really demonstrates the obvious which would need the least amount of documentation. I then tried to figure out how to use Proton-j for my own project beyond the messenger API trying to determine which interfaces and classes may be useful for me and which not. Unfortunately, I was not very successful with this either, because the Javadoc is not really useful either mostly due to the absence of any informative documentation (beyond the standard generated API Doc). Even looking into the source isn't helping very much since the structure is not revealing something obvious and the lack of comments in the sources is really stunning. Don't get me wrong here! I am not trying to imply that the source code is of bad quality, but the lack of comments and overall documentation also doesn't make it a real "gem" among all the other open source projects. After spending (too much) countless hours trying to make sense of all of this, I thought I study the AMQP 1-0 specification (again). Unfortunately, I am finding it very hard to relate the code artifacts in proton-j to the AMQP 1-0 specification. And finally, there seems to be absolutely no documentation or write up available talking about the high-level architecture and "philosophy" beyond Proton (unless I completely missed it) which would allow me to grasp some of the high-level concepts helping me to understand the project and its intended usage better. So here is my pleading to all the insider: please, please, please, improve the overall quality of your project by adding more meaningful documentation for users like me! I know that writing documentation is really boring (compared to coding) and writing good documentation is very hard (sometimes even harder than writing code)! I am also aware that this is a community-driven project which lives from outside contributors, but please spare me with any rhetoric response telling me that "my contribution would be welcome"! In my current state, I would not be able to write any meaningful documentation to contribute, as you may have already gathered from this post. If someone from the "insider" group who understands proton (or claims to understand it) would provide me something to start with, I am more than happy to dig my feet in and continue, but without anything right now, I am just lost... With that I am hoping to have stirred up a lively (and maybe controversial) discussion, -Uli Romahn Senior Architect at a large Silicon Valley based payments company DISCLAIMER: the post above is my own personal opinion and does not represent any official statement from my employer. -- View this message in context: http://qpid.2158936.n2.nabble.com/Qpid-Proton-Overall-Project-Quality-some-venting-tp7613867.html Sent from the Apache Qpid users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
