You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@clerezza.apache.org by Reto Bachmann-Gmür <me...@farewellutopia.com> on 2011/09/29 21:17:53 UTC

a look at the play framework

I just had a look at the play framework, and I thought I share my impressions.

Play makes it easy to create webapps, clerezza aims to make it asy to
create semantic webapps. A similar goal but play has chosen quite a
different approach from clerezza. The framework doesn't seem to care
about adopting standards like jax-rs, osgi or maven. I think we can
learn from it in terms of usability and I don't think that the
technology choices we made for clerezza prevent us from being
similarly user friendly.

What's missing in clerezza for being able to show an equally nice
intro video as the one on http://www.playframework.org/?

- There's a python start script for play, clerezza should be a
double-clickabel jar but the facto needs to be started with memory
parameters
- Play start much faster than clerezza
- The difference that clerezza has to be started first and the one
create an app (using: Dev create 'scala_with_activator in "/tmp/test"
). We could consider adding the possibility to start clerezza with an
existing or newly created webapp to be activated as sourcebundle
- In clerezza after saving a file it takes usually more than a second
for the changes to be active, in play I couldn't notice any delay. (In
clerezza changes to ssp are reflected without delay but this is not
the pattern used in the default skeleton where scala renderlets are
used)
- Standard play framework uses a groovy like syntax for the templates.
Play scala uses scala based templates, their statement that they
"consciously chose not to create a new language" raises questions on
the boundary of languages. Certainly the clerezza approach of having
renderlets as full scala classes adds boiler plate code which is
against usability, on the other hand not introducing a new syntax
increase usability by allowing the user to benefit from his IDE.
- Error messages: Compile errors are shown in the browser highlighting
the position in the code. In clerezza you find the error messages on
the standard output. I've created CLEREZZA-639 for some improvements,
having the same functionality as with play seems impossible as there
is no uri-path associated to classes that could not compile, we don't
know which component would be invoked if these components couldn't
compile.
- The model classes correspond roughly to the ontology in a clerezza
skeleton project, getting instances of a certain type is a similar one
liner as in play, creating an rdf:list out of it to return it as
graphnode does however make things more complicated (we could simplify
this). In clerezza we would have to sort the results in scala (not
allowing optimization by the triple store), do a sparql query
(complicated and easily gets slow unless you know what you're doing)
or have a service maintaining an index (which would definitively be
less easy).
- Not sure if using jquery and rdfquery we could show a similarly easy
way to implement an ajax app.
- Play has a default editing application for editing the model
(getting a list and editing instances), in Clerezza there is nothing
similar yet.

There is certainly more that clerezza should be improved in clerezza
to offer a similarly easy first-webapp experience as play but I think
this are the main points.

Cheers,
Reto