I 100% agree that the DOM API is a terrible situation. I don't agree that JS is pleasant. When you run a marathon, your legs ache, and that's the DOM API (and all the other concerns of web programming). JS is the little blister on your foot. It hurts too. CS is the vaseline on that little blister. Sure, you still have to run the marathon, and it's gonna suck. But at least the blister is no longer a problem, so you can focus on the bigger issues.