There have been many exciting announcements recently about the Play Framework, including new releases and that LinkedIn will adopt Play across the company. So I took this as an opportunity to reflect on my own experience with Play.
It has been 18 months since we chose Play and Scala for the Egraphs technology stack, and I remember that our decision at the time was Play versus Rails or Django or Lift. One factor that influenced our decision was that we prefer strongly and staticly typed languages because of how heavily you can lean on the compiler to prevent many bugs. Need to rewrite several classes or even rename types across your codebase? Rewrite dozens of files and when it compiles, it probably works as expected, and besides your IDE will do much of the heavily lifting because it can infer so much about your code from static types. For these reasons, it is easier to maintain typed codebases. On the flip side, I have witnessed how easy it is to let bad code in dynamic codebases remain unrefactored for years.
It was also reassuring to see the close relationship between Typesafe, the Scala company, and Zenexity, the company behind Play. And Scala, with its expressiveness and lambda functions and everything else, was a welcome alternative to Java that vanquished my envy of Ruby and Python developers.
Fast forward to now, we have been running production instances with mostly smooth sailing. There were a few bumps along the way, but they’ve all been resolved, often due to how rapidly Play and its ecosystem are maturing. One thing that I was not expecting is just how exciting it is to be part of this all. We are apparently one of the more visible startups running Play and Scala, and our little startup is even featured on playframework.com in the same breath as LinkedIn and Gilt. I mean, lol. (Egraphs was headquartered in a basement a year ago.)
It is companies that determine the success of an open-source framework. Serious deployments of a web framework make it worth talking about until eventually it becomes the go-to standard for that language. The long list of recognizable companies that use Rails and Django determined the success of those respective framework, and so it will be with Play for the JVM world, except that Play is built on a type-safe and scalable language with modern constructs for asynchronous processes. I think we are in the middle of the Play’s Framework’s ascent toward general popularity.
While we’re on this topic, I will make another prediction about Play. When high-volume websites get to a certain size, there is a general desire to squeeze more performance out of application servers. To that end, Twitter migrated off Ruby and now runs on Scala. Same with Gilt, who also uses Play. Foursquare was rewritten from PHP to Scala. Facebook sidestepped the performance limitations of PHP by using HipHop to translate PHP to C++.
What each of these examples has in common is the search for performance offered by compiled languages. By focusing on scale-oriented features like Akka actor and non-blocking I/O, Play has positioned itself well to run high-traffic websites, so I wouldn’t be surprised to see more major websites migrate to Play in the coming years.
It has been 18 months since we chose Play and Scala for the Egraphs technology stack, and I remember that our decision at the time was Play versus Rails or Django or Lift. One factor that influenced our decision was that we prefer strongly and staticly typed languages because of how heavily you can lean on the compiler to prevent many bugs. Need to rewrite several classes or even rename types across your codebase? Rewrite dozens of files and when it compiles, it probably works as expected, and besides your IDE will do much of the heavily lifting because it can infer so much about your code from static types. For these reasons, it is easier to maintain typed codebases. On the flip side, I have witnessed how easy it is to let bad code in dynamic codebases remain unrefactored for years.
It was also reassuring to see the close relationship between Typesafe, the Scala company, and Zenexity, the company behind Play. And Scala, with its expressiveness and lambda functions and everything else, was a welcome alternative to Java that vanquished my envy of Ruby and Python developers.
Fast forward to now, we have been running production instances with mostly smooth sailing. There were a few bumps along the way, but they’ve all been resolved, often due to how rapidly Play and its ecosystem are maturing. One thing that I was not expecting is just how exciting it is to be part of this all. We are apparently one of the more visible startups running Play and Scala, and our little startup is even featured on playframework.com in the same breath as LinkedIn and Gilt. I mean, lol. (Egraphs was headquartered in a basement a year ago.)
It is companies that determine the success of an open-source framework. Serious deployments of a web framework make it worth talking about until eventually it becomes the go-to standard for that language. The long list of recognizable companies that use Rails and Django determined the success of those respective framework, and so it will be with Play for the JVM world, except that Play is built on a type-safe and scalable language with modern constructs for asynchronous processes. I think we are in the middle of the Play’s Framework’s ascent toward general popularity.
While we’re on this topic, I will make another prediction about Play. When high-volume websites get to a certain size, there is a general desire to squeeze more performance out of application servers. To that end, Twitter migrated off Ruby and now runs on Scala. Same with Gilt, who also uses Play. Foursquare was rewritten from PHP to Scala. Facebook sidestepped the performance limitations of PHP by using HipHop to translate PHP to C++.
What each of these examples has in common is the search for performance offered by compiled languages. By focusing on scale-oriented features like Akka actor and non-blocking I/O, Play has positioned itself well to run high-traffic websites, so I wouldn’t be surprised to see more major websites migrate to Play in the coming years.
No comments:
Post a Comment