HTML5 for Web developers offer a number of powerful new features, but some of its specific limitations make it impossible to compete with local applications.
HTML5 incorporates many new features and is likely to enhance the Web programming model. As every person who reads technical information knows, nothing can change the Internet as much as HTML5. Add some HTML5 to your code and the site will become faster and more dazzling. But HTML5 can do nothing for those who want to implement local application performance on the Web.
Having enjoyed HTML5 's new tags and APIs, it is time to admit that the HTML5 model does have some limitations. These restrictions will not only break our dreams of HTML5, but may also allow us to stop using HTML5 on certain occasions.
In fact, although HTML5 does have a powerful function, it does not solve all the problems. Some of its additional features are powerful enough to make Web apps a powerful opponent of native apps, but security issues, local data storage constraints, synchronization issues, and political issues can reduce expectations. After all, there are limits to any technology.
Here are some facts about HTML5 that Web developers need to accept.
Facts 1: security is a nightmare .
The fundamental problem with client computing is that the user ultimately has control over the code running on the machine. In web apps, when browsers have a powerful debugging tool, this control is more likely to be abused than ever before.
When a JavaScript debugger such as Firebug is integrated into a browser, anyone interested in Facebook, Google, or other sites can insert breakpoints to view the code. This is good for understanding how the Web site works, but it is a nightmare for security issues.
Imagine a variable with a value that you want to change, firebug or a browser debugger that makes it easy for you to change the data to whatever data you want. Do you want to tease your friends by changing your location? Then you can modify the progress and dimension variables in the browser so that the browser is "in" anywhere in the world. All of your Web application's neat features can be modified, and browsers make such modifications easier than local applications.
There are also restrictions on the security issues that arise. Some JavaScript tools, such as Google Web Toolkit and standard compilers, are as complex as they are, and their output is extremely confusing. But some tools like JavaScript deminifier can solve this problem.
Threats are of course related to the nature of the application. It's a threat to have a person joking around the world by changing the latitude and longitude displayed on the browser and having access to other people's rights is another story. When it comes to money, things get worse. All this means that client-based HTML5 cannot be used to handle sensitive data, and everyone should be vigilant about their abilities.
Facts 2 : Local data storage is limited
A local database that is hidden in the browser makes it easier for Web applications to cache data on computers. For anyone who enjoys this desktop experience in a browser, these databases can save bandwidth and improve performance. However, they are certainly not as powerful as the locally applied data.
HTML5 's ability to store data is undoubtedly an important feature, but you still cannot migrate the stored data to another machine, or make copies, backup, and open with another application. All of this data is hidden under the browser.
In a way, this is the worst kind of situation. Because you have to assume all the responsibility for storing these databases without having any control over it.
Some of the latest browsers allow you to see which databases are created on your machine, but the information is limited. Safari even allows you to delete the database, but you can't browse the information or migrate it to another machine, which didn't make it easy to migrate at the beginning of the design, although you can do it if you know where to find the files.
You can also not go deep into the file to see what is stored in the bottom. Of course, a programmer can read these files, but only if they study the file format and do some hacking. Unlike forms or text, these files can easily be turned on by any editor, making them less readable than local applications.
Facts 3 : Local data can be manipulated
The user may not have control over the data, but the site is also restricted from being able to handle user data. Did the user change the browser? Did the user change the machine? Many web developers are powerless to do that. Because of synchronization problems, they cannot allow users to create more data.
Web developers also need to worry about the security of local databases. Although there is no tool to make it easy for users to modify local data and upgrade permissions, the server also has no ability to prevent users from doing so. All security vulnerabilities that run user-modified JavaScript code can also affect the database. Their portals are wide open, waiting for someone to write a Greasemonkey script or some local code to change the data.
Facts 4 : Offline data for synchronization is a nightmare
HTML5 's local data storage greatly improves the ability to use Web applications offline. The only problem is data synchronization.
If a Web application is connected to a network, it can continuously store the data in the cloud. When the application is offline, the data that occurs in the application cannot be stored in the cloud. If a person switches a browser or uses a different machine, a copy appears, and synchronization becomes a big problem. Worse, the clock itself may be unsynchronized, making it impractical to discover the latest saved data.
Of course, this has always been a problem for local applications, but in a local application, the person responsible for synchronization can synchronize by looking at the filename and changing the date. But because HTML5 does not give users control of the database hidden in the browser, developers must provide a user interface to allow users to manage synchronization issues through this interface.
This is not a completely intractable problem. Developers can deal with this problem by using a version control system, and today's version control systems have become increasingly complex in dealing with these issues. But owning the technology does not mean that it is a very easy to use solution. Merging different git libraries is a time-consuming task. HTML5 developers need to deal with these issues first in order to manage the synchronization of HTML5 Web applications.
Facts 5 : Cloud has nothing to promise you :
Blaming HTML5 for HTML5 all the structural problems of storing data in the cloud is not really a fair thing, but the cloud is a must because it eliminates the hassle of installing software and backing up data.
Because of the limitations of HTML5 local data storage, a large number of Web application stores remain on the server side, but this can be catastrophic. Facebook recently decided that it would no longer use a Linux-based plugin to upload photos, and the result is that the plugin has been removed, as well as the photos uploaded through the plugin .
Such examples are rare, but for a variety of reasons they are becoming more and more. Can you make sure that the cute, free and HTML5 apps that are available to them in a few years or even months? You can only ask for more than your own blessings.
Things are even worse. As many Web applications have clearly stated, the data is not yours, and in a large number of cases you cannot resort to law to recover the data. Some of the more outrageous terms of service even say the data can be deleted "for no reason".
HTML5 not only avoids this problem, its structure actually ensures that any data cached by your browser will be stored in the cloud, which is out of your control. HTML5 's hype says this is one of its dominant features, but it's actually very easy to have a negative impact.
Facts 6 : Forced escalation is not what everyone wants.
There is a story, perhaps apocryphal, of a person who uses a Gmail account to keep a casual connection with someone he knows in a pub. When Google + came up, all the history came up because Google + was automatically connected to those old addresses in the forum. Every day, these old names and old faces will appear asking if you want to join the forum.
When Web application companies need to upgrade, they will upgrade everyone at once. Although this is said to be intended to make users no longer suffer from the upgrade installation files, it is a nightmare for those who do not want to use the new features. It's not like the above is a question about people's privacy. New software can often crash because of dependencies between old and new packages.
Facts 7 : Web Workers does not handle precedence
Web Workers (translator: a new JavaScript programming model ) is a very intriguing feature of HTML5. Instead of using JavaScript's traditional wait, delay, and Pause commands, web developers can now split their commands and consolidate them into the web workers CPU hogs. In other words, HTML5 Web developers can make browsers behave like operating systems.
The problem is that WEB workers does not replicate all the features of the operating system. Although it provides a way to load branch and detach, there is no way to manage the load or set priorities. The API simply lets the message pass in or out of the worker object. This is what it does, and the rest is given to the browser.
CPU-rich applications such as code crackers will sneak into the background of popular websites? Is the user handed over to the site that will be periodically stolen? The virus is already attached to all the useful software, so it is only a matter of time before the site is compromised. And the user has little to do with all this because they have no way to monitor or track what the worker objects did. Computers that are redirected to the specified Web page will only become slower and more slow.
Facts 8 : incompatible format is everywhere
HTML5 introduces and labels, and at first glance they are as good as the image labels. As soon as you add a URL to it, the browser introduces the data stream. However, if it's that simple, why did I waste two weeks to get all the major browsers to play basic audio files?
The fact that individual browser builders have implemented only part of the audio video format, not all of them, is indeed not the fault of the HTML5 committee. Everyone is human and wants to fight for dominance. Often a file that works in a browser is not working on another browser. How do developers test this? API developers are very smart, they add the Canplaytype function, but this function is not supported by all browsers.
Facts 9 : The implementation of each browser is independent
HTML5 's idyllic vision is one thing, and its realization of the crappy reality is another. True, programmers are doing their best to realize the architect's dream, but there are tags and objects that don't work properly.
For example, there are many reasons to like HTML5 's geo-positioning APIs. It provides a certain degree of privacy and control over accuracy. It would be nice if it worked consistently--some browsers would always time out, and the browser was not very smart, because it should know there was no GPS chip on the desktop.
Finally, people complain that browsers do not fully implement HTML5 features, rather than blaming the API itself for structural problems. This fact underscores the challenges that Web developers face when developing web-based applications based on HTML5.
Facts Ten : Hardware idiosyncracies bring a new challenge
It does not seem fair to complain that some browser builders are more likely to perform better performance than they need to, but that's not the way to bite the hand. When a Ferrari owner bypasses a pole, he will find that sometimes the extra power is not always good.
Microsof improves the performance of the canvas object (Canvas object) in IE Explorer by combining IE and low-end hardware drivers. It even does some games like pirateslovedaisies.com to show its performance.
But now programmers need to be aware that these additional features are achievable, and that the speed of the code is not guaranteed.
For example, Pirateslovedaisies.com's game designer has designed a switch to turn on or off the features that IE supports. But is there an API to tell you what these features are? No. The easiest way to do this is by using the browser name to test and estimate the frame rate. Many game developers have many years of experience to understand the scope of available hardware, the only solution is to prohibit innovation, but this will be the Web developers to solve a new problem.
Facts One : Politics is always there
There was a man named Ian Hickson, the chief draughtsman of the HTML5 standard, and the Supreme dictator of life (the Supreme of dictator for lives). I think they are joking because the title is too mismatched. The standard writers are just making recommendations, and the coding genius of the browser company is the person who ultimately makes the decision. They can choose to implement or not practice a feature, and web developers will have to test whether the results are stable. A few years later, the standard will change according to the level of achievement.
Many JavaScript developers leave compatibility issues to people who develop code libraries, such as jquery. These layers let us not have to understand the differences between different browsers. But are these codes strong enough in the future? Only time will know.
This issue highlights the most fundamental issues in this area. We want freedom, creativity, and the richness of the competition between browsers. The pace of innovation is very fast, but because browser developers are scrambling to add new features to win opportunities, there are more differences among browsers.
But we hope to have a unified command so that stability can be achieved. But there has never been an ideal solution to the struggle between dictatorship and self-government. Rather than headaches for these differences, we might want to hear what Winston Churchill said to the House of Commons: "Democracy is, in fact, the worst form of government, unless other forms have been tested again and again." ”
English Source: One hard truths about HTML5
The source of the translation: Web App Trend