On Fri, Dec 25, 2015 at 1:22 PM, Alex Kotchnev <akoch...@gmail.com> wrote:

> These days, HTML5 + javascript single page apps are all the rage. The whole
> approach of having a rich javascript-based client (e.g. something based on
> Angular) that uses REST-ful services, although not incompatible w/
> Tapestry, certainly doesn't quite fit very well .
>

Is it Tapestry or Java that doesn't quite fit well? Having been using
JAX-RS (via tapestry-resteasy of course) paired with an Ember frontend now
for some months, JAX-RS always feels a bit cumbersome and never quite
fitting. Some of the fault is with Ember and it's modules though (but after
Ember's clear and predictable roadmap, ember-cli and friends, I'm not going
back to Angular). But even still, I can see why node.js is a popular choice
as the back-end for the single page apps.

For me personally, I'd love to use a different framework for building web
apps if it was better. The problem with most other contenders I've tried is
that they are nowhere near as comprehensive as Tapestry. They may shine in
some areas but often horribly lack in others.

Sometimes it's the language itself. I've always hated Java's syntax (coming
from Delphi, Smalltalk background) but I just don't get how people get by
without actual threads. Certainly there are many infoapps that merely
input/output data but as soon as you start doing some real number
crunching, it better run on the background and in parallel. I've seen so
many RoR and Python implementation that started out clean and small, then
somewhere along the way required one other service for this and another
service for that, deploying some C libraries, perhaps a few front-end
servers for scalability etc. etc. and before you know it, the time of all
of your engineers is spent on debugging some weird issues that nobody
really fully understands.

Even if it's not the complexity that causes dislike in me, it's the
performance. Nowadays, you can always "just spin up another instance" but
nobody ever thinks about the cost. In a fairly recent case (based on T5.3),
we were serving 17,000 requests/minute at peak times from a single node for
pennies on the dollar. I've seen a VC-backed startup serving 10,000
requests per day on a Heroku deployed RoR implementation and paying
$400/month for it. Compared to personnel and other costs, of course it's
peanuts but I just hate to imagine what something like that costs if it
ever became truly popular.

Anyhow, I guess you mainly wanted comments about the single page apps, not
about infrastructure. I return to the issue with deployment complexity.
Often the single page app still need supporting "static" pages, except
these pages are never quite static. They need common templates, perhaps a
little dynamic section here, up-to-date information there and so it goes...
Of course, you are always free to a totally different tool for these pages
but what I like in Tapestry is that you can do it all with it.

I'd love to know if there's another web framework that has built-in support
for common design patterns and makes it possible to easily implement
aspects like tapestry-security-jpa (
http://www.tynamo.org/tapestry-security-jpa+guide/). A lot in Tapestry is
just for dealing with Java's rigidity and certainly in languages like Ruby
or Javascript, you can always hack stuff together but too often, it quickly
becomes a huge, messy hairball when there's less structure.

Kalle


So, I would be curious to learn from everyone in the community where
> Tapestry still fits in the modern world. Is there a particular niche where
> a component-based server-side framework like Tapestry still fits very well
> ? Or does it need to focus on other usages to maybe work better w/ "modern"
> approaches for developing web apps ? Where do people in the community use
> Tapestry (and it works well) ?
>
> Cheers - Alex K
>

Reply via email to