Comparison tables
(how to update this page) |
(Part 1 complete) |
Revision as of 05:39, 18 December 2011
A comparison between Ur/Web and some other functional programming frameworks.
To update this page if you don't have an account on this wiki, email Robin Green. Or create an account.
Part 1
Framework | Documentation | Commercial support | License | Programming language(s) | Server-side execution model | Free of garbage collection overhead |
---|---|---|---|---|---|---|
Ur/Web | Yes | Yes | BSD | Ur/Web | Native code | Yes |
OPA | Outdated | Yes | AGPL or Commercial | OPA | Native code | ? |
Play with Scala module | Yes | Yes | Apache 2 | Scala | JVM | No |
Lift | Incomplete / outdated | Yes | Apache 2 | |||
Yesod | Yes | No(?) | BSD | Haskell | Native code | No |
Happstack | Yes | No(?) | BSD |
Part 2
Framework | "Stateless" | CSRF protection | Javascript code generation | FRP-like client-side code | Type-safe SQL | Type-safe metaprogramming | MVC-based |
---|---|---|---|---|---|---|---|
Ur/Web | Yes | Yes | Yes | Yes | Yes | Yes | Optional |
OPA | |||||||
Play with Scala module | Yes | No | Yes | ||||
Lift | Low-level only | Pull-based | |||||
Yesod | |||||||
Happstack |
Notes
It is not really worth trying to measure "maturity" here, as none of the frameworks on this page have seen huge takeup thus far, and in any case it should be remembered that a "mature" web framework is not necessarily a modern or well-designed one.
There is also no point in comparing free support, since any web framework these days, unless it is a totally dead project, will have free support from the community.
The Programming language(s) heading refers to the programming language(s) (and, for the avoidance of doubt, template language(s)) that the developers using the framework are expected to program in (excluding Javascript, if applicable), not the programming language(s) that the framework is implemented in.
Stateless means that no state is no retained in the application server (as opposed to the database, or the web browser) between requests.