

Play, Scala, and Iteratees vs. Node.js, JavaScript, and Socket.io - brikis98
http://brikis98.blogspot.com/2013/11/play-scala-and-iteratees-vs-nodejs.html

======
ollysb
The play API is far less clear and doesn't seem to add any value. It's like
they've created a bunch of special classes to do things that could have just
been written in scala. Formatting the message is a good example, with
socket.io it's just a plain old function call. With play you have to create an
"adaptor", which appears to be a function but is wrapped in some special case
wrapper called an Enumeratee. As for the names, if you have to explain what
every class is actually for you've done a pretty poor job in choosing the
names. The socket.io API seems vastly superior, it allows you to do exactly
the same thing is smaller and clearer whilst having all the power and perhaps,
less restrictions. Sorry for the rant but with so many good examples of APIs
(particularly for web interactions) the play API really should be better.

~~~
NickPollard
In fact it's the opposite - the reason that 'Enumeratees' and their ilk look
slightly unusual is that they are abstractions over general input and output,
and are not specific at all to Play or WebSockets.

If you are used to functional programming, Iteratees, Enumerators and
Enumeratees are very easy to pick up, and what you end up with is simple
building blocks that you can compose together to build powerful systems.

I am currently building a system using Play for real-time interaction with a
server and the interface is extremely clean.

