The perfect web framework
I’m hoping something that meets all the following is developed in a few years.
- The data access layer is separated out completely.
- Security built-in. Easy to prevent csrf and xss without having to think much about it.
- Packages css/js for you. Would be awesome if it worked with Sass/Coffeescript (or had something similar).
- Easy to write acceptance / unit tests.
- The language the framework is in has a good DSL for constructing SQL queries (like korma, sequel, etc). I don’t really need a full-fledged ORM — I like using postgresql features like views and triggers — but I’m not hand-writing SQL all the time.
- The compiler can catch typing or missing method errors. Computers should do my work for me, damn it. I should know on compilation that a route/url was generated somewhere in my application without the correct parameters.
- Views probably will get complex. There should be a good solution for complicated views. HTML generation code often shares lots of things with tiny variations.
- Comes with a project skeleton.
- Deploys on heroku.
- Live code-reloading in development mode.
- Compiling / packaging is easy.
- Installing the app to a server doesn’t require installing a butt-load of dependencies managed separately from the application (I’m looking at you Ruby).
- Has some sort of a CRUD admin interface that can be plugged in and customized. active_admin for Rails is pretty good. http://activeadmin.info/
- Has a sane way of managing 3rd party dependencies.
- The application boots fast (for minimal downtime during deployments) and doesn’t use tons of ram.
- Has a way to to stuff long running tasks in the backgrou d and report the progress of the task to the user. (note: i’m apparently not smart enough to understand amqp, at least in Ruby).
- Solutions for form validations and ajax.
- Support for i18n/localization.
I’m sorta thinking something in Scala or Haskell are the only options here. Haskell’s cabal still sorta sucks, and Scala’s complexity sorta scares me.