There’s a very active discussion going on at the moment regarding Play 2 over the Google Group, and it’s really polarising opinion. A lot of people still seem to be under the impression that Play 2 is only a Scala framework, with a crappy half-baked Java API bolted on as an afterthought. It’s not – both Java and Scala are first class citizens in Play 2, and it amazes me that so much FUD is surrounding this issue.

People also seem to be viewing it as a usurper to Play 1, and that Play 1 is now a dead framework walking.

I’m going to do the laziest thing possible in a blog, and reproduce my contribution to this argument (with added emphasis on some parts):

I’ve got projects in production using Play 1.x (including a huge one that took over a year to write – and which would have taken much longer without Play). Do I think Play 1 is going to die? No – because lots of people, including Zenexity, have got lots of projects running on Play 1. For them to let it die would be like shooting themselves in the foot – got this from Guillaume and Sadek directly last night.

Do I want to port those projects over to Play 2? No – because they’re running perfectly well on Play 1, and are now in maintenance mode.

What will I choose for my next project? Probably Play 2, unless the code requires deployment as a war, and this seems to be a point that a lot of people are missing. There’s nothing that can be done in Play 1 that can’t be done in Play 2, and if you want, you can do it all in Java. My Scala is still pretty much at the beginning of the learning process, but this in no way discourages me from coding with Play 2 because *I don’t need to know Scala*. For a comparison, how many people knew Groovy before they started using Play 1 Groovy templates?

Backwards compatibility is important, and that’s why Play 1.2.5 (and .6 and .7 and .n) will be backwards compatible. For Play 2 to not be able to move past what has come before would maybe win some fans in the short term, people who want to be able to drop their Play 1 projects into Play 2 without a code change, but in the mid- to long-term it would have been obsolete before it even started.

There is no Play Scala or Play Java – it’s Play JVM, and that’s what it always has been!

For reference, the thread is

3 thoughts on “Play 2 – some people don’t seem to realise what they have

  1. if it takes 5 minutes in compilation time to compile your views every time you make a change you have a web framework that FAILS for typical web development projects.

    this is the Achilles heel of the play. its why most developers will try it and give up after hitting that wall.

    i must agree for realtime projects and for web or mobile apps play2 is very good solution as a server side technology

  2. With Play 2, it’s possible – and very useful – to organise your code into sub-projects. This is what I do, and as a result I haven’t found the compilation times to be particularly annoying. Especially given the trade-off of having so many things checked by the compiler – routes, etc, you save time on not making small mistakes that block.

    Also, the speed of the Scala compiler is a known issue and so it’s being addressed with high priority by Typesafe – I think we’re going to see major improvements on this in the very near future.

Leave a Reply

Your email address will not be published. Required fields are marked *