Though HTML and JavaScript may seem old, there is nothing inherently problematic about building complex applications with them. The larger "problems" web applications must deal with have to do with the nature of the world wide web: the inconsistency of network communication and the statelessness of HTTP.
In the first 10 years of the web, the differences between (and shortcomings of) various web browsers was so vast as to confound attempts at building complex applications. Many technologies emerged for building so-called rich Internet applications which circumvented the browser entirely. These include (most notably) Java applets, Macromedia/Adobe Flash, and Microsoft Silverlight. Since they require browser plugins to be installed, the are not optimal for general purpose web applications and, in my opinion, they will be long outlasted by HTML.
In the the past five years, the lives of web developers have become significantly easier. Browsers are paying more attention to the W3C's recommendations, JavaScript is implemented consistently in all major browsers (more or less; the DOM is still frightening), and HTML 5 promises many new features (font management, video/audio embedding, geolocation, asynchronous page updates, etc) which will make pure HTML web app development even easier.
It seems unlikely that anything will emerge in the next decade that will "replace" HTML because there is nothing fundamentally wrong with it. JavaScript...very possible, but it's hard to know with what, and at the moment JavaScript is only getting stronger.
The biggest difference between web and non-web application programming is the constantly-changing platform on which web software runs. If anything is going to change dramatically in the next 10 years it is this. People are going to be accessing the web on everything in 10 years, and keeping up with the different platforms will always be a concern. This is simply the nature of web programming.
My advice: spend 2 hours per week reading about new web technologies. This will keep you in the loop so you know how to plan for what's coming. The web is pretty unpredictable. I don't think there's any such thing as an application that will last for 5 years without major changes. The best you can do is to stay informed, and react quickly.