Cant wait to check this out. I want a basic thin layer over the servlet API. On the front man site it sais
FRONT MAN ...
...Doesnt require millions of
maven commands to get up and running (i.e. its not like TAPESTRY)
...Doesnt have too much indirection regarding the servlet api (i.e. its not like GRAILS)
...Doesnt require not 1000 layers of goo (i.e. its not like SPRING)
I HOPE youre framework really can live up to this ! Below are my experiences with the "big 3" in my eyes (Grails, Spring/Struts, and Tapestry).
An introduction : Im a java programmer, and I build data driven, scientific software applications. I love the apache commons libraries . I might even love maven, someday.... I love hibernate and ibatis, as well as the apache DbUtils suite. I think JSPs are a nice convenient way of building dynamic content into a web application and Servlets are a great MVC complement. I dont want a wrapper to all web developement. Just a wrapper to my servlets and jsps. I already know how to use hibernate for a wrapper to the database. And I'm already a good enough programmer to build my own reflective API's when necessary for simple tasks. All three are probably manageable if you have a massive operation, or for a hobbyist interested in building CRUD apps for fun. But the lack of standardization makes them treacherous for small groups or individual developers with real deadlines supporting real applications.
1) I heard that "Grails" was Java's answer to Ruby, etc.... and that it was much easier than the "heavyweight" frameworks like Spring, etc. So I gave it a shot. The first thing I had to do was muck with my /etc/profile to get groovy and grails on my path, easy enough. Then I typed a command that created a web application in ten seconds. Wow. A complete web application that did CRUD against a bunch of autogenerated tables from my groovy classes (which I didnt fully understand yet,,,, but I was feeling optimistic). I went and decided to start building my own app. looked at the code, and tried to add an enum as my first variable in my own freshly written Grails app. Grails choked. I spent three hours on it, posted to forums, etc. Then I learned that GROOVY IS NOT JAVA. Duh. I should have realized this when I saw that NONE OF THE SYNTAX IN GROOVY IS ANYTHING LIKE JAVA. So what if it understands java. I understand spanish.... That DOES NOT make me a mexican. I decided groovy was TOO cutting edge for me. Give me some real JSPs and Servlets. Something that I can actually compile and test. Something that EXPECTS a human engineered data model. Something that seems like it has a good following.......... So I tried Spring.
1) So I tried Spring : Took me a few minutes to get an application working. I got a hello world application working, and I used the tutorial here :
http://static.springsource.org/docs/Spring-MVC-step-by-step/part1.html.... GREAT tutorial on how ridiculously COMPLICATED it is to setup a SIMPLE application in Spring. There are 100s of lines of XML. They even make you manually configure your apache-tomcat xml files and build scripts. I've NEVER had to do that for a small application ! Ive never seen so much XML in a hello world tutorial in my entire life !
With SPRING, by the time you get all of the XML/class files configured properly and get your
IDE set up properly, you realize that all Spring is really doing for you is providing a little bit of indirection and decoupling, and externalizing strings for you. BIG DEAL. I could code a framework to do that in an afternoon, from scratch. Then, I figured I would go and look into the code to see if I could use it as an application template, and realized that I had NO IDEA how to add a new page's data content. And as far as the whole "inversion of control" thing went, I had no idea where to add the "inverted code tidbits". So I decided I would try Tapestry, which proclaimed it was much simpler.... becuase it relies on convention and pure java classes for everything.... Here goes.....
2) Okay.... so in TAPESTRY, I read a tutorial. It looked great. No JSP, just plain old java. So I went to the tutorial here
http://tapestry.apache.org/tapestry5/tutorial1/. And I did everything exactly as specified.... And I just got a Maven build error, saying that 4 of the jetty libraries were missing. Then I went and realized that the tutorial I was using was copied from another tutorial, which used other , slightly different, maven configuration parameters. So finally I found a webcast about how "easy" it is to create a tapestry application. I followed it up until an annotation which was part of the webcast made my eclipse IDE choke. It turns out that the webcast was using an annotation called "ComponentClass" which was part of tapestry 5.0 but not 5.1, or something of the like. Then I realized that all the "Screencasts" are for 2006 !!! Meanwhile, tapestry 5.1 and 4.1 are supposedly completely different...... but both stable ? This seems like an absolute nightmare. Is there any single definition as to exactly what Tapestry even IS ? Worst of all, when I got a tapestry application working, I just saw a bunch of nested folders with an awkward variants of html. It seems like the original theory behind tapestry (just write java code, it will generate the app for you) , is getting replaced with a GRAILS like approach, with lots of non-java syntactical sugaring which is, essentially, like learning a new language.
So I briefly considered using Struts, out of desperation. And then after reading more from the tapestry folks about how STRUTS is pure HELL.... I realized, web frameworks are, for the most part, pure hell. Unless you have a month of full time to dedicate to their intense study, or you are an expert with ant, maven, hibernate, and all the dependant technologies, and even then (I'm relatively comfortable with hibernate and maven) you STILL may not have any success.
3) Im going to look at Front man. If it is what you say it is.... I might finally have found a simple wrapper to Servlets that saves me some time !!
In contrast, things were so much nicer five years ago when I first learned Servlets JSPs!!! My first java web application tutorial (
http://keyboardsamurais.de/2004/01/15/tomcat_tutorial_helloworld_for_complete_fools_-_english/) , took me one hour to set up, and I knew nothing about java beans, servlets, OR JSPs.