No introduction or description needed. We all know how troublesome it is make different codes and test codes in different platforms and browsers such as IE, Firefox, Chrome, Android 2.3 onwards, iOS, Windows, etc...All across the web, here and there, we have talks of having HTML5 apps run seamlessly on all devices. Will that ever be true? Is that future coming up?
Fantasy: One Language/Standard supported by all devices?
programming languages;html5;mobile;cross browser
There are so many reasons why this will never happen, it's not even funny.Competition is what drives innovation. If there were only one platform that everyone had to use for everything, it would almost certainly be awful. And no, you can't just start your own and improve it until it takes over the world; after a certain point of market penetration has been reached, successfully establishing an alternative becomes virtually impossible because of the impossibly high barrier to entry - particularly in a field where the number of users is a big factor in determining the value of something, e.g. through network effects (the value of network rises non-linearly with the number of its nodes).Commercial interests are usually opposed to truly free interoperability. Whenever a powerful player controls a platform or standard, they will inevitably begin to see themselves as owning the standard and try to extract money from it (unless they're under extremely strong pressure not to, like maybe a U.N. agency - but there are other problems with that option). Usually this means tweaking, adapting, or hiding details to prevent others profiting from the thing the same way you do. DRM, privileged secret APIs, subtle incompatibilities, restrictive interfaces that only let you use someone's pet format are only some of the forms this drive can take.Computer programming is a multifaceted thing with many different styles preferred by different people, and many  conflicting goals that are impossible to reconcile: efficiency, maintainability, security, expressiveness, learnability... I don't see how you're ever going to reconcile everybody's opinions on how to rank their importance. There are programming languages that explicitly allow virtually everything to be done, because some power-user might need to program not just their own memory allocator but their own scheduler as well. Others provide one basic collection type and expect everybody to be happy with it because nobody has to worry about allocating cells or updating node pointers. Again, you might think that you could have a multitude of languages and frameworks specialized for various uses and one language to bind them all - something that would be available everywhere in addition to all the things the various specialists want. But life doesn't work that way; any implementation that isn't used by a lot of dedicated people will not get the attention needed to keep pace with the specialized solutions, and the dedicated people will tend to use the specialized solutions because they are better right now.Software patents. This could be viewed as a subpoint of the first, but the patent mess is so bad that it merits an entire bullet point. Software patents all by themselves could stop interoperability cold.Technical progress. The timespan needed to create the perfect, efficient, universal way of creating browser apps is way longer than the hardware innovation cycle. Smart phones are pocket computes with a heavily different UI profile, and they took the market by storm in just a few years. The next generation of computers will probably be even more different and come even faster.This is getting depressing. I think I'd better stop this list now.