I think you're still a little confused on XML and HTML. As Aquinus stated, HTML is XML, it's just a specific subset of XML that browsers use for displaying web pages. For instance, a browser knows what to do with .. Code: <body> <p> Hello World!<br /> </p> </body> But would have no idea what to do with this XML. Code: <TPU> <Rocks></Rocks> </TPU> To say HTML "cooperates" with CSS and JS is not exactly right either. I think it's closer to say HTML "calls" CSS and JS and the browser (or server) knows what to do with them also. The browser is basically an interpreter. It parses the page's code and displays it based on how the interpreter was written. This is where you run into compatibility issues. If the browser only supports CSS 2.0, or HTML 4.0 or whatever, then pages that use features in newer versions, like CSS 3.0 or HTML 5, will not display correctly or throw errors. Microsoft's Internet Explorer is kind of notorious for not having full support for given standards, but they've gotten a lot better. Singling out MS is a bit unfair as their browser is not the only one that gives web coders headaches. There are other considerations also, like what type of server is the web server? If it's IIS on a Windows server then it will run ASP.NET pages, if it's Apache on Linux then it will not (unless you use something like Mono). So, are you still sure about web programming, Mr. Sean? Application programming is like walking on a sunny beach, web programming is like being dragged behind a truck, over broken glass, naked.