The Source for Java Technology Collaboration
User: Password:



Daniel Brookshier

Daniel Brookshier's Blog

Is JXTA Exciting?

Posted by turbogeek on March 02, 2004 at 02:12 PM | Comments (1)

JXTA - Is it important or just cool?

Software can be a bit boring. So where do we get our jollies? What is exciting in the software world? Well, we can all take up skydiving while doing code reviews** or we can use a new technology. Its hard to say why 'new' holds such a fascination for most of us. When a new technology saves us time or money it has a lot of pull. But something that can save time and/or money "and" be cool, well it just warms our hearts.

JXTA is new, gives us access to both the technology and to resources to use it at a price as good as free beer. JXTA is also a brain teaser. If you move away from the comfortable home of the application server to the edgy resources of the personal computer, most ideas don't survive. JXTA requires intelligence, creativity, and invention. Now that's exciting.

Application servers change things a bit, but they can't be used to develop for fun, research, small business, or even a charity. There is too much to pay for between hosting, bandwidth, support, and the hardware. Yes, you can do some web apps on the cheap, but not easily and often not easily scalable. JXTA goes the other way, so it is at least more accessible.

I don't want to learn another damned API. Really? Are you dead? Lazy? A traditionalist? Or are you 100% sure that what you are doing is going to be a marketable skill in five years? About the only legitimate excuse for not learning a new technology is time and resources. Since JXTA does not require that you have anything more than just your PC and perhaps those of your friends, it has no barrier to entry. That leaves time. The only way you get time is to make a priority and put something else off for a while. I think JXTA is important enough, but you need to make that choice for yourself.

I have called JXTA a revolutionary technology. It is like the first personal computer (mine was an Apple II). Before the personal computer appeared, software was written by only a small and privileged few. The reason was that computers at the time cost as much as a house. But with the personal computer, the number of programmers exploded. Compare JXTA to web and application servers. JXTA needs little or no investment to create useful applications. Web an application servers need hosting, hardware, bandwidth, and the costs increase as you scale (it is much cheaper to do so, but the average hobbyist can't afford a simple site).

Some architects recommend that you should develop with the least complex technology possible. Others recommend minimalist designs or least complicated methods too. How would JXTA fall into this?

JXTA is less complex then web apps because it removes or reduce the complexity of multiple languages(Java, html, JavaScript, etc), browser incompatibility, and the web infrastructure of servers and data centers. JXTA can use a real GUI (Swing, SWT, or AWT), which can save a lot of development time. There are also many more resources because of other computers in the P2P network. The downside is increased latency for some types of data and in many cases a more complex distributed design. Counteracting the bad is reduced equipment and reduced interactions between the pieces (like interfaces between html, srcipts, XML, and Java).

Sounds like JXTA uses less technology and reduces the touchpoints between them. But is there less code and a simpler design? Jury is out on that one because complex applications have not really been analyses. For simple applications it seems like there is less code.

New technology is sometimes a moving target. JXTA is no exception. The direction of change is toward less complex and easier to use. Some of the churn is also in how we design with JXTA. Turning any paradigm on its head is going to keep you on your toes for a while.

JXTA developers also need a lot more than the API. JXTA at is core is just a protocol. It is not a turnkey business solution. But that's another reason to lust after JXTA. There are a lot of important things to do, from crafting unique frameworks to modifying existing ones to fit a JXTA and P2P environment. Building a business solution with JXTA is still a job for a fabricator. It takes a craftsman to make his own scaffold when things get complex. What really makes this fun is that the solutions are like no other.

So, is JXTA fun? Yes! Is it hard work, yes again for some things. Is it good for your business? Yes, because despite some extra time developing, the benefits of P2P, and the reduced costs are enormous and they add up over the lifetime of a product.

**Most companies don't do code reviews so life is already exciting.


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • Learning Java APIs
    This blog ties interestingly to another, Is JAS ruining the Java learning experience?. I posted, probably a bit hastily, that the large number of standards (read: APIs) in Java are intimidating to both new and veteran Java developers.

    Your statement, "I don't want to learn another damned API...are you 100% sure that what you are doing is going to be a marketable skill in five years?" made me think more about this.

    I love learning new APIs; it offers the type of fun and excitement described in both blogs. But, as you mention, learning APIs takes time and resources, and neither one is infinite, unfortunately.

    So, as developers, we are force to pick and choose which APIs we spend time with. Sometimes, the choice is business-driven; we learn this API because a current or future project demands or would benefit from it. Othertimes, we learn it in our spare time specifically because it's NOT business-driven, and it's fun to work with something tangental to our daily grind. Still other times, as both you and I (in my comment on the JAS blog) allude to, we learn something because we anticipate that the market does or will demand this skill.

    That last drive is the trickiest one; just as we can't be so smug as to assume that our current skill set will be marketable in 5 years, we can't be absolutely sure which ever letters we pick from the JAS (JXTA, for instance) will be marketable down the road, either. This uncertainity combined with the sheer volume of TLAs in the JAS* contributes to the Java intimidation factor. (* I refer to, of course, Three Letter Acronyms in the Java Alphabet Soup).

    A shotgun approach--soaking up as many APIs as we can--is one option, but we risk becoming Jacks (and Jills) of all trades, masters of none. Sun and its Java partners also risk spreading their resources too thin by throwing more broth into the JAS, and that risk directly affects us developers, as an API may get abandoned or simply lost amongst the other lentils in the soup.

    So, your question, "Is JXTA useful or merely cool?" is an excellent one, and one which we, with our limitted resources, need to ask ourselves with each API that emerges from the soup. And, hey, no harm done in learning something even it it is merely cool!

    Posted by: jimothy on March 03, 2004 at 09:12 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds