Need advice about which tool to choose?Ask the StackShare community!

Play

746
604
+ 1
496
Tornado

436
407
+ 1
167
Add tool

Play vs Tornado: What are the differences?

Developers describe Play as "The High Velocity Web Framework For Java and Scala". Play Framework makes it easy to build web applications with Java & Scala. Play is based on a lightweight, stateless, web-friendly architecture. Built on Akka, Play provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications. On the other hand, Tornado is detailed as "A Python web framework and asynchronous networking library, originally developed at FriendFeed". By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.

Play and Tornado belong to "Frameworks (Full Stack)" category of the tech stack.

"Scala" is the top reason why over 73 developers like Play, while over 34 developers mention "Open source" as the leading cause for choosing Tornado.

Play and Tornado are both open source tools. It seems that Tornado with 18K GitHub stars and 4.98K forks on GitHub has more adoption than Play with 11.2K GitHub stars and 3.77K GitHub forks.

Coursera, Zalando, and Keen are some of the popular companies that use Play, whereas Tornado is used by Facebook, TravelPerk, and Zalando. Play has a broader approval, being mentioned in 112 company stacks & 47 developers stacks; compared to Tornado, which is listed in 69 company stacks and 16 developer stacks.

Advice on Play and Tornado
Leonardo Viada
Project manager and web developer at Revo Digital · | 4 upvotes · 2.7M views
Needs advice
on
PlayPlayRailsRails
and
ScalaScala
at

In the past few months, a project we're working on grew up quite fast. Since we're adding more and more features, I'm considering migrating my Express/TS REST API towards a more solid and more "enterprise-like" framework. Since I am experienced with TypeScript but not so much with Rails nor Play (Scala), I'd like to have some advice on which one could provide the best development experience, and most importantly, the smoothest paradigm transition from the JS/TS world. I've worked on some personal project with Rails, but I've found the Ruby language really distant from what the TypeScript ecosystem and syntax are, whereas on the opposite - during the brief tours I've taken in the past weeks - it's been a pleasure coding in Scala. Obviously, there are some key differences between the two languages - and the two frameworks consequently - but despite all the ROR automation and ease of use I don't despise at all Scala's pragmatic and great features such as static typing, pattern matching, and type inference. So... Please help me out with the choice! Regards

See more
Replies (4)
Kevin Emery
QE Systems Engineer at Discovery, Inc. · | 6 upvotes · 54.2K views
Recommends
on
RailsRails

I don't have the Scala experience to compare the two, but I can say that Ruby is a wonderful language. For procedural programming where you don't need a lot of concurrent execution threads, it's superior to Node.JS in my opinion. All of the concepts from Typescript have equivalent syntax in Ruby, but there are fewer symbols (e.g. () => { ... }); ) and more keywords (eg 'do ... end'). It's a very flexible language and allows for a lot of different approaches to how it's written, so coding standards and careful organization is important. In the long run, however, you'll find it quicker to debug than Node.JS and just as powerful.

See more
ALESSIO SALTARIN
Distinguished IT Architect at IBM · | 5 upvotes · 55K views

If you are comfortable with TypeScript, why not evolve to a C# ecosystem? Asp.Net Core + Entity Framework is a mature and well supported technology. As far as I can see in the enterprise market, the most adopted choice is still Java. So, maybe you may have a look to SpringBoot - and ultimately Quarkus.

See more
Hosam Aly
Senior Software Engineer · | 3 upvotes · 46.4K views
Recommends
on
PlayPlayRailsRailsScalaScala

If software performance is your top priority, then Scala/Play is probably best. If developer productivity is your top priority, then Ruby on Rails is the best choice in my opinion.

The Rails framework is batteries-included. The framework takes care of many things by default so that you don't have to. Logging, security, etc. It's also well-integrated; for example, controllers understand models out of the box. I had a better experience with RoR than with Play.

On the other hand, Scala and the JVM are more performant in general, so they can scale to serve more requests per second on the same hardware.

If you're considering serverless functions, then Scala is probably a better choice because it would be faster to load, giving you better economics.

See more
Reza Malek
at Meam Software Engineering Group · | 3 upvotes · 46.4K views
Recommends
on
RailsRailsScalaScala

This is advice regardless of your background and requirements. The Play framework has a terrible and complicated design, don't risk it. I even suggest Spring and Kotlin over it! You can use Scala for small services and Data Engineering stuff and benefit optimizations and threading of JVM. RoR, on the other hand, has a huge development speed, which I believe is a big advantage cause you can handle performance bottlenecks later. Also, Scala has another downside, which is featureful in terms of OO and FP paradigms, which makes anyone write code freely with any personal style and makes it a problem in a team, Hence a coding style has to be defined if there would be Scala development team.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Play
Pros of Tornado
  • 81
    Scala
  • 55
    Web-friendly architecture
  • 55
    Built on akka
  • 50
    Stateless
  • 47
    High-scalable
  • 46
    Fast
  • 40
    Open source
  • 34
    Java
  • 27
    High velocity
  • 24
    Fun
  • 9
    Lightweight
  • 8
    Non-blocking io
  • 6
    Developer friendly
  • 5
    Simple template engine
  • 4
    Scalability
  • 3
    Pure love
  • 2
    Resource efficient
  • 37
    Open source
  • 31
    So fast
  • 27
    Great for microservices architecture
  • 20
    Websockets
  • 17
    Simple
  • 14
    Asynchronous
  • 11
    Python
  • 7
    Lightweight
  • 3
    Handles well persistent connexions

Sign up to add or upvote prosMake informed product decisions

Cons of Play
Cons of Tornado
  • 3
    Evolves fast, keep up with releases
  • 1
    Unnecessarily complicated
  • 2
    Event loop is complicated

Sign up to add or upvote consMake informed product decisions

What is Play?

Play Framework makes it easy to build web applications with Java & Scala. Play is based on a lightweight, stateless, web-friendly architecture. Built on Akka, Play provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications.

What is Tornado?

By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Play?
What companies use Tornado?
See which teams inside your own company are using Play or Tornado.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Play?
What tools integrate with Tornado?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

What are some alternatives to Play and Tornado?
Spring
A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.
Spring Boot
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
Node.js
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
Django
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
ASP.NET
.NET is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.
See all alternatives