2. This means you can't just simply 'run' your 'programs' easily, reliably or in stand-alone mode.
3. It also means that your user interfaces must be created with the limited UI capabilities available to web browsers and HTML.
4. Your 'programs' are restricted by the browser's Document Object Model (DOM). This greatly limits what you can use and access for input and output.
8. Need to read or write to an external database or file? How about create or delete files? From the client side you can't.
9. You can't manipulate or access other programs.
10. You can't modify a web page. Sure you can update values in form fields, but you can't change links, text or anything else that the DOM says is off limits.
Apologies to regularly 'usability topic' readers - we will now resume our irregular programming (or lack thereof).