Comparison tables

From Impredicative Wiki
Jump to: navigation, search

A comparison between Ur/Web and some other functional programming frameworks. IMPORTANT: This page is under construction!

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 Type-safe metaprogramming
Ur/Web Yes Yes BSD Ur/Web Native code Yes Yes
OPA Outdated Yes AGPL or Commercial OPA Native code  ? No
Play 2 Yes Yes Apache 2 Scala and/or Java JVM No No
Lift Incomplete / outdated Yes Apache 2
Yesod Yes No(?) BSD Haskell Native code No No
Happstack Yes No(?) BSD

Part 2

Framework "Stateless" CSRF protection Javascript code generation FRP-like client-side code Type-safe SQL Dynamic table creation MVC-based
Ur/Web Yes Yes Yes Yes Yes No Optional
OPA Yes
Play 2 Yes No No No No Yes 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.

Personal tools