playframework/Play20 — comment on commit d3b4e7f8b5b336d0639e1090f92bb82291fd4884
File:  line 0
By pk11:

here are a few issues:
- custom location of source folders
- referencing generated src folder (generated by routes and templates etc.)
- referencing generated class folder (generated by routes and templates etc.)
- sbt-idea is mainly scala but we need to support java as well (adding a scala facet only if the play app is mainly scala)
stb.
the current implementation in play supports all of these play specific tweaks, while sbt-idea does not and while it's likely possible to tweak sbt-idea along these lines, these changes are exclusively required for play, so there is not much duplication here actually.

As for your other comment: as with every technology decision, it's a matter of tradeoffs. From one hand you get a dev environment, hot redeploy, javascript compilation with browser based error reporting, compiled templates, compiled routes, super fast runtime, battery included design which all contribute to the "play feel", on the other hand you need to sacrifice a bit on normal project standards and layouts (using servlets, wars exclusively, using maven project layout etc.).

Furthermore, play2 already removed many non-standard things: no custom classloader, no bytecode enhancement, reduced global state, using sbt as opposed to custom python scripts etc. What these changes buy you, for example, is that you can reuse play as library as well. Please see this prototype as an example: https://github.com/typesafehub/play2-mini

Hope this helps.