Unless web browsers somehow become obsolete in the next ten years, you're looking at an evolved version of what we have now. HTTP, CSS, XHTML, and JS have plenty of room for improvement. It takes years for the standards to be worked out and longer for browser support, which is never 100%. Add a few more years for developers to take full advantage of the new capabilities.
What we'll have in ten years will be another iteration or two on what we have now.
Trying to figure out what is the best technology and then learning that is a great goal but I think it's more important to learn a variety of technologies and be ready to adapt quickly to new things.
Learn HTML, the document object model, and Javascript (while those do change the change is slow because of the huge installed base.) Unix is going to be relevant for a long time. Relational databases have been around since the beginning of time (Jan 1, 1970) and aren't going away any time soon. If you're good with the fundamentals then you'll be able to adapt to anything else.
Until then, the next version of XMLHttpRequest should somehow provide a way for the server to send a request to the client, not needinng the client to make requests all the time...
Or maybe you should be asking what will replace or make better the DOM?
Instead, what you should be doing is learning how to be an excellent technology generalist. Get a solid foundation in the "Basics" of the web. Learn a scripting language that runs on the server, learn javascript, learn CSS & HTML. The most important thing is to figure out how you pick up new languages, because if you work on the web, you're going to be doing a LOT of picking up new languages and technologies.
Not putting your eggs in one basket is a very apt analogy to how to best prepare for a career on the web.
The key word here is could.
To use Silverlight as an example, I think it sucks. It's bloated and I don't get it. I'm tired of playing catch up with MS technologies and all the freaking featues they pack into them. I mean: ASP.NET. ASP.NET AJAX VB.NET 3.0, LINQ, F#, C#, J# (being retired), VBScript, VS 2003, VS 2005, VS Team Foundation, Windows Workflow, Windows Communication Foundation and Windows Presentation Foundation. Seriously?
Windows Workflow in particular is extraordinarily huge. If keeping a program in one's head is important (and it is), then it's not going to happen with Windows Workflow. As I get more comfortable knowing what I want to code and how I want to code it, I'm finding myself just wanting to use stuff that gets it done in the path that is the most natural to me.
Silverlight? No, thanks.
I agree that keeping up with the many languages is difficult. But it's necessary if you want to be the best and on top of the game. Test drive a lot of different languages and pick the one that meets your needs and feels most comfortable. Sometimes driving more then one language is the best option.
We could argue until we are all blue in the face about what the best language is and what the next "big one" will be. I wouldn't focus as much on the language in 10 years, no one is looking to utilize that today. The future is important (as many get rich making it) but keep in mind a lot of companies that have been ahead of there time got bit in the ass from it.
They must realize that the only way they will gain acceptance amongst hackers is to convince them that Silverlight is not a traditional MSFT product. A few months ago they were kissing ass to Arrington and a few others trying leave positive impressions about the platform and convince everyone of its openness.
But they may already be in trouble because AIR seems to have an edge in early adoption so far. Pownce is written in AIR for example.
It'll be interesting to see how things play out. There is a huge need for certain features of Silverlight and AIR (like local file system access and a network API), but I dont know if those will be compelling enough to drive either of these to "critical mass".
and
http://junctionphp.com/ - Junction: a PHP 5 object persistence layer
You end up having to write a lot of custom controls simply because the ones built in are great for rapid POC type stuff, but aren't necessarily what you want for your "real" app. Then you're just trading one set of community developed stuff for another.
I also looked at OpenLazslo and it's pretty neat, although it's lack of IDE, community support and the fact that it's stuff crashed my system a bunch (nothing like having to install tomcat on a vista box) turned me off (the ol site was down while I was testing it, and has been down numerous times when I've been demoing it, so that's a huge problem).