> (2) Think very hard about whether you really want to design any reasonably complex user interface in HTML, CSS, and JavaScript instead of either (A) programming a native application or (B) using some other browser-based user interface framework like Flash (or perhaps coding the entire interface in an HTML 5 canvas if you're some sort of "standards" fetishist). Not that I've actually tried doing anything in Flash or HTML 5 canvases, but seriously [cue: Famous Last Words], how could anything possibly be more painful than designing user interfaces in HTML, CSS, and JavaScript?
WTF? Look at couchapp's.
Of course, it is no fun when code of whole application is written in one large HTML page.
I use Evently widgets with CouchDB, PHP and java. I use my own little framework on top of that. I use MVC, my own libraries, and database abstraction layer. I have no problems with coding of whole application HTML/JavaScript.