1 2 3 Previous Next 73 Replies Latest reply on Nov 26, 2011 10:21 AM by kaczortrex

    Seam.Next discussion

    shane.bryzak

      This thread is for the discussion of where we are taking Seam in the future.  Please feel free to leave your feedback, or describe your concerns here.


      We want to hear what you think, so please describe where you would like Seam to end up - and don't worry too much about seemingly outlandish or off the wall thoughts - we want to hear them all.


      We are not set in stone about going in any direction, so if you don't like a particular approach - please say!

        • 1. Re: Seam.Next discussion
          sunfire

          Ok, this will be a long one but I love Seam and would very much like to see it become what I was hoping for since its kick-off. So I have two major points that I want to being in:


          1. What is Seam 3 and what I would like it to be?


          Right now Seam 3 IMHO is a set of very generic feature additions to the JEE6 spec. This is quite nice and it extends it in several areas with well written goodies but it is not what I was hoping it to be after using Seam 1/2. Well I shoudl rather say I didn't want it to end there. I think the easiest way to explain why it is like that I would like to use an analogy. Lets say writing an application is like building a house. The JEE6 spec delivers the building ground and Seam 3 the tools. Let 3rd party stuff like Hibernate, RichFaces, etc. be the raw materials. So if we take this as the starting point then sure you are capable to raise the entire building with what you have at hand.
          BUT - and to me this is the essential point - all previous Seam versions did also deliver a few ready-made walls, windows, doors, etc. along. Sure they may not have met anybodies requirements but for the cases where they didn't fit you still had the basic tools to replace them with 100% custom stuff.
          IMHO Seam 3 tries to stay 100% generic to be usable for everybody - which is admirable but from my experience does not fit real world app development requirements very good because it will limit you in how far you can go if it comes to ready-to-use features provided by the framework itself.


          So I would love to see if Seam 3 would still go 100% generic for the very basic stuff but I think it dearly needs a 80:20 approach for some more flushed out components/features. Take for example the Entity Framework in Seam 2. It certainly did not work in all cases but it was great to get something working in not time and in special cases where it was running short it was no problem to implements something else. And with Seam 3 it would even be cooler because the basic tools are much more well defined as they have ever been in Seam 2 for cases where custom componets are required.


          In short: I think Seam 3 needs to turn its stop crying because component XY is not there but you have everything you need to write it yourself-attitude into a stop cryting because the implemented component we provide does not 100% fit your need but you have everything you needs to modify/reimplement if by yourself-attitude.


          2. Why I would hate to see Seam 3 modules become fragmented?


          While I understand your intentions why you want to do that IMHO it is very important to NOT drop the bundled releases of Seam.
          There are VERY little commercial grade enterprise applications out there in without proper versioning. First it would be a nightmare to explain to some management suits that I want to base their shiny new app on something that doesn't even have a real version. That is just the sad truth to it. It will make it impossible to sell this to some folks.


          Also frankly I am scared of possible versioning conflicts within the inter-component dependencies if there is no central point of control over a regular release where one can be sure that all contained components will work just fine with everything else contained in the same release bundle XY.


          Next it is quite easy to tell somebody we do use Seam 3.x for our application other then well we do use 3.4.1 of the Faces module, 3.1.1 for the Hibernate module, etc.. Make things overly complicated.


          So even if you want to push through with the idea of getting the modules integrated into their 3rd party project (which may actually be a good idea - time will tell) then please please at least still maintain a centralized release management that - maybe bi-annual - push a bundled Seam released with interop tested modules and a real version. If not for the technical reasons then at least maybe for political ones.


          Thanks for reading and (hopefully) caring. ;)


          Cheers, Thorsten

          • 2. Re: Seam.Next discussion
            marx3

            Seam now is a bunch of components which should work together. It try to abstract some technologies (JPA provider, JSF components library etc) to allow easier use of them together. Does it succeed?


            It isn't a framework yet and as I see Seam team doesn't want it to be one. They try to encourage other people to write one, to integrate other technologies, to build so-called Seam modules for them.


            Seam2 is framework. It gives you complete environment to build web application and it tells you how to do it. It gives examples how to make it all working together. It try to overcome J2EE 3.0 shortcomings to make developer's life easier. For example it gives you ability to easily secure application, to handle errors, call beans strictly in webpages, gives parametrizable EL functions, easily handles EJB components, easier navigation, accessing resource bundles etc etc. The list is long and anybody who writes in Seam 2 know it.


            So - Seam 3 should be application framework as Seam 2 was.

            • 3. Re: Seam.Next discussion
              ckarthi

              Agree with Marek.


              Seam 3 should be application framework as Seam 2 was. Just make it to work with CDI, Security, JSF (not just RichFaces) Mail, Excel export.

              • 4. Re: Seam.Next discussion
                ge0ffrey

                Centralize and unify the documentation of weld, seam and arquillian-cdi-container. Or at the very least inner link them.


                Centralized recipe-like documentation is one of the nicest things about spring (at least it was at some point). You open it as a single page and with ctlr-F in your browser, you feel like a candy store: everything is nicely displayed per technology to integrate and it's very easy to copy paste a hello-world integration of any of those technology's. This makes it easy to get up and running something fast (much like seam Forge, but it works for big hand-written projects too).


                With weld, seam, arquillian, it feels like you have to puzzle together several manuals to how they fit together.

                • 5. Re: Seam.Next discussion
                  fernando_jmt

                  After having used Seam 2 for a long time, using Seam 3 sometimes makes me feel like in a restaurant's kitchen picking the ingredients in order to cook my own dish, instead of just sitting in the table, order the dish, pick the cutlery up and start eating.


                  So I'm agree with Thorsten and Marek. Seam 3 must remain as a complete application framework to develop enterprise Java applications. After all, the main idea of a framework is that right?, because having the things separate means you only have libraries/tools, not a framework.




                  • 6. Re: Seam.Next discussion
                    philip142au.philip_andrew.hotmail.com

                    (I was supposed to reply here - hope I didn't generate two replies.)

                    I suggest you need to do the following.

                    1. Keep releasing as a single package, a single Maven dependency.

                    Making SEAM 3 successful is not just a technical issue, it is also a marketing issue, thinking from a marketing perspective - >

                    2. Simplify the on-ramp for new users, if I am a new user coming to this I need to know how to do things quickly and easily for simple use cases. If you want new users to adopt, then this has to be the case. Examples, examples, examples. Have seen many project fail due to lack of ease of adoption for the new user.
                    I want to see a list of examples here on the SEAM 3 homepage for everything I want to be able to do http://www.seamframework.org/Seam3
                    If a new user comes to SEAM 3 and come visit Spring, what do you think they will choose? SEAM 3 looks like something broken up into parts and I don't know how to do basic things with it.

                    Why do you think CakePHP (http://cakephp.org/) is successful? is it because PHP is such a great language? of course not. Its got a place called the Bakery (http://bakery.cakephp.org/) where you can easily find examples to copy to make your own website. Lots of articles to read. So easy to get started.

                    I know one technology years ago which had a lot of buzz around but died quickly, it was JXTA, the Java peer-peer library. So many programmers were looking at it, but when it was downloaded, it was complex, the API ugly and uncertain how to use. No good examples. So much good buzz and then died quickly.

                    3. Generator, make a simple generator which can generate applications and make it online on a website. I want to list my database tables and relationships and I want the application created easily, then I can download it as a ZIP file and open it in my IDE. Make my getting started EASY, then its easy to go from there.

                    4. Get rid of the FUD, your built on J2EE, everyone knows how much FUD surrounded that from the early times but its much better now.

                    5. Make it easy to move from SEAM 2, currently I am a SEAM 2 user and feel uncertain to move to SEAM 3.

                    Fix your broken links, clicking on "Example usage" here
                    http://www.seamframework.org/Seam3/SpringModule

                    These are some thoughts which maybe others have not yet expressed.
                    Tough love guys, I like SEAM 2, please get SEAM 3 popular.
                    • 7. Re: Seam.Next discussion
                      mbogoevici

                      philip andrew wrote on Sep 30, 2011 11:00:


                      Fix your broken links, clicking on Example usage here
                      http://www.seamframework.org/Seam3/SpringModule



                      Noted. Actually there is no example since the Spring Module is unfortunately late, because some other commitments, but I kept working on it and I am looking forward to a significant update this weekend.


                      Thanks for the patience.

                      • 8. Re: Seam.Next discussion
                        mbogoevici

                        philip andrew wrote on Sep 30, 2011 11:00:


                        Fix your broken links, clicking on Example usage here
                        http://www.seamframework.org/Seam3/SpringModule



                        Noted. Actually there is no example since the Spring Module is unfortunately late, because some other commitments, but I kept working on it and I am looking forward to a significant update this weekend.


                        Thanks for the patience.

                        • 9. Re: Seam.Next discussion
                          pgmjsd

                          While I agree with others that say that Seam 3 is 'fragmented', I also see the value in providing the modules 'a-la-carte'.




                          • I do want an easy way to include all the 'typical' Seam 3 CDI extenstions and I would like more comprehensive documentation and examples regarding how to use them.   This was pretty much the case for Seam 2.

                          • I do not want to include lots of CDI extensions that I do not need.  Seam 3 / CDI / JEE6 have the potential to provide a truly lightweight framework.



                          My experience so far with Seam 3 modules has been pretty hit-or-miss.   Solder and other basic modules seem to work well, but the less-used modules don't have enough documentation to get me to a successful example (e.g. Seam JMS).


                          I also agree very much with the need for a Seam 2 to CDI / Seam 3 guide.   Some things are obvious but many things are not obvious.



                          • Seam 3 developers will need to know The Right Way (TM) to do things, as Seam and CDI sometimes provide many ways to do the same thing.




                          • 10. Re: Seam.Next discussion
                            teacurran

                            I'm a contractor and have used both seam2 and 3 for 10-15 sites now. Mostly intranet applications for large companies.


                            I think that the bundled release is one of the most important selling points for this framework. It is nice to say that ownership of persistence should be in hibernate, or wherever. but what the bundled releases provides is some guarantee that all of the jars contained within a release will work together.


                            On non-seam projects where we have to roll our own jar bundle, we run into issues where we will bump the hibernate version slightly and it won't work with an xml jar, or the app server version, or something else. With seam we can safely say if we want to upgrade this jar we can upgrade the whole framework and not run into any problems.


                            Moving from seam 2 to seam 3 for new projects has been a bit of a rocky road. Here are what I can quickly think of as the biggest pain points:


                              1. seam2 had features not in any seam3 bundle. Entity home and the JSF based emailer are the biggest ones. The new email module is okay but not as good IMO and confusing to team members as to why it is totally different.


                              2. a lot of seam3 modules are half baked so far. This stresses why bundled releases are important, if I have to pick and choose modules all over the web some of them are going to be lacking in quality.


                              3. The example projects for seam3 are much smaller and barely touch on most concepts. This has made spinning up new developers much harder.


                              4. All of the new examples and documentation is maven based, but some shops (ours) hate maven and will never use it. I suspect many people coming from seam 2 won't be keen to jump to maven since seam 2 was so ANT heavy.


                              5. There is a ton of confusion everywhere about the JSF vs CDI annotations being the same. what the heck happened there? (seam is nice to try to log this and point it out in your logs)




                            This is all I can think of right now.  Because I try to not just be a complainer, I have been working on an example project that should show off more of seam3 than the official examples. I'm hoping to get it into github in the next month when I can find time.






















                            • 11. Re: Seam.Next discussion
                              teacurran

                              Another point. One of the big selling point of seam2 was that it felt like the goal was to pull in the best of open source projects from everywhere and make them work together.  With seam3, I get more of the impression that it's goal is to promote red-hat/jboss projects.


                              I would very much like to see more support for alternative and competing technologies, perhaps:


                              -primeFaces
                              -spring
                              -wicket
                              -toplink


                              some of these may be impossible, but I think you get my point. With seam2 you had a lot more choices (wicket/jsf) or (groovy/java).

                              • 12. Re: Seam.Next discussion
                                lightguard

                                Terrence Curran wrote on Sep 30, 2011 13:17:

                                  5. There is a ton of confusion everywhere about the JSF vs CDI annotations being the same. what the heck happened there? (seam is nice to try to log this and point it out in your logs)


                                That happened because JSF 2 finished before CDI did and they didn't integrate with the spec (honestly, JSF hasn't integrated well with much of anything at a spec level. We're hoping that changes with JSF 2.2)




                                This is all I can think of right now.  Because I try to not just be a complainer, I have been working on an example project that should show off more of seam3 than the official examples. I'm hoping to get it into github in the next month when I can find time.


                                Sounds like a great idea. Please let us know when this is done. The more examples the better. We may be able to help each other out as well. If you like to contact me off list about examples and collaborating together, I'd be more than happy to help out.

                                • 13. Re: Seam.Next discussion
                                  miloskov

                                  I used Seam 2 for a project like 2 years ago it was awesome, We did a project in less time than other frameworks offered in that time. The house analogy of Shane it is exactly how feels to build software with Seam 2 already there is predefined stuff that we can use and if needs later modify it. It was a fresh air to use Seam 2.


                                  Now Seam 3 looks like a spec, It follows the spec to the metal. For that I better use straight weld and spec standard. I want to use the real Seam 3 as many people was expecting and now with the JEE6 spec should be an awesome framework with all integrated.


                                  Also Seam2 offered all 3 layers of development(Backend, Service, FrontEnd), You can learn from Play framework a very tight and integrate solution with predefined stuff I can get a complete application in a fraction of time using that kind of frameworks and Seam 2 was that.


                                  So what I expect is An integrated framework ala seam2/play using the JEE6 spec with rendering to JSF/RichFaces, Apache Wicket, Apache Click, Vaadin or other alternatives a way to integrate the frontend and swap what ever I want even GWT. But it covers me with predefined stuff and security module, helpers, even PDF or Excel generation etc.


                                  The problem of Spring is it does not integrate all very well sometimes I have to choose modules from other parts with different versions. With Seam 2 and I thought Seam 3 Would fix it so I could focus on developing the app and not hunting modules all over the place as a puzzle and try to match different versions etc.


                                  I hope guys you can get good feedback and get soon a solution for this because Seam CAN'T DIE.


                                  Cheers.

                                  • 14. Re: Seam.Next discussion
                                    orr94

                                    My thoughts:



                                    1.   While I think making the Seam 3 modules independently usable is a noble goal, one of our deciding factors for using Seam 2 was that it provided a complete framework for developing rich applications. We haven't had to add much to it to meet all our needs. If possible, I would suggest making the modules available independently AND as a fully integrated bundle.

                                    2.   I think a Seam 2 to Seam 3 migration guide is critical. It will be difficult for us to move to Java EE 6 and Seam 3 without it.

                                    3.   We use RichFaces, so I personally have no problem with moving Seam Faces there. But I can see where PrimeFaces users would be sorely disappointed...

                                    1 2 3 Previous Next