Some interesting points here.

2009/4/30 kranga <kra...@k2d2.org>

> 1) Documentation: It is one thing to remove dependencies on framework
> interfaces but quite another to leave the developer hanging with no
> documentation. Programming by convention is programming in the dark if the
> convention is not known.


Yes. That is the main time-eater. Finding out how non-trivial things are
supposed to work. But that is a "feature" of most OS project's
documentation:
a) hello world
b) some simplistic blog/calendar/whatever without any relevance to real
world projects
c) bits and pieces all over the net.
And this is already good documentation as far as OS goes...

The main problem here is that non comitters probably cannot help in writing
the docs, since they just don't know enough. The result would not be better
as what is there.

One example of an excellent documentation in OS projects was Stripes
Framework original docs by Tim Fennel. Since I didn't check the project for
a long time I don't know about its current state.

2) Although Tapestry claims to be POJO, you still have to have a contract
> (whether it is methods by convention or annotated methods). In the long run
> whether this is really better than interface implementation is not fully
> proven (much like the current debate of whether dynamically typed languages
> will prove more difficult to maintain in the long run).


There is no debate. One just has to look at the sources of well known and
big scripted projects and the difficulties they have to maintain them. In
the end there is no difference between the ugly php hacks and the more
recent varieties of languages. If it is easy to program bad, then it will be
done. Especially under time pressure. Statically typed languages make a lot
of the more annoying mistakes hard to do, like typos which are only caught
at runtime or wrong assignments like assigning a char sequence to a variable
which is meant to be int and calculated upon. again only caught at runtime.

Not having to implement an interface makes it easier for tapestry to change
implicit contracts. That is a totally different beast when talking about
interfaces with methods. But if it would be only marker interfaces there is
anyways no difference between a certain package requirement or implementing
an interface, so no reason to change anything.

3) Lack of a component marketplace: Wow, 4 years on and this is still on my
> list. We wrote a gigantic application in Tapestry 3 which is still in
> production. But we've decided to write all new apps in JSF with the aim of
> quickly adopting 2.0 when the spec is released. The main reason - a plethora
> of components to choose from.


True. But since components are easy to make in Tapestry the market would
probably be very limited anyways. All the important building parts are
already there and for 95% of cases you get along with not more code than it
would need to adapt to a premade component. JSF components are shiny and
all, but they all require you to adapt to their needs while in Tapestry you
can tailor components for your specific needs with relatively low effort.
That said, some more premades would be nice :)


> 4) Developer mindshare: Our analysis with Tapestry 3 shows that for every
> developer we hire, we have to write off 2-4 weeks until they become well
> versed in Tapestry. I don't believe T5 will be any different. You cannot
> argue against a standard like JSF that is supported by vendors. The lack of
> penetration of JSF speaks to its terrible initial design which hopefully
> will be rectified in 2.0
>
> I don't believe Tapestry will dwindle and die but I don't see it becoming
> the defacto standard ala Struts in the early 2000s.
>
Yes, JSF gets all the hype because it is a standard. But reading in Java
magazines makes it clear very fast, that even simple problems have quite
complicated solutions. It is an endless well of articles for the mags and so
the visibility even rises _because_ it is terribly designed. And a standard.
And because it has shiny components with slick buttons.

Reply via email to