I'm not sure why this comment is modded so highly. The reason web programming sucked was because we have things called browsers that restricted our capabilities. Add on to that the need for everyone to agree to standards which caused progress in browser technology to slowly adopt newer technology. It is still the same problem even today.
Think about it for a second even if you aren't a web programmer. There was a reason (not just Microsoft) for IE6 adoption: it actually, at one point, implemented more than the competition. Mozilla was around but not nearly as capable. Netscape, too, was around but clearly lacking in the quality and performance of IE at that particular point in time. But everyone would rather believe that IE6 was just flat out terrible throughout its entire existence. To that I ask, would you like to use and program for Netscape 4 or 5 for the same period IE6 was dominant? Obviously not! What we should have received is more intense competition rather than a lengthy side lawsuit about how MS abused its monopoly.
To make a long story short, Netscape was not our savior, Microsoft was still the bad guy (honestly), and the world finally learned that monopolies sucked. The true turning point wasn't until Mozilla came around with Firefox and other companies like Apple and Google began creating their own browsers for the purpose of expanding web technology. It wasn't until Firefox, Safari, and Chrome browsers that we finally exited the lack of improvements in client browser technology.
Any industry stuck in an old way of doing things is going to suck. It doesn't matter if you're the smartest person in the world. If you can only using a hammer, nails, and wood, you're not going to be building skyscrapers quickly or efficiently anytime soon. This is exactly what restricted the web and people that worked for the web.
Now to address some key point presented by the parent:
The entire AJAX and framework of web programming is wrong. It was a quick hack added so that you could make dynamic apps using existing technologies without major changes to clients. But its layered hack upon hack upon hack. We really need to scrap it all and come up with a web application programming stack- a new markup language that's meant to do pixel perfect rendering (HTML is not, but its used that way), an HTTP replacement that's stateful rather than stateless, a cleaner way of sending data back and forth from the server. But if you write on top of an ugly platform, you're going to get ugly code.
There is so much wrong with this claim that I don't know where to begin. Let's start with stateless programming since that's the key theme in this opinion. I would be curious to hear what the parent's idea of "right design" is when a service is expected to provide for millions of requests simultaneously. At some point you're going to be forced to parallelize that work. Congratulations, you've just been forced one step closer to implementing a stateless system. You see, in a stateless system, it is much easier to cut off pieces of work into bite-sized chunks to be handled out of order. When you restrict yourself to state, you're at the mercy of single threaded technology to get your work done. It is 2013, we have CPUs in our pocket phones that have 4 cores. Stateless is here to stay and it will become more pervasive even without any web interaction.
Let's also look at how stateful systems do under latency. Just go play any online game to get a feel for this and login to some far off server that crosses an ocean or two. Your latency will suck, packets will be dropped, and the overall experience sucks. The internet was designed to be world-wide. It was designed to travel great distances where latency and reliability was a real issue. Packets are not guaranteed to arrive. This is why we have TCP and an in-your-face kind of restriction that things can time out. I mean we're sending huge amounts of data around the world for christ-sake. Until we have the capacity to serve everyone's data needs redundantly, and a magical guarantee a packet will arrive around the world safely, I don't see stateful systems implemented safely for world-wide consumption becoming the norm any time soon.
Now we have implemented such systems. But to the user, they appear to be unstable or unreliable. Take for example IRC. Occasionally you will get disconnected from the server, for the same reasons you get kicked out of an online multiplayer game. Somewhere along the path of servers and routers, a failure happened and now your state is worthless and has to be restarted all over again. If this was the mode of programming today people would be writing the same slashdot post about why we can maintain a solid connection for the rest of our lives instead of why web programming sucks.
Finally let's talk about HTML and rendering technologies. Web browsers are going to get their "pixel perfect" rendering engine as 2D canvas. That's an HTML5 spec so that issue will eventually be addressed. Besides that I'm not sure exactly what better option we have other than HTML for non-pixel perfect rendering. If the parent is insistent on 2D Canvas as a replacement for hypertext, I say he can go to hell. That doesn't imply that HTML4 or even HTML5 is perfect, just that it takes care of lots of things people shouldn't need to care about just to relay hypertext-like information. For what it is worth, HTML has gotten us pretty for for all of the caveats it has. I don't know of any other standard that allows you to do what HTML does efficiently.
For example let's take a step back and see what people did prior to HTML to "publish" their opinions. They were called editorials and published in print media like newspapers. You would send a bunch of text called a letter to a newspaper, and if they wanted they'd print it in their editorial section. But they wouldn't copy your letter verbatim as it appeared, that would be stupid. Instead they ran it through their entire typesetting process so it would appear on the paper correctly. That's right, this was a team effort, now replaced by something that people can learn to do alone in a few hours and distributed electronically, world-wide, for free. The result obviously isn't of the same quality, but for our technology, it is more than enough.