That's a question a good number of developers ask themselves from time to time, isn't it? I've been learning about Jabber lately. Very interesting and exciting stuff. As a Java programmer, I am more insterested in Java related APIs than others. I am currently reading the XMPP RFC 3920. I've been reading it for a while and been implementing some of the stuff in Java and today, I discovered the exisitence of a Pure Java API that does most of the work. The API is known as Smack and is available on Smack. The cool thing about the API as written on its website is that the developer does not need to know anything about XML in general, XMPP XML protocol in particular. This is very nice when there is a need to implement a client or when some other serious work is undergoing that will be using the Jabber protocols. I downloaded the API and found out that I could use it quite easily.
If I decide to use the API, I will not have any idea of what is going on in the background apart from the front code that I am seeing as a programmer. This means that I will probably end up stop reading the XMPP Specs and just focus on developing the software I need. It also means that I spend less time developing my product and get to the result really fast. That's fantastic!
On the other hand, the XMPP Specs are very interesting and knowing them allow developers to use the protocols in new and innovative ways that do not necessarily related to IMing. Besides that, it gives more insight to developers on how to create their own protocol subsets and encapsulate them in the existing Jabber protocols. This is very nice for example when building software that needs messaging capabilities in one way or the other.
Now the hard question is: should I be a geek and study the whole XMPP Specs or should I be a developer needing to get on with his work really fast?
I have no idea what to do yet. However, I will keep on reading the specs for now and once I have made a decision, I will be writing an update to this post.
February 28, 2006
Subscribe to:
Post Comments (Atom)
Your dilemma is typical of a hacker. Most programmers don't care; they just want to get the job done. Just like most computer users; they don't care how things work, they just want to know that it works.
ReplyDeletePersonally I would just use Smack (no point in doing work somebody else already did) and continue to learn the specifics of XMPP. Maybe you can eventually think of a few new features to implement and submit patches to Smack.
At the end of the day, the most important thing is: DRY (Don't Repeat Yourself) but that doesn't say anything about learning. :)