Community Split in Two?

Posted: April 1, 2012 in Play Framework

I have just returned from a short trip to Rome on business. I didn’t have much access to email, so I came back to a large number of emails, many of which were from the ever increasing play framework digest emails I get from Google groups. Nothing to different yet, except when I started reading, I was amazed by the reactions to the “Open Letter” thread. If you haven’t read it, then feel free to go to Google Groups and have a read, but in summary it simple read ‘I don’t like Play 2, I don’t like Scala, the Play guys have messed up’.

Quite simply, the haters are wrong, simple as that. The Play team created a fantastic framework in Play 1.x. Even at 1.0 it was way ahead of the other frameworks, and continued to push the boundaries through 1.1 and 1.2. In Play 2.0, the team have taken a different direction from what made Play 1.x special, but have again built a fantastic framework.

Now, if I were to build a new web application, of course I would choose Play. Next question would be which one? Well, it depends on the project I am undertaking, but as of yet I have not come across a problem that Play 1.x could not solve. So, I would probably stick with Play 1.

I don’t feel proficient enough in Scala to jump onto the Scala version of Play, so if I did decide to go for a Play 2 app, I would choose Java. Indeed, I am looking forward to Nicolas’s book on Play 2 with Java. I will more than likely also get Peter Hilton’s book (Play 2 with Scala), but the Java book will be much more beneficial for me. Many people have argued that you need to know Scala to write views etc, but that is not true. I had never used Groovy before I started building Play apps, but I picked groovy up in no-time writing my views, and I have already found the same is true in Play 2. Also, as a side note, you can simply use the Groovy plugin and write your views in good-old Groovy.

Now, I understand why people aren’t fully bought into Play 2 yet, I get it. I am still so happy with Play 1.x, I am not ready to move across yet. But what I don’t get is why people are so upset that Play 2 exists? It has its place, and will grow into another great framework, and I will be a better professional for knowing both technologies.

Be grateful to Guillaume and the team for open sourcing the Play framework and continuing to support both 1.x and 2.x. They saved the Java world from the tedium of J2EE frameworks and made developing fun again. If you don’t like Play 2.0, don’t use it, continue to use Play 1.x.

  1. Jason says:

    The Play Framework is licensed under the Apache 2 License. Why not fork the Play 1.x framework, remove the Scala portions, and support a java-only version?

    • codemwnci says:

      You could, but why bother? Nicolas to name one of many continue to support play 1.x. Why fork? Forking, in my opinion would only dilute the power Play1.x has, and would lose out in the long run. If the core dev’s felt that 1.x was being left behind, they could easily ask for more community support…and I am sure they will at some point.

      • joppinkaru says:

        Well, it’s more a matter of the direction that the developers are taking with Play 2.0 that is concerning a lot of Play 1.x adopters. I recently tried to upgrade a small project in 1.x to 2.0, and realized a lot of 1.x features were gone (such as the ability to generically map all of my actions via a controller/action wildcard in the routes file, which in Play 1.x can be done simply in 1 line).

        The Play developers are devoting most of their effort to Play 2.0/Scala/Typesafe features that I don’t want or need, and writing a lot of the framework in Scala, which I don’t care to debug should framework issues arise.

        If the project was forked and community driven, I’d have more confidence that the framework I rely on will not be overshadowed by a project I know I won’t use. The Play homepage is highly touting the 2.0 framework; if I had downloaded that first, I wouldn’t have adopted the Play framework to begin with.

  2. Jeff says:

    +1 for fork. Support and innovate are two different things.

  3. Same sentiment here. A lot of the arguments in that thread were poorly worded. I think part of that is due to language barriers, but people have to realize that converting their app to Play 2.0 isn’t necessarily a worthy goal yet. It’s a new rewrite and it just came out! Why are you trying to convert production code? Play 1.x took a while to mature.

    I do share concerns regarding the team being able to support both code bases at once, but we will have to wait and see. Calls to fragment the community seem naive. We’re just getting started here; let’s see where it goes.

  4. tmbrggmn says:

    Good write-up.

    While we (that is, every one of us who feel in love with and/or used Play with great success) owe a debt of gratitude to the people at Zenexity for making Play happen, it’s unfortunate that there are mixed messages coming out from them. For example: “Play 1.x is supported now and in the future” versus “well if you don’t like the progress made on the 1.x code base, shut up and contribute or pay someone to do it for you”.

    Whether they like it or not, they designed it and people look to them to take responsibility for it. If they cannot, or will not, then that’s fine but they should communicate that clearly. I can speculate on the particulars of the why and when of Play 2.0 but that’s pointless.

    It’s clear that Guillaume feels very strongly about the direction of the framework, and he doesn’t strike me as a man that is likely to give up on his convictions any time soon. So, that means Play 2.0 is here to stay, and the technology they built it on will not change. The realistic choice right now – that is, for all of us who are not fortunate enough to be able to work in a dynamic and modern environment – seems to be: use Play 1.x knowing that its official support is shaky, or somehow convince everyone around us to learn Scala and jump into Play 2.0.

    The only thing I can do is hope that I somehow find a job in an environment where one of the above choices is actually viable, because right now I sure as hell can’t justify either of them.

  5. joppinkaru says:

    The developers of the Play framework have already split the community by converting the latest version of the framework core code to Scala.

    This is the direction they’ve chosen to take the framework as a whole, and it’s great if you’d like to contribute, troubleshoot, and code your projects in Scala. But for developers who don’t wish to go this route, it’s disconcerting. The main download link is for Play 2. The majority of the new documentation being written is for Play 2. It’s not a mystery where this project is headed.

  6. jeffthorne says:

    @ross not sure how wanting to use a framework written in my language of choice is naive. If the play core was suddenly ported to kotlin would u expect the scala folks to stick around and ride on top of it? I don’t believe they would. I appreciate the hard work of the play folks and see merits in scala. I just find the syntax to cryptic for my tastes and would like to see a framework more resistant to major changes.

    If I was smart enough or had the time I would port the thing myself and call the framework “Work” 🙂
    as everyone and their mother has written off java as still being enjoyable.


  7. numi says:

    I recently had a project take >10 min to compile. That’s when I changed one character.

    Now compare that experience with play 1.x and you can see why lot of developers think play2 is regressive. A step down from play1.x.

    At least thats how most developers will see it after going beyond hello-world projects…

  8. Dean Hiller says:

    exactly, maintenance mode sucks. I agree 200% with @numi….the scala compile changing on character in an html file takes VERY VERY long and I changed an html file!!!! This new concept of let’s compile the html files and have typesafe html files while sounding cool on the surface led to really really slow development times as it feels like we are back to server restarts except now the server restart happens every time I tweak an html file…..very annoyed. While scala is a great language, the compiler is still way way way too slow.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s