Very clear and level-headed reasoning Alex. Would you like to, or
would you mind if I put it up as a blog post on tynamo.org?

Kalle


On Tue, Oct 9, 2012 at 8:30 PM, Alex Kotchnev <akoch...@gmail.com> wrote:
> In the past five years, I worked on a number of greenfield projects. In
> three out of four, we ended up choosing Grails - it is very hard to deny
> the market & mindshare , the expansive documentation, the big name company
> behind the project, the large community, a massive number of plugins (for
> pretty much anything that you'd want), the end-to-end stack (so, you don't
> have to choose your ORM, DI, etc) and the ease of getting started with a
> Grails project.
>
> However, after working on a couple of these Grails projects for a few
> years, the latest project I got involved with , I chose Tapestry. In some
> cases, I've missed some of the niceties that Grails brings out of the box,
> but without too much effort I've been able to replicate them fairly easily.
>
> The biggest reasons for picking Tapestry over Grails on this latest project
> have been:
> 1. The inability to aggressively refactor your code - the dynamic nature of
> the language is nice when you want to knock something out quickly, and
> saves you a few lines of code here and there. However, after the codebase
> gets to a certain size, the inability to reliably refactor the codebase
> made the codebase difficult to evolve. Sure, IntelliJ & NetBeans has some
> support for refactorings in Groovy; however, it is not even close to the
> level of depth and ease of what you get with Java. I love Groovy to death,
> have been using it for many years (since it was in jsr-1 version) but ...
> the tool support is just not there yet (and likely will never be) and for a
> team of developers Java just ends up being a better choice (at least in the
> context of my team)
>
> 2. The importance of Tapestry components cannot be overstated. In a fairly
> modern web app, the functionality of each page depends on a bunch of
> markup, some CSS from a stylesheet, and some javascript from a javascript
> file. Tapestry makes putting everything together and using the results
> extremely easy and logical. In the late days of the last Grails project I
> was involved in, it was a massive PITA to build a page that really should
> have looked like 'that other one' - even when you used tag libraries to
> encapsulate the markup generation, you still had to hunt down all the css
> and js files that needed to be there.
>
> On the first issue, if you will be using Groovy for your pages, you will be
> in the same boat as Grails. Personally, I wouldn't recommend it - Tapestry
> already pushes the envelope on Java quite a bit, so your Java code ends up
> being very short and sweet already. In the past, I had attempted to use
> Scala in a tapestry app, and ended up having to just deal w/ some of the
> mismatches between the language and the framework and my pages ended up
> looking up like the same old java pages I would have had but with a
> different syntax.
>
> On the second issue, there is the grails resources plugin that tries to
> pull resources kinda like Tapestry, but using it requires this artificial
> separation into resource bundles which seems to be a PITA and somewhat mind
> bending.
>
> On the abundance of Grails plugins - after using a bunch for the projects I
> was working on, it turned out that many were not well maintained so we had
> to take over and maintain them ourselves. Sometimes, they're a good
> starting point, but in the end ended up less of a factor than I initially
> thought.
>
> I originally very much enjoyed the Grails build system (running on top of
> Gradle); however, with a pretty simple project setup, Maven seems to be
> just as straightforward. If you wanted Gradle, you could use that for your
> Tapestry app, and be on-par w/ Grails.
>
> On the latest project that I chose Tapestry for , I have been very happy
> with my choice. On a few occasions I've run into some frustrations (e.g.
> for rendering emails, I ended up having to use Freemarker, whereas with
> Grails the template rendering for emails comes for 'free' ; I had to build
> my own equivalent of the Grails "console" plugin where you can run Groovy
> commands inside of your running application); however, in all cases, the
> solution has turned out to be more elegant than I had expected (albeit, it
> required deeper tweaks in the framework than I had expected).
>
> Cheers,
>
> Alex Kochnev
>
> On Tue, Oct 9, 2012 at 4:17 PM, Thiago H de Paula Figueiredo <
> thiag...@gmail.com> wrote:
>
>> I haven't used Groovy myself, but it seems Tapestry and it work very well
>> for a long time. I've found a post by Howard Lewis Ship about this
>> combination in Tapestry 5.0.12, which was an alpha version, all that in
>> 2008: http://tapestryjava.blogspot.**com.br/2008/06/tapestry-with-**
>> groovy.html<http://tapestryjava.blogspot.com.br/2008/06/tapestry-with-groovy.html>.
>> Tapestry doesn't case about the language you use, as long as it generates
>> .class files and you put them in the right places. Some people has used
>> Tapestry with Scala too.
>>
>>
>> On Tue, 09 Oct 2012 16:39:16 -0300, scrotty <scro...@gmail.com> wrote:
>>
>>  I am about to create a brand new website. I plan on using Groovy for my
>>> JVM
>>> language (just an arbitrary constraint I imposed on myself as part of the
>>> polyglot experience) and would like to give my users the niceties of AJAX
>>> on
>>> the front end. Everything else: DB, ORM, Web framework, etc. are wide
>>> open.
>>>
>>> I am not new to development in general nor web development in particular.
>>> I
>>> have development experience in all the layers typically used in a web
>>> application (from browser to DB). I am looking for technologies that will
>>> allow me to create and maintain a straight-forward web application while
>>> minimizing the "gotchas" that naturally occur when gluing each layer
>>> together.
>>>
>>> For web framework I've narrowed my candidates down to Grails and Tapestry
>>> and am leaning toward Tapestry. But it's hard for me to ignore the Groovy
>>> synergy in Grails.
>>>
>>> Does anyone have recommendations (especially - but not exclusively - if
>>> you've used Groovy with Tapestry) on which field I should plant my seeds
>>> in?
>>>
>>> Thank You!
>>> Sean
>>>
>>>
>>>
>>> --
>>> View this message in context: http://tapestry.1045711.n5.**
>>> nabble.com/Greenfield-**development-Tapestry-or-**Grails-for-Groovy-dev-*
>>> *tp5716732.html<http://tapestry.1045711.n5.nabble.com/Greenfield-development-Tapestry-or-Grails-for-Groovy-dev-tp5716732.html>
>>> Sent from the Tapestry - User mailing list archive at Nabble.com.
>>>
>>> ------------------------------**------------------------------**---------
>>> To unsubscribe, e-mail: 
>>> users-unsubscribe@tapestry.**apache.org<users-unsubscr...@tapestry.apache.org>
>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>
>>>
>>
>> --
>> Thiago H. de Paula Figueiredo
>>
>>
>> ------------------------------**------------------------------**---------
>> To unsubscribe, e-mail: 
>> users-unsubscribe@tapestry.**apache.org<users-unsubscr...@tapestry.apache.org>
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to