Since 2007, we have been working on making Java web application
development easier. Play started as an internal project at Zenexity
and was heavily influenced by our way of doing Web projects: focusing
on developer productivity, respecting Web architecture, and using from
the start a fresh approach to packaging conventions - breaking where
it made sense the so-called JEE best practices.
In 2009, we decided to share these ideas with the community as an open
source project. The immediate feedback was extremely positive and the
project gained a lot of traction. Today - after two years of active
development - Play has several versions, an animated community of
3,000 people, with a growing number of applications running in
production all over the globe.
Opening a project to the world certainly means more feedback, but it
also means discovering and learning about new use cases, requiring
features and un-earthing bugs that we were not specifically considered
in the original design and assumptions. During the two years of work
on Play as an open source project we have worked to fix all of these
kind of issues, as well as to integrate new features to support a
wider range of scenarios. As the project has grown, we have learned a
lot from our community and from our own experience - using Play in
more and more complex and varied projects.
In the meantime, technology and the Web have continued to evolve. The
Web has become the central point of all applications. HTML, CSS and
Javascript technologies have evolved quickly - making it almost
impossible for a server side framework to follow. The whole Web
architecture is fast moving towards real-time, and the emerging
requirements of today's project profiles means SQL no longer works as
the exclusive datastore technology. At the programming languages level
we've witnessed some monumental changes with several JVM languages,
including Scala, gaining popularity.
That's why we think it's now time to move on, and to consider the next
major version of Play. Welcome Play 2.0!
Native support for Java and Scala
---------------------------------
In Play 1.1, we started exploring the possibility of using the Scala
programming language for writing Play applications. We initially
introduced this work as an external module to be able to experiment
freely without impacting the framework itself.
Properly integrating Scala into a Java-based framework is not trivial.
Considering Scala’s compatibility with Java, one can quickly achieve a
first naive integration that simply uses Scala’s syntax instead of
Java’s. This, however, is certainly not the optimal way of using the
language. Scala is a mix of true object orientation with functional
programming. Leveraging the full power of Scala requires rethinking
most of the framework’s APIs. After several versions we now have a
clean Scala module that allows the use of most of Play's features from
Scala, in a Scala-ish manner.
Now, we are reaching the limits of what we can do with Scala support
as a separate module. Initial design choices we made in Play 1.x,
relying heavily on Java reflection API and byte code manipulation,
have made it harder to progress without completely rethinking some
essential parts of Play’s internals. Meanwhile, we have created
several awesome components for the Scala module, like the new
type-safe template engine and the brand new SQL access component
Anorm. So we have decided that, to fully unleash the power of Scala
with Play, we are moving Scala support from a separate module to the
core of Play 2.0, which will be designed from the beginning to
natively support Scala as a programming language.
Java, on the other hand, is certainly not getting any less support
from Play 2.0; quite the contrary. The Play 2.0 build provides us with
an opportunity to enhance the development experience for Java
developers. Backed by our experience throughout the project we have a
clear idea of what we need to achieve and what mistakes we have to
avoid.
Powerful build system
---------------------
From the beginning we have chosen a fresh way to run, compile and
deploy Play applications. At the time it may have looked like an
esoteric design - but it was crucial to providing an asynchronous HTTP
API instead of the standard Servlet API, short feedback cycles through
live compilation and reloading of source code during development, and
promoting a fresh packaging approach. Consequently, It was difficult
to make Play follow the standard JEE conventions.
Today, this idea of container-less deployment is more and more
accepted in the Java world. It's a design choice that has allowed the
Play framework to run natively on platforms like Heroku, which
introduced a model that we consider the future of Java applications
deployment on elastic PaaS platforms.
Existing Java build systems, however, were not flexible enough to
support this new approach. Since we wanted to provide straightforward
tools to run and deploy Play applications, in Play 1.x we created a
collection of Python scripts to handle all build and deployment
related tasks.
But developers using Play for more enterprise-scale projects, which
require build process customization and integration with their
existing company build systems, were a bit lost. The Python scripts we
provide with Play 1.x are in no way a fully featured build system and
are not easily customizable. That's why we've decided to go for a more
powerful build system for Play 2.0.
As we need a modern build tool, flexible enough to support Play
original conventions and able to build Java and Scala projects, we
have chosen to integrate SBT in Play 2.0. This, however, should not
scare existing Play users who are happy with the simplicity of Play
build. We are leveraging the same simple play new, run, start
experience on top of an extensible model: Play 2.0 will come with a
preconfigured build script that will just work for most users. On the
other hand, if you need to change the way your application is built,
deployed, etc., a Play project being a standard SBT project will hand
you all the power to customize and adapt it to your special needs.
This also mean better integration with Maven projects out of the box,
the ability to package and publish your project as a simple set of jar
files to any repository, and especially live compiling and reloading
at development time of any depended project even for standard Java or
Scala libraries projects.
Focused on type safety
----------------------
One benefit of using Java as programming language for writing Play
applications is that the Java compiler can check certain parts of your
code. This is not only useful for detecting mistakes early in the
development process, but it also makes it a lot easier to work on
large projects with a lot developers involved.
Adding Scala to the mix for Play 2.0, we will clearly benefit from
even stronger compiler guarantees - but that’s not enough. In Play
1.x, the template system is dynamic, based on the Groovy language, and
the compiler can’t do much for you. As a result, errors in templates
can only be detected at runtime. The same goes for verification of
glue code with controllers.
We really want to push further this idea of having Play check most of
your code at compilation time in the 2.0 version. Accordingly, we have
decided to use the Scala based template engine as the default for Play
applications - even for developers using Java as the main programming
language. This doesn't mean that you have to become a Scala expert to
write templates in Play 2.0, just like you were not really required to
know Groovy to write templates in Play 1.x. Scala will be mainly used
to navigate your object graph in order to display relevant information
with a syntax that is very close to the Java one. However if you want
to unleash the power of Scala to write advanced templates
abstractions, you will quickly discover how Scala, being expression
oriented and functional, is a perfect fit for a template engine.
And that's not only true for the template engine: the routing system
will also be fully type-checked. Play 2.0 will check all your routes'
descriptions, and verify that the everything is coherent, including
the reverse routing part.
As a nice side effect, being fully compiled, the templates and route
files will be easier to package and reuse and you can expect high
performance gain on these parts at runtime.
Built for asynchronism
----------------------
Today's web applications are integrating more concurrent realtime
data, so web frameworks need to support a full asynchronous HTTP
programming model. Play 1.x was initially designed to handle classic
Web applications with many short lived requests. But now, the event
model is the way to go for persistent connections - though comet,
long-polling and WebSockets.
Play 1.2 already provides great asynchronous HTTP support and
WebScokets using continuations. Play 2.0 will be architected from the
start under the assumption that every request is potentially long
living. We want, for instance, to generalize Controller and
WebsocketController concepts into one single simple model that fits
all needs.
But that’s not all: we also need a powerful way to schedule and run
long running tasks. Although the original Play 1.0 Jobs model was
introduced for this, we really need something more powerful and
robust. The Actor based model is unquestionably the best model today
to handle highly concurrent systems, and the best implementation of
that model available for both Java and Scala is Akka - so it's going
in. We will be introducing native Akka support for Play applications,
making it possible to write highly distributed systems.
Datastore and Model integration
-------------------------------
Datastore is no longer synonymous with "SQL database", and it probably
never was. A lot of interesting models of datastores are becoming
popular, providing different properties for different scenarios. For
this reason it has become difficult for a Web framework like Play to
make bold assumptions regarding the kind of datastore that will be
used by developers. A generic play.db.Model concept in Play no longer
makes sense, since it is almost impossible to abstract over all these
kinds of technology with a single API.
We want to make it really easy in Play 2.0 to use any datastore
driver, ORM, or any another database access library without any
special integration with the Web framework. We simply want to offer a
minimal set of helpers to handle common technical issues, like
managing the connection bounds. We also want, however, to maintain the
full-stack aspect of Play framework by bundling default tools to
access classical databases for users that don't have specialized
needs.
Today, the preferred way for a Play Java application to access an SQL
database is the Play Model library that is powered by Hibernate. But
since it's annoying in a stateless Web framework like Play to manage
stateful entities such as the ones defined in the official JPA
specification, we have provided a special flavor of JPA keeping things
as stateless as possible. This forced us to hack Hibernate in a way
that is probably not sustainable in the long term. To address this, we
plan to move to an existing implementation of stateless JPA called
EBean. If you don't care too much about what is used under the hood
then it will change almost nothing for you, but if you really want to
use Hibernate or even another official JPA implementation you will be
able to do it without any special integration with Play. And if you
are using Scala we will continue to bundle Anorm.
Changes for current Play users
------------------------------
Play 2.0 will be a major release so it is unlikely that it will be
compatible at the API level with previous versions. Of course at the
architecture level you will find the same set of components, organized
in the same way, and most importantly, you will live the same 'Play
experience'.
What about my existing Play applications? How difficult will it be to migrate?
Don't worry, we don't expect you to migrate your existing applications
to Play 2.0. The Play 1.x versions will continue to be maintained and
you don't need to move to Play 2.0. We ourselves have many Play 1.x
web applications running and we will of course continue to support
them.
Remember: Play 1.2.3 is still the best way to write Web applications
in Java while Play 2.0 is still under development, and will continue
to be maintained and developed by the core team and contributors. Play
2.0 is an opportunity to move to for your next project, or the next
major rewrite of your application.
Getting started
---------------
Play 2.0 is still under heavy development and APIs are likely to
change, but you can already have a look to our preview versions. We
have set up a new GitHub repository to host the development, and we
have released a first preview version.
On the dedicated page at http://www.playframework.org/2.0, you can
track progress on this exiting project.
Have fun!
--
Guillaume Bort, http://guillaume.bort.fr
--
You received this message because you are subscribed to the Google Groups "play-framework" group.
To post to this group, send email to play-fr...@googlegroups.com.
To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
Bing
Most part of the core (HTTP and asynchronous invocation handling) will
be written in Scala, because it is really easier and more robust
(avoiding mutable states in this part will just make it easier to
debug and maintain).
But all the Java related API will be written in Java. Because we want
to provide an idiomatic API for Java and not force Java developers to
deal with Scala types. Also we want to have a clean Javadoc for the
Java API.
> 2. CRUD based at the moment bold on JPA. Will there be a CRUD-Module
> in the future?
I don't think so, or perhaps as an external module for particular ORM.
But trying to provide an unified CRUD module for all persistence
engines we can imagine is way too difficult. Anyway I think that the
current CRUD module is not flexible enough. It mainly solve the need
of writing a lot of repetitive screens, but It think it can be solved
with a better form/paginated list, tag components instead. But nothing
is decided yet.
> --
> You received this message because you are subscribed to the Google Groups "play-framework" group.
> To post to this group, send email to play-fr...@googlegroups.com.
> To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
>
>
--
Guillaume Bort, http://guillaume.bort.fr
It exactly what we count on. That's why, even if we provide a default
ORM for Java to keep the fullstack aspect of Play, allowing users to
create quickly web applications, we won't integrate it too much with
the other parts of the framework. It is really important for us that
we can use whatever persistence engine you want with Play 2.0, without
need to hack it.
Please track the progress, and if you think that we make choice that
could limit integration with other persistence engine, in particular
Siena, tell us!
> Moreover, when you foresee to integrate EBean, please also think about otherIt exactly what we count on. That's why, even if we provide a default
> frameworks (mine is siena as you may know) which will need to be integrated
> and do not wire everything too much tightly. In an ideal world, I would like
> to be able to remove completely EBean if I don't want it and replace it by
> Siena!
ORM for Java to keep the fullstack aspect of Play, allowing users to
create quickly web applications, we won't integrate it too much with
the other parts of the framework. It is really important for us that
we can use whatever persistence engine you want with Play 2.0, without
need to hack it.
Please track the progress, and if you think that we make choice that
could limit integration with other persistence engine, in particular
Siena, tell us!
We prefer to merge efforts to provide a single perfect framework that
will support Scala and Java independently.
If you are using the Scala module currently, the migration path to
Play 2.0 will be easy. The most important change that will make
migration to Play 2.0 difficult is the new type safe template engine.
But if you are already using it it will be easy.
> One question - will play-scala 1.x eventually move to Scala 2.9.1? I hope
> that feature isn't planned for the 2.0 version only.
Problem is that Scala 2.9.0 breaks the Java reflection API (they done
it for good reasons however). So migrating the Scala module to 2.9.x
breaks almost everywhere it uses Java reflection API(binding,
fixtures, etc.). It's almost impossible to migrate without rewriting
these parts.
I see anorm hasn't bean ported yet... btw, I take it you meant ebean
for java, anorm still preferred for scala?
On 8 September 2011 00:02, Rakesh Waghela <java...@gmail.com> wrote:
> Windows is not supported yet ?
>
> --
> You received this message because you are subscribed to the Google Groups
> "play-framework" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/play-framework/-/4WHeNxHSXCAJ.
It is what will be provided out of the box in the fullstack approach.
But nothing will prevent you to use anything else, either Java or
Scala based.
We don't want to reinvent the wheel. The whole approach and syntax is
borrowed from ASP.net Razor template engine. And signature declaration
are just plain Scala declaration.
> --
> You received this message because you are subscribed to the Google Groups "play-framework" group.
> To post to this group, send email to play-fr...@googlegroups.com.
> To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
>
>
--
Guillaume Bort, http://guillaume.bort.fr
What's matter for us is to continue to support and maintain the
previous versions that are already running so many applications. And
we will do it. As you know, when we had the security alert lately, we
fixed all versions, including the 1.0.3.x. And we will continue to do
it, even after the 2.0 release. We have also a lot of applications
running on Play 1.x and we will surely not rewrite them all, or
abandon them.
If you have already several applications running on Play 1.0.3.3 for
your customers, it's fine, there is no need to migrate them. Just
consider 2.0 for you next project, or if it's worse it for a
particular application.
On the other hand, I'm sure than once the 2.0 version will be ready,
the community will help to port the current Groovy template engine or
JPA based Model API as Play 2.0 modules to ease migration of old
projects. It should be fairly easy, just for now we want to focus on
developing the core of the next major version.
> --
> You received this message because you are subscribed to the Google Groups "play-framework" group.
> To post to this group, send email to play-fr...@googlegroups.com.
> To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
>
>
--
Guillaume Bort, http://guillaume.bort.fr
No need annotation for that. It will clearly be different API, so if
you use a statically compiled template it will just be a standard
method call, but if you want to evaluate a Groovy template (if a port
if available in 2.0) you will just have to call render()
Probably, nothing is final yet. But in 2.0 we will not block users to
use another namespace for controllers anyway.
> --
> You received this message because you are subscribed to the Google Groups "play-framework" group.
> To post to this group, send email to play-fr...@googlegroups.com.
> To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
>
>
--
Guillaume Bort, http://guillaume.bort.fr
> Couldn't the controllers always be imported by default; so that thisProbably, nothing is final yet. But in 2.0 we will not block users to
> piece of boilerplate isn't needed at the beginning of every view.
use another namespace for controllers anyway.
> --
> You received this message because you are subscribed to the Google Groups
> "play-framework" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/play-framework/-/H7nsQLwGxQkJ.
That's why we think it's now time to move on, and to consider the next major version of Play. Welcome Play 2.0!
-- Sylvain Wallez - http://bluxte.net
We are using Akka internally for requests dispatching, and performance
are awesome. You can test the sample application.
> --
> You received this message because you are subscribed to the Google Groups "play-framework" group.
The newer Rails stacks are less useful when it comes to getting a new app up and running. I would like to caution all the Play maintainers against too much modularity. If the seams show a lot then the barrier to entry rises and a main benefit (and appeal) of the framework is lost.
Best,
Keith
--
You received this message because you are subscribed to the Google Groups "play-framework" group.
To post to this group, send email to play-fr...@googlegroups.com.
To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
There has been some mention of reinventing the wheel and when I
started using the Scala plugin one thing lit up a warning sign for me
and that was Anorm.
I'm using Squeryl on my current project and I like it a lot. I looked
at Scala-Query and my Scala chops were just not up to it (barely are
with Squeryl). There are about 3 other database integration packages
for Scala now. So I was wondering, why Anorm? Is it really just an
in-house project?
I could see the same argument being made for the templating engine,
but that is much more tightly integrated with the rest of the project.
Anyway, in general sounds good..
Oh one other question.. you mention having good Java idiomatic APIs,
will there be Scala idiomatic API's as well? Seems like a lot of work
to maintain them both and keep them in sync. Currently the Scala
plugin is lagging and it has a very partial API retool.
def list(page:Int, sort:String) = { val p = if(page > 0) page else 1 Secured(p != 42) { Cached(p, sort) { Action { println("Listing page " + p + " using " + sort) Html(views.html.list(p, sort).toString) } } }
public class JavaApplication extends Controller { @Cached public static Result index() { System.out.println("REQUEST -> " + request()); String url = routes.JavaApplication().hello(5, "World").url(); return Html(javaIndex.apply(url)); }
Alan
--
You received this message because you are subscribed to the Google Groups "play-framework" group.
To post to this group, send email to play-fr...@googlegroups.com.
To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
> --
> Guillaume Bort, http://guillaume.bort.fr
>
Nothing is decided yet, but we will surely not backport important
changes like the new build system, scala support or the type safe
routing and template engine to the 1.x serie.
However it is likely than we will try to port the existing Groovy
template or the Hibernate based Model engine to the 2.x serie (after
the 2.0 release) to ease the migration. But not as standard default
components.
> --
> You received this message because you are subscribed to the Google Groups "play-framework" group.
> To post to this group, send email to play-fr...@googlegroups.com.
> To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
>
>
--
Guillaume Bort, http://guillaume.bort.fr
If play!2 is easy and productivity enough, It may could interest developer who don't know scala or even java.
As the rails which bring new developer into Ruby world.
--
You received this message because you are subscribed to the Google Groups "play-framework" group.
To view this discussion on the web visit https://groups.google.com/d/msg/play-framework/-/GVHW1bbtw1sJ.
#2 is a different story and one which I think the Play developers should consider very carefully. Developer productivity and ease of use are crucial values that should not be sacrificed. It is natural for project members to grow more sophisticated as their engagements expose them to more large and complex projects (I'm looking at you Spring Framework). But, ultimately, it is the 5 or 10 minute video demo that sells the framework to the masses.As long as developers are able to easily download the framework, create a new project with a single command and create a database-driven website with just a handful of files and easy-to-understand syntax, all with fast modify-deploy cycles then we should be OK.If we start seeing things like handle(_, _, _, _, _) as common method signatures then I think we'll be in trouble :)
--
You received this message because you are subscribed to the Google Groups "play-framework" group.
To view this discussion on the web visit https://groups.google.com/d/msg/play-framework/-/mWn_1896EwsJ.
To post to this group, send email to play-fr...@googlegroups.com.
To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
On Thu, Sep 8, 2011 at 17:46, homerdoe <ozie...@gmail.com> wrote:
> What attracted me for Play was the folowing things:
>
> 1-Speed of reloading(Python scripts)
> 2-Java
> 3-JPA
1. The speed of reloading is not linked to the use of python. We used
Python because we didn't want to launch a JVM for each command; this
issue is fixed with the use of the sbt console: you can open a
console, run several commands and it will be in the same. Reloading of
Java code will NOT be slower. Compiling Scala code is slower than Java
code, but if you choose to code in Java it won't be a problem
2. Java will not be a second citizen. We understand nobody likes
Scala, and Java has its own advantages. Both languages will be equally
supported. What language is used to write the core doesn't matter,
it's just an implementation detail.
3. While Hibernate will not be included, we will include Ebean
(http://www.avaje.org/) which has an API very close to JPA: it uses a
lot of annotations from the javax.persistence.* namespace. It's
actually more in the spirit of Play because it natively support the
explicit save. In Play 1.0, we had to patch Hibernate to get this
behavior. Of course, if you really want to use Hibernate, nothing will
prevent you from importing it to your project.
> Although i like Scala, i just cannot understand how can someone make
> some big business apps without a proper IDE for it.
It's a matter of taste, but if you're an IDE guy you should check out
Typesafe's Scala plugin for Eclipse: http://www.scala-ide.org/
They're throwing a lot of ressources to the project, it's already
pretty good and we can expect it to get better in the future.
> Im sorry guys but play may be gone for me, just hope you reconsider
> those decisions.
You're free to use whatever framework you like, but I'm confident Play
2.0 will appeal to the same Java developers who liked Play 1, and not
just people interested in Scala.
--
Erwan Loisant
2. Java will not be a second citizen. We understand nobody likes
Scala, and Java has its own advantages. Both languages will be equally
supported. What language is used to write the core doesn't matter,
it's just an implementation detail.
That's one of the reasons for which we wanted to announce with a preview: To reassure users regarding our intentions. Download the preview and simply use the plain old "play new"
> --
> You received this message because you are subscribed to the Google Groups
> "play-framework" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/play-framework/-/kEQVD7D-uzYJ.
I happen to love Scala but where I work it's hard to introduce a new language; I am waiting to make my pitch for a Scala app when 2.0 becomes an official release. In the meantime I have been diligently trying to port some Java apps over to Scala because I find it to be extremely powerful and showing people a working app is the best marketing tool. Despite the Scala resistance in my organization, the good news is that even though most engineers are not ready to switch to Scala, at least they are using the Play! Framework which is a pleasure to work in. So, it is definitely important to keep the Java support baked in for the old school peeps. Great job to all the devs that make Play! a reality!
Thanks for all the hard work, Playboys. You've made an amazing
product.
--
You received this message because you are subscribed to the Google Groups "play-framework" group.
To view this discussion on the web visit https://groups.google.com/d/msg/play-framework/-/ZMaYCShefbsJ.
To post to this group, send email to play-fr...@googlegroups.com.
To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
> Play has
> become big, because it is essentially Django/Rails for the Java world.
+1
Exactly why we got into Play (along with the simplicity of the python
commands and the fact that we do not need to use an IDE to develop the
java projects we seem to inherit constantly).
My personal opinion is try to make 1.2.2/3 even simpler for non Java
developers to use and more Django/Rails like rather than move to
another programming language and build system. What advantages exactly
does this increased complexity bring to Play?
Regards
> --
> You received this message because you are subscribed to the Google Groups "play-framework" group.
Obviously I personally like where this is going, however even if you
have doubts, I suggest looking at the sample app (yes this is a java
controller https://github.com/playframework/Play20/blob/master/samples/kiki/app/controllers/JavaApplication.java
), and then just wait awhile and see where it goes.
(2) I love Scala, but Scala library developers tend towards the
readability-destructive habit of creating punctuation-based DSLs for
each of their libraries. Not every library needs a DSL, and not every
DSL needs to use punctuation. If you ever consider putting operators
like '**', '<#', '<<?', '>>?', etc into the code base _please_
reconsider.
If will not change in Play 2.0. You will use the same
new,run,start,test commands to manage your application. The fact that
we use SBT under the hood instead of python scripts will not change
anything on the final UI.
And like in Play 1.x you will be able to work without IDE. Play will
just recompile and reload any change when you hit reload.
> --
> You received this message because you are subscribed to the Google Groups "play-framework" group.
> To post to this group, send email to play-fr...@googlegroups.com.
> To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
>
>
--
Guillaume Bort, http://guillaume.bort.fr
https://gist.github.com/1203802
Really no one can say that a Java developer will be lost reading or
writing this stuff.
--
Guillaume Bort, http://guillaume.bort.fr
--
You received this message because you are subscribed to the Google Groups "play-framework" group.
To post to this group, send email to play-fr...@googlegroups.com.
To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
> Just to clarify here, Anorm did NOT invent a syntax, a DSL or operators. It implements standard Scala Parsers Combinators
Granted, and I understand your rationale: "The Parser Combinator
library is a scala standard lib, therefore all Scala developers will/
should be familiar with its syntax." But I hope the continued
controversy around Anorm's syntax has communicated to you that this
assumption may not be sound or reasonable.
To reiterate and bring this back to the topic, I love the move to
Scala but would hate to see more Play! APIs seduced into employing
punctuation operators and thereby murdering readability.
punctuation operators and thereby murdering readability.
>> I wouldn't call it "murdering readability" anyway.
>
> Apologies! Looking back on it, that wording was chosen out of
> frustration and way too harsh.
>
> I also do not wish to deride what you've done with Anorm, because
> after doing the homework I described in my previous post I can
> definitely appreciate the library's versatility.
>
No problem.
> Point is that change is both awesome and scary, and I'd love to see
> Play! come out of this great change as the undisputed king of JVM web
> frameworks, if it isn't there already =)
Perfect )