Java in 2009 – Up and Coming/Down and Out
Tuesday, January 6th, 2009
This is the time of the year when we start seeing the “what’s going to be hot in Java this year” posts. Actually, I might be a little late. Anyways, there seems to be two kinds. The ones that focus on the very latest buzzwords (the bad) and the ones that focus on what is beginning to take hold or mature (the good). It is sort of like how I prefer to attend JavaOne every other year. One year is full of specifications, standards, and new frameworks. The next year is specification implementations and the maturing of the previous year’s frameworks. I’m hoping this will be a good one. I am trying to focus on technologies that are not necessarily new, but that are beginning to take hold. And to add a little spice, I’m not just listing the emerging technologies. I’m also listing those that I think will be in decline.
Up and Coming
- JCR – I think that 2008 was a great year for the JCR specification, but I expect 2009 will be a great year for adoption. I think Jackrabbit is quite a success. There are still places where databases are more appropriate, but now I’m seeing that there are more and more places where repositories are more appropriate. Earlier on it seemed like web content management was the only place where a JCR seemed like a nartural fit, but I think that is going to change in 2009. On a side note, I’m rather interested in using an object database such as db4o in the future as well. I think there are some similarities between object databases and repositories so that should not be a surprise. If we are using an object oriented language, why not use an object database? It seems like it would be a hell of a lot easier than wrestling with an ORM framework and a traditional database.
- Flex – I saw Flex becoming a viable alternative for applications in 2008 from a development perspective, but it appeared that there was a lack of support from a business perspective. I think that this is going to change in 2009. As organizations come to terms with RIAs, they’ll see that Flex is really the only practical solution. I’d prefer to use Flex for all future web applications myself. The ability to run web applications offline with AIR is just icing on the cake. Also, I feel like there is a gap between desktop applications and browser based web applications. It turns out that AIR fills that gap. Finally, my prefer approached is to completely separate the business tier from the presentation tier. That is where RESTful services come in to play, and Flex has great support here. Then we can build as many clients as we like whether they be in Flex, Silverlight, or plain old AJAX.
- RESTful Services – They certainly aren’t new, but with the release of JAX-RS I expect organizations will develop more and more services in a RESTful fashion in 2009. In 2008, I’d say it was maybe 70/30 or 60/40 leaning towards SOAP web services. I’m hoping for the reverse in 2009. I also see RESTful services playing a larger role. I imagine web applications being assembled on nothing but RESTful services. Pretty much what I just described when talking about Flex.
Honorable Buzzwords: Cloud Computing, Software as a Service (SaaS)
Down and Out
- Fall of the ESB – Honestly, I have seriously lost faith in the notion that an ESB is required for SOA. I’ve only worked on one project (using Mule) where it actually made sense to use one. We had multiple disparate applications (database, command line, service) that needed to be synchronized. Mule proved itself to be the perfect solution to this problem. In the rest of the projects, I saw that organizations were simply using an ESB to proxy/route/monitor service requests. I can use Apache for that. For more complex mediation and routing, I’d look to Camel. Finally, SOA is just one approach to enterprise integration. It is not the only one. Also, how many people are implementing a SOA when they don’t even have any enterprise integration requirements? Too many.
- Decline in Web Frameworks/AJAX – I used to think that all these web frameworks were the sweetness. I liked to try new ones, and I liked living on the edge. Now they just annoy me. As for AJAX, I don’t even know where to start. I mean, hammer and nail anyone? Yes, you can do a lot of cool stuff with AJAX but do you really want/need to? Clearly people are just forcing it to do things either for the pure sake of proving they can force it to do things or because it simply wasn’t intended to do those things from the beginning. I suppose if you can’t let go of your favorite web framework then you’ll have to continue using AJAX.
- Complex ‘Stacks’ – This is sort of an extension of the web framework decline. I remember being all about the ’stack’. We had Hibernate, Struts, and Spring. Then we had to add a security framework, and web service client, and so on. We ended up with fairly complex stacks because the holy grail was to have a truly modular application such that you could swap out certain tiers while leaving others in place. Right, that never happened. Once a stack was assembled, it was never touched. These days I like to keep my applications as simple as possible. I’d rather write some code by hand, than have to add another framework that will do it for me.
Questionable: Commercial Open Source, Application Servers
Don’t blow a gasket just yet!
Clarifications:
- Commercial Open Source – I have no problem with the business model. My problem is with the expectations. Just because you have an open source offering does not mean that you can let it get bloated, the architecture antiquated, and the quality of code drop. Too often we cut them some slack just because they are open source. It is like this. Every day you come home and the neighbor’s brat is hurling insults at you. But you let it go. After all, he is just a kid. Then one day you come home and he is getting ready to light a bag of crap on your doorstep. Now he’s gone too far. You have no choice. You chase that little bastard down and introduce him to the back of your hand. The wife if going to have you sleeping on the couch. The kid’s parents are going to have a fit. You might even do a little jail time. But, eventually you’ll get out. The kid is not going to be bothering you again, and you live the rest of your days in piece and quiet. It was worth it.
So until next time, good fight, good night.
Tags: 2009, ESB, Flex, Humor, JCR, RESTful Services, SOA
This entry was posted
on Tuesday, January 6th, 2009 at 12:53 am and is filed under Java Content Repository, RESTful Services, Rich Internet Applications.
You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.
Hah! 2009 predictions, ESB bashing, and setting an unruly brat straight all in one post. Nice job Mr. Dude
In all seriousness, I agree with you regarding ESBs. ESBs seem to me to be WONDERFUL if you have legacy systems or something that you need to expose as a service that isn’t already exposed as something that can be accessed via your standardized service protocols over HTTP (SOAP/REST) AND can allow for asynchronous processing. However, if all of the pieces of your architecture already are exposed via SOAP or RESTful urls, then an ESB makes no sense. REST and SOAP are synchronous protocols and putting those through an ESB makes little sense.
Regarding Flex – what do you think of JavaFX in comparison? I personally have not used either but I have read grumblings about the tooling support for Flex being not so great from a developer’s perspective. On the other hand, despite JavaFX being a relatively immature technology one could imagine it will receive, in short order, tooling that is on par with that of the rest of the Java platform.
Thoughts?
Hey Shane, great predictions. I especially second the notion of declining web frameworks and rise of RIAs.
Hey!
Regarding repositories & object databases: another useful take on persistence is to use a graph-oriented database like neo4j. While JCR uses a hierarchy to structure content a graph database has a more generic/flexible way of connecting items.
As for this year, I think that RDBMS won’t be the one-and-only solution to all database problems. JCR implementations and other alternatives will provide ways to persist data that are better tailored to specific problems, and people will start to realize this. It just takes some time
Found your info on JBoss/dna as well, thanks for that one!
I completely agree. I’m going to check out neo4j too.
Now that I think about and object database or a graph-oriented database would make a great persistence manager for a JCR.