A recent twitter post I've seen made some comment to the effect of "the DOM is Javascript's ugly date".
I tend to think that the DOM is a horrible way to define user interfaces and certainly in the context of multiple browsers with their quirks I find trying to build sophisticated web apps with complex view layouts to be a completely frustrating experience.
I would imagine anyone who has spent time in the non-web application programming world would likely agree.
So I have a multi-part question: if you are a web developer or designer, how do you feel about the DOM? Do you think the push towards the <canvas>
tag in HTML5 is the long-term death knell for the DOM in sophisticated apps?
Will a programmer who has little experience in the desktop world easily transition away from HTML? When should a programmer start learning things like the 2D drawing API used in the <canvas>
tag?
Finally, I know that there are some existing, current frameworks that abstract away the DOM from a developer. Two that come to mind are ExtJS/ExtGWT and Cappuccino. What are some other existing frameworks that focus on making the browser world more like the desktop ones in a cross-browser way and don't rely on plugins?
Okay, someone challenged me to say why I didn't like the DOM, so I'll edit the question and explain more.
I try to practice DDD in my role and I understand the third chapter of Evan's book about strategic design is pretty important for the well-being of my employer. As a developer, I want to spend my time implementing features that improve my company's core domain, I don't want to spend time with templates and DOM manipulation to put together a user interface. How much work do I have to do to layout a page or a screen, or put form widgets in my UI? In the desktop world, I tend to find it easier to get past the UI trivialities and back to working on the things in my company's business domain. I am able to work faster and get to the business logic that actually makes my company money. Am I the only person who feels like HTML and DOM gets in the way? Why did I read a twitter post by a well-known developer wherein he bitches about the DOM? I know I've heard this complaint before and I want to get an idea of what happens when the canvas tag and HTML5 is available in most browsers.
Also a concern that this is a discussion question and has no "right" answer is false IMHO. A "right" answer will be one that shows some thoughtfulness and at least an acknowledgement that there is something different about HTML5. After all, we all went to high school where we were asked to "compare and contrast".