Maybe I've been wrong about Javascript

For quite some time, I've steadfastly held the position that, in the context of web application development, if you were writing HTML or Javascript by hand you were doing something wrong.  HTML and Javascript are the bytecode of web development and should only be produced by tools or by libraries.  Web application developers should be working at a higher level.  As a result, I've been primarily interested in technologies like JavaServer Faces that revolve around higher level component models that abstract away the gory details of HTML, Javascript and even HTTP itself.   

While I haven't exactly changed my tune, recent experience suggest that I may have been too critical of developing apps in Javascript.   We've been developing our latest product at Socialware using Ext, and I have to say that I am quite impressed.   Ext is a Javascript framework that gives you a full featured component model like you would get with something like JSF.  However, that component model is implemented on the client side instead of the server side.  What you do in Javascript really is more like the high-level server app code than the low-level client side code I've always associated with client-side HTML+Javascript development.   

With frameworks like Ext available, the choice of doing a full application RIA-style on the client becomes not just reasonable but quite a compelling option.  This style of development does push you to a more service-oriented architecture, which could increase app complexity a bit if you hadn't planned to go that route.   However, more and more applications are going the route of services to support non-web (flash, iPhone, desktop clients, etc...) front ends, so I for many apps a service layer is (or will be) unavoidable.   Although in some cases it might be more work, it seems that the flexibility it buys is well-worth it.  

I'm going to reserve judgement until I have a little more experience, but so far things have been looking really good.  I expect that the next year will find me writing more and more and of my web applications code in the browser and less and less of it on the server.