When comparing Play Framework vs FeathersJS, the Slant community recommends Play Framework for most people. In the question“What are the best backend web frameworks?” Play Framework is ranked 13th while FeathersJS is ranked 35th. The most important reason people chose Play Framework is:
It's like Java, but more Haskell-y.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Scala
It's like Java, but more Haskell-y.
Pro Asynchronous Core
Pro Interoperable with Java
Pro Fast
Pro Good documentation and a great community
Play has quite a large community which provides numerous tutorials and videos related to developing with Play.
The Play official documentation covers many things, such as the framework itself but also specific stuff such as Akka, SBT and Netty.
There are also many big companies that base their main sites around Play, one of them is LinkedIn which provides third-party documentation on a regular basis.
Pro Play is an extensive ecosystem
Play uses Akka for concurrency, Scala for a templating engine, Netty as a client-server framework and SBT (Simple Build Tool) for building. And they all come out of the box.
Play also comes with the option to scaffold your applications. Play is an all-embracing ecosystem designed to increase developer productivity and shorten development times.
Pro Simple for beginners
Play is very simple to get started. The documentation is very helpful for beginners and advanced users alike and the official website has a great "Getting Started" tutorial to begin developing with Play.
Pro Readable code
Play framework's convention over configuration methodology makes most Play projects have a very similar structure. This means that the code written for the framework is very readable. This enables a developer to switch between applications without having to relearn the ecosystem for every project. The built-in templating system also helps with code and makes it possible to have a very low count of lines of code.
Pro Can use Java, one of the most widely known languages
Java is one of the most widely known languages, so people coming from that background can jump right in and not have to learn a new language syntax.
Pro Good Websocket Support
Pro Can sync events between different Node instances
Feather can sync events happening in two different Node processes or even servers in real-time. For example: an event happens in server A, the user connected to server B is instantly notified of that event.
This is done through a central Redis or Mongo collection or through a websocket libraries' clustering library.
Pro Easy REST APIs
Through services, Feathers provides instant CRUD functionality, it also can easily expose a RESTful and real-time API through HTTP/HTTPS and websockets.
Pro Can be integrated in an existing ExpressJS project
Since Feathers itself is built on top of Express (it's a thin wrapper over socket.io, primus and Express) and because of Feathers' highly modular nature, it's very easy to integrate Feathers in an existing Express project.
Pro Plug-in any feature you need
Feathers makes extensive use of modules (which are called Feathers services). These services work like ExpressJS middleware and can be used with app.use('/path', serviceObject)
.
Services help developers keep their applications modular and as minimal as possible, without any unnecessary libraries or bloat.
Pro Support for different socket transports
FeatherJS uses primus which is a universal wrapper for real-time frameworks. Through primus you can easily choose which socket transport you want to use.
Cons
Con Backward incompatibility
The jump from Play 1 to Play 2.x caused a lot of confusion. While it is important to have some kind of evolution, sometimes it causes backward incompatibility which can create some problems. It makes tutorials or modules made for the old version obsolete. This can make it hard for beginners to find useful resources. The template engine which used Groovy now uses Scala.
Con Not as many resources to learn
Other languages and frameworks have countless tutorials, books, moocs, etc. Java and Play does not have nearly as much.
Con Not so widely used
Could be problematic to convince the client use this framework in his/her project.
Con Not very beginner friendly
Although the documentation for Feathers is very good, it still needs some configuration in order to get Feathers up for developing something with it.