The reasons are not about what misses to vert.x. My next project will probably use vert.x alone and I'm a great fan of what you're doing.
The first reason is the legacy code. The projet started on play 1.2.4 then we have migrate on play 2.0 at this time I didn't know about vert.x.
Now it would be a lot of work to rewrite the logic in an event base paradigm.
Secondly their's still one point where I don't feel confortable with (maybe because I need more practice with vert.x) it is about transaction handling and ACID database opérations.
The app we're writing has a complicated model with a lot of referential dependencies.
Actualy for this use case I feel more comfortable with this imperative type of developement (as in a complicated sequential diagrams I can easily identify transactional demarcation).
I have difficulties to project myself in event base dev for this use case. May be the hole database operation should be defered in a worker ? if so why wouldn't it be possible to delegate this opération to play as a peer ?
Last Play is a great framework, part of my team knows it and is already productive. Play is a full stack framework. Compilation is done on page reload (F5 programing) The compilation also include assets (coffeeScript and Less analysis etc...)
Play has an other approache to acheive the same goal as vert.x it handles concurency with the akka actor model and non blocking io with iteratee, enumerator...pattern
I think the main objective is not to determine if vert.x is better than play. I think it depends on uses cases and I would be nice to have choice. Some time I feel it is easer in one way some time in the other. maybe it's only a matter of experience.
Each come with solution that I feel more confortable with depending on the use case. Why should I have to choose if I can have the benefits of both ?
If I dare giving you one tip to make vert.x better it would be to include a real life exemple app (not only an echo on different network protocol) and add a section in the documentation to illustrate how verticles can collaborate to solve a non trivial problem.
I think it would be interesting to explain how to shift your mind to an other developement model. how to transpose the transactional problem would also be nice. I think this points would ease vert.x adoption.
Do you think my approach merging play and vert.x is still invalid ?
In the same way I think Glyn Normington's attempt to merge virgo OSGi server and vert.x could be really great : a real time non blocking solution and a container that permit's to deploy services and verticles with version management via the web console without stoping the service : wow ! a golden hammer for log analysis, ad servers and every service you can't stop for maintenance etc... +1
So Any idea on the way to provide to vert.x an already existing Netty httpServer instance ?
thanx Fred