Some months ago I read some about Seam and I had some conversations with some colleagues and I decided to find some book or resources about it. Then I found your book "to be published soon" on Amazon and I kept on eye on it.
As a curious software developer I'm always trying to see "what's new" and I try to learn as many as possible new and interesting tools and frameworks but my time is finite
So, my question is: how hard and long is the learning curve of Seam for a developer with about 5 years experience and good knowledge of the JEE technologies, Hibernate, Struts and Spring?
Iván Párraga García
SCWCD 5, SCJD, SCJP 5, MySQL 5 DBA
I think, as you already know quite a number of popular frameworks, the learning curve will be short for you. Especially, when you know Spring, its similar stuff, not exactly same though. Few things are bit different but can learn it easily. The only thing requires a bit more effort is JSF, I believe.
As you said, you're already familiar with many of the JEE technologies. If you're familiar with JSF and an IoC solution, I think you'll find Seam extremely easy to pick up. Probably about a month of moderate playing around and you'll be good. May take another month or two to really understand and be able to use some of the more advanced things in Seam.
The responses so far have been dead on. I want to go in a different direction and address which areas of Seam do have a learning curve.
First and foremost I would identify JSF as a hurdle for those getting started. JSF was intended to have a small learning curve and be easy for new developers to pick up. The reality is that it suffers from leaky abstraction and therefore ends up being more complex than some alternatives. Fortunately, Seam eliminates most of these quirks and therefore brings the learning curve of JSF back down to an acceptable level. To go a step further, the Seam project members are working closely with the JSF EG to make JSF 2.0 much more attractive to new developers.
The second challenge is learning how to manage conversations effectively. Conversations are one of the crowning features in Seam and definitely give it the leg up over alternatives. But it isn't always obvious where to put the boundaries of your conversation, which turns out to be a good thing because it actually gets you thinking about what you want your application to do from a business perspective, rather than being tangled in a technical concern. How long do you want to keep the user's selections in memory? Is there a navigation path that you want to enforce? While it may seem annoying to have to answer these questions, these are the real application concerns that you are being paid to address. Isn't it annoying that a framework actually makes you think about what you want to create? Not at all.
Finally, bijection is a new paradigm that you have to understand. Fortunately for you, I go into tremendous detail about bijection, how it works, and what to expect from it in chapter 6 of Seam in Action. I can assure you that if you spend one night reading chapter 6, you will have bijection down cold and will be using it effectively the very next day.
All technologies are going to have a learning curve. The real question becomes, is there a guide to get you from greenhorn to expert? I hope that Seam in Action is that guide and many of my readers will attest to the fact that it is that guide. Don't take my word for it. Ask them.
[ October 08, 2008: Message edited by: Dan Allen ]
[ October 08, 2008: Message edited by: Dan Allen ] [ October 08, 2008: Message edited by: Dan Allen ]
Cheers Dan and the others, when I finish some certification processes I am on, I think next step will be Seam study
I have another question about the difficulty of the framework. For new developers without experience in enterprise development (let's say j2se knowledge but nothing else), is it reasonable to start with Seam (and your book) or should they learn the basics of j2ee (or any other technology)?
Joined: Mar 05, 2003
For new developers without experience in enterprise development (let's say j2se knowledge but nothing else), is it reasonable to start with Seam (and your book) or should they learn the basics of j2ee (or any other technology)?
I am not afraid to tell you the truth, which is why I can say that when I first started writing Seam in Action, even I didn't really understand all of Java EE. So that most amazing part about Seam is that learning it has the side affect of not only understanding Java EE, but understanding it at such a deep level that it is as though you had been an expert in it all along (and offering a solid approach to learning it). Of course, I have worked with J2EE for many years, but it is amazing how much you can get by without really knowing the specifications. Using Seam, I learned those specifications inside and out.
Joined: Apr 26, 2007
That may all depend on where they're getting their information from. If you're going to start them off with JSF it's almost more of a pain to get them going with plain JSF, but of course once they are going with it and hit some of the holes in JSF they'll really appreciate what Seam has to offer.
When I started Seam I hadn't had any JSF experience before, so the whole thing was new to me, took maybe a month and a half to two months of on the job usage to really start getting the hang of it. I would imagine most other developers will have a similar time frame if they're starting without any of the background knowledge. If they don't know EJB just skip that part and use POJOs with Seam.