Hard Truths About HTML5
snydeq writes "Peter Wayner discusses a number of hard truths Web developers must accept in making the most of HTML5 — especially those who are looking to leverage HTML5 in hopes of unseating native apps. 'The truth is, despite its powerful capabilities, HTML5 isn't the solution for every problem. Its additional features are compelling and will help make Web apps formidable competitors for native apps, but security issues, limitations of local data storage, synchronization challenges, and politics should have us all scaling back our expectations for the spec.'"
The funny thing is that this comes from a site with separate pages for a print article version, while CSS has supported separate print .css file for a long time.
Also, the article points out how easy it is to debug and manipulate HTML5 code within the browser, or modify local storage. That's the thing. You're never supposed to trust the client. That's just stupid.
But what is point on is this
These stories aren't common, but they're appearing more and more often for many reasons. Are you sure that the cute Web startup promising free everything with their HTML5 app is going to be there in a few years or even a few months? You'd better be.
With Google closing down over half of its project just some time after they were launched, it would be just stupid to use web apps instead of desktop apps. That's why businesses don't want to move to Google spreadsheets or text processing, but keep using Microsoft Office.
Seriously, how is this hard? Don't trust the client, store things like geolocation data and other such things server-side.
Sure, not everything can be stored server-side but something like coordinates can easily be stored server-side (preferably linked to your current session in case you are logged in from more than one location so posts from your cellphone don't show up as posts from your home and vice-versa).
Greylisting is to SMTP as NAT is to IPv4
I'm going to wait for HTML 6.
No sig today...
Sounds like its just not being utilized properly... I'm a software engineer and I make (web-based) frameworks/tools/languages do things they were never supposed to... Its called innovation...
Can you make a javascript alert box from PHP?
echo "document.write("alert('hey');\");"; //Something like that would do it.
Yes, I read TFA. It wasn't very illuminating; the author essentially says that since the client side can alter the transactions, HTML5 has security problems.
That's kind of stupid; whose security are we talking about here, anyway? Clearly not the end user - and I'll feel free to use various add-ons to alter the web pages I visit to improve my security and privacy
Despite the power and awesomeness that is the growing new web environment, the browser is the client and the application runs on the server.
Rich, exciting, thrilling and awesome experiences on the client side be damned, the server, the data and the application should never trust the client. I always thought this was a fundamental reality of the web that everyone knew. But recently, with all this version number craziness we have been seeing of Firefox lately, I have come to realize that there are a lot of lessons that have to be re-learned "the hard way" along the way.
Hard Lesson #1 (for Firefox), don't screw with your users or you won't have them long.
Hard Lesson #2, it's a "browser" and a "standards compliant browser" at that. This will mean it is very replaceable or interchangeable. Don't overestimate your worth to the user. Whatever it takes to see the truth, "the browser is not the thing" ; it's how you get to the thing.
Throughout computer history, we have seen patterns emerge. The computer is too over-loaded, so move computing outward to the desktop. The desktop is too overloaded, so move computing back to the server. The desktop and the server are too overloaded and the IT departments are too burdened and expensive, so move computing "to the cloud!" (aka, someone else's servers) All these changes over time indicate a behavior of aversion -- seeking to avoid a problem. That's all well and good, but it doesn't seem to address the problem on the merits of the situation and is certainly not accepting of reality. That reality is that the data and the services are "the things." There are costs associated with those things and they must be managed. But "the things" are the things and they must be valued and handled appropriately and all the things surrounding "the things" need to be held in perspective.
I'm going to wait for HTML 6.
You didn't hear? Numbering is "out".
It will be just HTML in the future and the version numbers will be hidden from average users.
In love, war and slashdot discussions, everything is allowed.
I'm already using IE6 !
"HTML5 isn't the solution for every problem."
And anyone who thought it was has not been programming for very long, or simply doesn't learn from history.
On the plus side, HTML5 should make some aspects of life a bit easier, and hopefully introduce only a small number of new challenges.
Cheers.
...makes my eyes bleed.
Frankly, the spec is a bit of a joke.
The semantic tags are out of date before the spec has even finalised, because it doesn't cover thing like comments tags which are prominent in todays sites, illustrating what a dumb decision it was to add a bunch of random semantic tags based on an arbitrary web survey carried out years ago. Semantics should be applied to classes just like styles are using a semantic definition language. This would of course have the advantage of allowing 3rd parties to produce semantic definition archives for no longer maintained sites etc. that browser could look up but well, there you go, that's what happens when people who apparently don't have even the slightest grasp of separation of concerns get their hands on something as fundamental as an HTML spec. It's like they didn't even realise why it's better to not have all your styles embedded in your document structure markup - i.e. your HTML and hence why CSS was developed the way it was.
Thus far it seems to have taken the web backwards in terms of compatibility, many of the new features work differently in different browsers, harking back to the days of HTML3/4 and Netscape/IE battles.
XML syntax seems discouraged which means you'll run into more people using the SGML syntax which seems to be pushed more than XML which makes the web more of a ballache to work with- no more of a push towards simple XSLT to trivially move data around and into and out of web displayable formats and instead a push away from that. I don't really care if it's served as XML or not, the point is that if it's not well formed XML it becomes a massive ballache to deal with, because XML tools and libraries are so prevalent.
The ethos surrounding HTML5 is that well, lots of old sites didn't follow newer standards, so lets make those web sites standard by taking everything they did shit, and making that standard. So great, yes, let's make shit, the standard. No, that's not how standards work- standards define a high quality that allows maximum compatibility which developers should strive to adhere to, if some don't then don't cater to them- just point out they're shit because they're not standards compliant.
Really, I don't think I'll touch it unless it gets to the point where you can't avoid it. I think I'll wait for a spec that's written by adults than a bunch of PHP kiddies who don't have the first clue about how to right good web software, and instead prefer to bung any old shit into the mix and call it a standard. Not to mention the drama about it being a living standard- good standards don't need to be living, good standards are generic and flexible enough to be future proof for a good number of years - you know, like, say, the XML spec.
It's not that I don't like some of the new features proposed in HTML5 like canvas etc., I think they're great ideas. It's just a shame the rest of it is just so painfully amateurish from a software development perspective. The net result is a spec that basically takes the web back to where it was 10 years ago- a messy inconsistent mess of arbitrary tags that needlessly duplicate functionality, causing annoying ambiguity with a dash of incompatibility chucked in to boot.
I'm hoping for a quick iteration to XHTML6, run by people who actually know what they're doing so we can just bypass the mess that is HTML5, but that's probably a bit much to hope for.
especially those who are looking to leverage HTML5 in hopes of unseating native apps.
Why do we keep coming full circle? WHY?
This is exactly where we were in 1998 with Java's "run everywhere, in a browser applet replacing desktop apps on the web, blah blah blah"; yeah, that went somewhere (right into a subsidiary of Oracle). The more things change, the more they stay the same, huh?
Attempting to replace native applications is ridiculous simply due to the impedance mismatch between the web environment and an application. The web exists to run in a sandbox, it was built mainly for multimedia interchange not as a software execution environment, the complaints about local storage and what not reflect that exact problem: you're in a minimalist sandbox, you have limited power and expressiveness by definition – that's kind of the point. The moment a browser allows something that fully behaves like a native application it will be a reinvention of Java and will have all the same problems that had. In some ways, it may even be worse what with the 'broken by design' WebGL specification that allows random websites to try and buffer overrun your system at kernel level. [For those playing along at home, Firefox: "about:config", set "webgl.disabled" to true]
No standard called HTML5 exists, and that should be the end of it.
things that make web development a total and utter nightmare are still evident. Fat client apps aren't going anywhere I think.
Peter Wayner just learned about HTTP, HTML and Javascript, then started crying. Sure there's enough to cry about but please don't write about it if you don't have anything to add. Also, merging with Git is *very* fast as it was optimised for the job from the ground up.
Also, the article has almost nothing to do with HTML5.
Seriously, this made it here?
Every complaint on there is absolutely crybaby-tier "i dun understan' this" levels of whining.
WE KNOW HTML5 ISN'T GOING TO BE THE END OF NATIVE APPS.
We know it isn't going to solve problems that EVERY ASPECT of it has suffered in native apps since they have existed.
Seriously, sync issues are still a problem in native apps now, they can be fixed pretty easily.
Canvas, not knowing power behind the processor to ensure decent speeds. Oh, funny how you just solved the problem in the very same complaint, the same way it has been done since forever since depending on a number(s) is stupid and always has been.
He took 2 weeks to get audio working? You kidding me? No, really, TWO whole weeks? I probably don't even need to go on, but I will.
Security is a nightmare? HMM, JUST LIKE IT IS ALREADY WITH NATIVE APPS? Next.
Local storage limited? 1) The API for all of this is still being made. Hell, the File interface is barely functional. 2) All of the content of that paragraph has nothing to do with "limited storage"
Local data can be manipulated? See Security is a nightmare.
Cloud owes you nothing. Why do people keep linking HTML5 and the cloud? Quit it already. "Cloud storage" has been around since before HTML5 even existed as an idea. Since before HTML4 even existed as an idea in fact.
Point 6 is a personal thing. Ignored because said person probably deserves the awkwardness.
Webworkers, likewise, are still being created.
The whole of point 9, again, non-issue. HTML5 isn't even nearly complete.
Complete and utter nonsense and whining.
Seriously, it is like "are we done yet are we done yet are we done yet" coming from him.
HTML5 IS NOT COMPLETED YET.
If you want to get involved in its evolution, go to the development pages and voice your opinion.
Oh, wait, never mind. Just another negativity-piece to get hits.
If HTML can be used to replace local applications, MS has the most to lose because people would not be locked to Windows anymore. So MS has been working with HTML5 community mainly to slow down things.
They do real programming - writing device drivers, tuning graphical libraries , writing massively parallel simulation code. They DON'T piss about with HTML and javascript except in their free time for a hobby.
Yeah , mod me down all you moderating HTML "coders", I don't care, I have karma to burn.
"And anyone who thought it was ... simply doesn't learn from history."
Unfortunately that sums up a lot of new "coders" from sausage machine colleges/universities where the only think they learnt was java and basic OO. They know little to nothing about older technologies and languages and how they work or what their advantages might be. I'm not blaming them (well ok , a bit , you'd think they'd be curious about what went before in their chosen profession) , its generally the fault of the courses they've been on.
I've done extensive, years and years of programming in Native apps and I have done quite a few years in web apps too; using various stacks and languages.
The idea that the browser is going to replace a rich client any time soon is, in my view, a fools errand. I pity those who have thrown away perfectly good money over the past 10 years trying to make this happen. There are some success stories, like webmail and web-chat and various cloud services; but these things are comparatively simple animals in terms of their data/user complexity. Also there are alot failures which have cost alot of people money.
Browsers have slowly, very slowly eaten into rich client app space. But as soon as complexity of the application reaches a certain level, i.e. level of complexity you typically encounter in an accounting or stock control system, then cost to build the product becomes prohibitive and the UI suffers significant limitations.
Webapps are harder and more expensive and more time consuming to build, and the end result is typically a poorer UI experience. Imagine trying to write something like Gimp, or Open Office, or an accounting package as a web app as opposed to a rich client? Massively more complex. HTML/HTTP has come a long way, but it has to go alot further still if it is ever going to be beaten into a semblance of an architecture that is going to give the rich client application domain a run for its money.
I think it is inevitable a cloud architecture will emerge that kills the native rich app, but I am highly doubtful that HTML/HTTP will be powering that architecture.
The spec is still a draft.
So if you start building websites with an unfinished spec, dont be surprised when/if it may break between browsers.
I may be just old, but I remember how I behaved when the draft of HTML4 was released.
Nothing much has changed with newbie-hyper-keen information leeches trying to bleed themselves on the edge of browser tech.
now get off my lawn.
The hard truth is that for more than fill with patches,for more you put ugly hacks, HTML is not meant to do the work of native applications.
Religion: The greatest weapon of mass destruction of all time
Remember when a year or two ago HTML5 video was proposed to replace Flash Player? Back then there was a lot of talk about it, but I guess it has never happened. Just pondering.
Before modding me to oblivion, please hear what I have to say.
The whole concept of browser is wrong. Browsers are a good solution for serving static documents; it is not a good solution for delivering cross platform dynamic applications.
This article about HTML5 proves that no matter what functionality is hardcoded into the specifications, developers might need more or different functionality.
What is required for serving today's distributed world is a mechanism (a service) that does the following:
- lazy downloading of software components (data and code). Code and data are downloaded only when requested. The mechanism makes sure the code/data are cached locally, so as that if the network fails, the application is still usable.
The current technology fails at this because the downloaded software components can only be one of these:
a) Javascript, which comes with a lot of disadvantages (browser needs to have a Javascript interpreter/compiler, Javascript itself has lots of disadvantages etc).
b) a binary file that requires the installation and maintenance of an add on (flash, Java, etc), which in turn does its own maintenance, adding services to the core O/S etc.
All the above could be avoided with a unified component management mechanism.
- automatic versioning of components. Code components should be automatically versioned by the compiler, so as that the linker at the client side can request an updated component only if the available version is newer than the locally cached version. Downgrading would be automatic if the newer component's symbols do not match the symbols required by another component. The mechanism should keep the old versions of components around in case some component cannot work with the newest versions.
The current technology fails at this, because although the browsers check the version numbers of the add ons against the browser, user interaction is required for the acceptance of a solution (i.e. the users have to accept the new versions by clicking OK, meaning that they know if the new version is appropriate for them).
- both native and bytecode components. The component service should be available for native as well as bytecode components. The service will run a virtual machine, the definition of which should be a native component downloaded lazily and cached as described above.
The current technology fails at this, because it doesn't even have the concept of a component, let alone the concept of native or bytecode component. Browsers only know of addons and extensions, and each browser comes with its own addon and extension model.
- a binary (i.e. non-text) metadata protocol. All information exchanged over the network, including software components and data components, should be written in a unified metadata protocol. The protocol itself will not specify semantics, it will only specify structure. Think about this protocol as a binary version of JSON or XML.
The current technology fails at this, because all the used formats are text-based.
I know many people will disagree with the binary protocol and prefer a text protocol. The text protocol doesn't really offer any advantages over such a simple binary protocol. The main advantage of the binary protocol is speed, because of the much less data required to cross the wires compared to text. The main advantage of the text protocol is that the text buffers can be inspected as they are, but if the binary protocol is simple enough (as is JSON, for example), then very little work would be required to make a tool that displays the contents of a binary buffer.
Think about it this way: the cost of writing a tool that displays the above-described binary protocol's contents is extremely minimal when compared to the savings from using the binary protocol.
A unified communication language between computers is extremely necessary as the first basic step for inter-operation between computers: computers may not understand the semantics of the data, but at leas
The Server controls the web app.
The only data in the client is temporary local data and display data. All data is stored on the server.
When a user logins in a session is created. At this point resynchronization happens. All the data stored in the client is downloaded to the server. the server then deals with what needs to be updated.
Yes, expect people to try to crash the server and corrupt data. Design the server framework to deal with it. Then the server application does data validation and checking. then finally use the data to update the server storage.
The standard frameworks now do not deal with "Data Only" processing. By using a server framework the uses small callbacks for RPC with session security tokens creates a secure enviroment.
The biggest problem are RPC calls that are automated to harvest data. This can be mitigated by throttling in the server framework.
"formidable competitors for native apps" Are you kidding me?
How is that even with a DSL line I have to wait at least 500ms for a reaction of the so called "app" to be a "formidable competitors" for my native application? I'm sorry to burst your bubble, but even if you get JavaScript 500% more faster then it's now, it's nowhere a native application, with local stored data is.
Even slashdot.org is a very poor replacement for my email client. I take my email-lists with my local email-client anytime before I post in this poor "Web 2.0" forum of slashdot.
Please start to develop sites with some kind of content, that is for what the Web is designed for. Maybe then I will visit your site. But don't confuse a web site with a native application. Even in 2011 we are nowhere that I can be online 24/7 with a good connection from everywhere. I take my laptop and my local installed apps with my local available data anytime.
http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
>> HTML5 hard truth No. 1: Security is a nightmare The fundamental problem with client-side computing is that the user ultimately has control over the code running on the machine. In the case of Web apps, when your browser comes with a great debugging tool, this control is easier than ever to abuse.
Relying on the client not being able to understand the executed code is not even security by obscurity but even worse. Relying on client-side checks for consistent data (or even authorization - yes i have seen that) was stupid since the beginning of the web (and before).
Layer your spheres of access correctly, and there will be no bigger problem
> HTML5 hard truth No. 2: Local data storage is limited
Local storage is *always* limited. Relying on having near infinite local storage is something which also pisses me off for Desktop apps.
> HTML5 data storage capabilities are certainly an important addition, but you still can't move stored data to another machine, make copies, back it up, or open it with a different app. It's all buried deep where the browser hides it.
You is the user or the service provider? And *nobody* hinders you to implement also local backup mechanisms and free export of the data for the user. If you dont have the creativity or the knowledge to do so, then dont the fuck try to write a serious application. And if you back up you machine, your browser data is backed up with it.
> Nor can you dig into the files to see what is stored there. Sure, a programmer can take them apart, but only after studying the format and doing some hacking. They're not like spreadsheets or text documents that are easy to open with any editor, making the data less resourceful than it might otherwise be in a desktop app.
Wow. As if the average Desktop application would have completely open, understandable and easy to read data formats.....
>HTML5 hard truth No. 3: Local data can be manipulated
Uhm. did we talk about the server-side consistency check. And if its (according to the Truth Nr. 4) so much easier in the case of a pure desktop application to edit the data would that be not better in the sense of Truth Nr. 5?
> HTML5 hard truth No. 4: Offline apps are a nightmare to sync
Yes, always. Hasnt a single thing to do with HTML5
> HTML5 hard truth No. 5: The cloud owes you nothing It's not really fair to blame HTML5 for all of the structural problems with storing your data in the cloud, but the cloud is an essential part of the vision, which leverages the cloud to fix all of the headaches for installing software and backing up data.
The cloud is *not* an essential part of "the vision" of HTML5. It is a promising approach to deliver services cheap, HTML5 or not.
HTML5 hard truth No. 6: Forced upgrades aren't for everyone
Forced upgrades? We never had these before....
What is this. Sony forces updates to the PS. MS forces the installation of the WGA. Whe web-mail providers i use update senselessly all the time, since 10 years.
HTML5 hard truth No. 7: Web Workers offer no prioritization
A well written program relies on message passing and not polling. As a programmer i seldom had to prioritze threads withing an application.
HTML5 hard truth No. 8: Format incompatibilities abound
Yes, thats sad. The standard is still in the flow.
HTML5 hard truth No. 9: Implementations are browser-dependent
html has been browser-dependent since a long time, and so was java (not badly). Native applications are OS-dependent.
So what. An IT professional who thought that HTML5 would be the magic wand to overcome incompatibilities between environments with testing would have been stupid.
HTML5 hard truth No. 10: Hardware idiosyncracies bring new challenges
Funny. What you want to say: make a 3d game and it wont run as well on a handheld device without acceleration? Yes, that has been pretty much my experience the last 20 years.
HTML5 hard truth No. 11: Politics as usual
Honestly? An HTML5 only problem? Well....
I'm going to wait for HTML 6.
Perhaps by then the Internet will be running IPV6.
:-) I couldn't keep a straight face from the previous comment.
Any insufficiently advanced magic is indistinguishable from technology.
[snip] Imagine trying to write something like Gimp, or Open Office [snip]
For the majority of users out there, Picnik and Google Docs work just fine. I personally prefer Google Docs over MS Office or Open Office, and if it weren't for the fact that I am a serious amateur photographer I'd be perfectly happy with Picnik. As it is, I need Lightroom. I think the trend will be that native apps will be relegated to niche applications that cater to power users. The average user will be easily served by web apps.
I have to be honest, all this talk about XML vs HTML5 and good programmers vs bad programmers is completely uninteresting for me. What I see when I look at HTML5 (both in terms of spec and hype) is css-gradients, sockets and a canvas.
Everything else is just talk that can be summed up in the following: Coding web-applications IS NOT like coding desktop-applications.
It'll all be fine when MS releases their explorer-specific extensions for data storage and security.
Scripting dangers and the dangers of trusting the client (or data that comes in from the web in general) is nothing new with HTML5... It have always existed, there are solutions, it all depends on the value of the data and the value of owning these data, what is appropriate.
Localstorage is limited... Sure, it have always been and will always be! You give the client some data to hold. These data should be convenient for the user... Stuff like config, shortcuts etc. If it is deleted nothing is really lost, just like the config and bookmark files for native applications.
Sync'ing issues... How is this connected to html5? It is one of the main problems of all web connected apps with offline functionality. How, when and what to synchronize. Ofcause it would be nice if someone came up with a nice generic and foolproof way of doing this, but I am not holding my breath.
Format, implementation differences etc. These are problems, they are not new to HTML5, they are not even new to web applications...
The fact stands that web applications are getting better, with HTML5 they are easier than ever to implement and better for the end user to use. It is another step on the way away from native apps.
I like how you've signed your post.
The browser is the view, the only thing it gets sent is data to display.
Then how well does your application work offline? With HTML5 localStorage, limited though it may be, users are going to expect to be able to use your web application even with zero bars. Not everybody can afford $60 per month for the privilege to connect to the Internet during the daily commute on public transit or while in a shopping mall that provides Wi-Fi access only to employees and not to shoppers.
They keep saying the same things about Flash and there are still people building entire Flash based sites. Go figure, nobody listens to this advice either.
Having written a (still running) patient flow management system in html3 + hidden frame + javascript - sadly no ajax it is my belief that with proper care a web interface can be used in place of certain local apps. For processes that do not involve complex graphical/video wizardry (i.e. most business apps??) HTML[5] seems adequate enough. This includes many day to day internal business applications where the benefits of management, maintenance & security outweigh most of the drawbacks: bandwidth, hw compatibility, less seamless UI etc.
Separating out the business data and logic/api from the interface also does wonders (ye olde "n-tier" architecture) for the client-side concerns. Everything properly validated through the server-side logic layer.
Migrating an existing local app to the web can be a headache though - then you run into potential usability issues with user expectations and proper program "flow".
Surprise! The awesome new tool set has failed to alter the basic workings of HTTP! Golly! You mean a couple of years of hard work by smart humans to create a framework that materially improves the most amazingly successful communication medium ever and has been wonderfully useful from the very beginning has fallen short in some ways? It's an OUTRAGE!
Jaded Editor: 'Hey Contract-Face! Extrude me some "bitch-quip" fodder for the golf course! Make it Slashdotty too!'
Failed Techno-Poet: 'By Your Command.'
These are not "hard truths" these are "speed bumps". Is there an ISO standard waiting period for historical revision?
There are not the real problem with implementing applications with HTML5+Javascript (Except maybe 4).
Most of the things this dude list are normal challenges of any program in any platform. So some photos uploaded with a plugin got deleted by facebook? thats the problem of any website hosting content, can be deleted by the owner of the website, how it was uploaded is not important (could as well be uploaded by a nice interface? thats better).
The REAL problem of HTML5+Javascript is Javascript. Writting small javascript task is something everyone can do. Writting big javascript apps is NOT for everyone. Javascript is not strongly typed, and his dynamic evaluation is HARD. Javascript uses some float number that has less precision than the one you get on most generic programming languages. Javascript flexibility to be written by billion different ways means code from programmer A can be totally different than code from programmer B.... there are only 1 javascript, but there are more than 4 or 6 ways to writte it, that are completelly different.
In short:
Writting a big program in Javascript is a NOT TRIVIAL task.
This is really THE hard truth about applications made by HTML5+Javascript.
-Woof woof woof!
The real purpose of offline web apps is to deal with the challenges of mobility, not to replace the server as the official source of data, and not to move workload off of other computers that are getting overloaded. WiFi isn't universally available. Sometimes you can't connect to the Internet. Offline web apps are a mechanism for saving updates for later upload, a note pad if you will, but one capable of storing information in a format convenient for rapid sync when reconnected. The limitations of local storage are no big deal in that context. Local storage is just a store-and-forward mechanism that you have to tailor to your particular application.
Another major advance in HTML5 is accessibility. The purpose of the new article, section, etc, tags is to provide context to screen readers for the blind. Charts and graphs rendered in Inline SVG are directly readable by screen readers, unlike the pixels generated by Canvas and Java AWT. CSS display properties of table, table-row and table-cell replace table, tr and td for information that's NOT tabular, so that screen readers will not try to read them aloud as if they were. (HTML5 acknowledges that CSS and JS are part of the browser environment. Display properties are currently listed at 10.2.2 in the spec.)
The logical data types of Web Forms 2.0 input tags allow data validation when JavaScript is off, minimizing unnecessary hits on the server when the data entered isn't correct. What a convenience to both the client and the server!
In general, it's not a good idea to jump to conclusions about what someone means, then criticize them for something they never said. Read the HTML5 spec. Much of the context of why features were added is explained there, and in pretty clear English at that.
Until HTML6 is released.
An article about how web development, or distributed devlopment, is hard. Nothing to do with HTML5, except for maybe 7.
None of these problems really go away if you're building a desktop app that accesses remote data. You have a few more choices of how to solve the problems, sure, at the expense of portibility, but the problems still need solving.
I just poured salt on my cable modem and nothing seems to have changed.
1. There will be legacy users
2. We are upgrading to introduce new features, not a version #
3. There will be yet uncovered security bugs, this is acceptable because other systems such as the f'in router will compensate
4. Unless it is the cloud itself, the upgrade has absolutely nothing to do with the cloud, it's code, not applications (ex. the application that makes the cloud possible).
5.You must have the upgraded framework to use the upgraded apps/pages/code
6.Not every feature may work as expected, thus hotfixes
Common sense
1. Don't save sensitive data client side
2.There will always be haters/lovers of the upgrade path, these should be exchanged for a white paper / tech spec
3. If your browser runs slow on your computer, you need to...
a. upgrade
b. install anti virus/spyware
Where above do I mention HTML5?
Conspicuous by their absence from list of supported platforms are all currently popular smartphone and tablet platforms in the United States: iOS, Android, and Windows Phone 7.
While I agree with your points, sir, I'd appreciate it you typed "a lot" instead of "alot".
The truth is, despite its powerful capabilities, HTML5 isn't the solution for every problem.
I want a solution for EVERY PROBLEM!
Democrats or Republicans. They are both taking us to the same place and they are not afraid of us anymore.
All I know about HTML5, and Flash, and other hoohaw is that if I'm buying something online and I see a box that says "Sorry, you must download X to proceed", then I just move on to a shop that's open.
Another major advance in HTML5 is accessibility. The purpose of the new article, section, etc, tags is to provide context to screen readers for the blind. Charts and graphs rendered in Inline SVG are directly readable by screen readers, unlike the pixels generated by Canvas and Java AWT.
Except that inline SVG predates HTML5, and Canvas is part of HTML5.
It kills me that the people five year ago that were exclaiming Web 2.0 and JavaScript web apps were the future are now decrying HTML5. Even the Web 2.0 stuff was an extension of ideas Netscape was espousing in the 90s. HTML5 has simply become the latest brand name for that same concept. Google could switch GMail to "HTML5" by changing a few of their document tags.
I think the only difference now is IE6 is finally a marginal statistic in terms of browser usage so babysitting it isn't absolutely necessary for web apps. There's also finally a focus on page scalability and accessibility as a huge portion of an app's users are on mobile/touch devices.
There were always classes of applications that were never going to replaced by Web 2.0/HTML5. What comprises that list has changed (and gotten smaller) as browsers and app writers get more sophisticated. Ten years ago you had rudimentary JavaScript and unsophisticated browsers so basic data entry with HTML forms was practical. As JavaScript engines improved and browsers became more capable the likes of GMail and Google Docs became practical. To do sophisticated apps in 2001 you needed to use a plug-in or Java while today the same functionality can be done entirely in JavaScript in the browser.
There's lots of LoB apps that really have no business being native apps (VB6, Delphi, etc.). These are slowly being transitioned to web apps not only their requirements have changed but the environments have changed. If the CEO decides they want to look up reports on their iPhone or Droid, the reporting app is going to see a quick transition from a clunky VB6 monstrosity to a web app. The same is true for consumer apps, if a large portion of your users switch to Macs or phones (or you've tapped out the Windows market) that native app (a glorified database front end) becomes a liability rather than an asset.
I'm a loner Dottie, a Rebel.
Remember how CSS was supposed to make web pages more compact, and simplify layout by avoiding old-style table based layout? Look at how that worked out.
Here's a single article from the Wall Street Journal. It's 3299 lines of HTML. That doesn't include anything pulled in from style sheets.
As an exercise, I went through and took out all the junk. The actual story, plus all the formatting needed to display the full page in in its original fonts, is 77 lines. So what's the rest? Some of it is links to other stories, but that's under 100 lines. Much of the code is ad-related, even though there are only a few ads. There's a lot of "social related" stuff, which, although it takes up little screen real estate, seems to require far too much on-page code. The "login" mechanism turns out to have all the code for not only "login", but registration of a new account, as part of the page itself. That's on every page served by the Wall Street Journal. There's a vast amount of hidden content, including a "video carousel". There's personalization stuff that would turn on if the user was logged in.
When the people who code crap like that start using HTML 5 with both local storage and connections to the "cloud", it can only get worse.
Inline SVG isn't the same thing as SVG images, which did precede HTML5. In Inline SVG the SVG tags are embedded within the HTML as if they were HTML tags. That's newer, since the creation of HTML5 spec. At the time Firefox 4 implemented it last year, then-current versions of Google Chrome, MSIE, Opera and Safari rendered the same tags as nonsense, a hopeless jumble. FF4 also implemented SMIL animation of Inline SVG first.
http://www.caniuse.com/#feat=svg-html5
http://www.caniuse.com/#feat=svg-smil
I know this because I had to reimplement some Java AWT charts and graphs in Canvas and Inline SVG for Section 508 compliance (accessibility). I now allow the user to choose Java AWT, Canvas or Inline SVG, according to what their browser supports. It's surprisingly easy to implement all 3, at least for the simplistic text, lines and rectangles one typically uses for charts and graphs.
Am i the only one who cringes when someone mentions "web programming"?
Why not just use the operating system's native sandbox capability by creating a separate user account in which to run each application that needs to be sandboxed? I seem to remember that's what IOS for Wii and iOS for iPhone do. (I'm not sure about Cisco though. :p )
I'm pretty sure that I could use inline SVG with Firefox 3. Also, O'Reilly's SVG Essentials (2002) mentions using inline SVG. And even if the images were imported rather than inline, the markup would be the same and would be readable by screen readers.
See also http://www.w3.org/TR/XHTMLplusMathMLplusSVG/
I have difficulty imagining any "rich, exciting, thrilling and awesome experiences" on the web. Maybe this is the whole problem with modern software devs, they're too focused on trying to achieve this instead of just making things work. If native apps do the job better than why bother with the web to do a half assed job instead?
I don't think so on the Firefox 3. I was a participant in the Firefox 4 beta and had to use the beta with about:config's html5 parameter set to true to get Inline SVG to work. You don't soon forget having to jump through those kinds of hoops to get something to work. But I still have Firefox 3 at home, so I can check it after work.
I suppose that theoretically, if the screen reader knew that an img tag was an SVG image by virtue of its mime type, it could parse the SVG. But with Inline SVG in the HTML it's guaranteed to work. Even if the SVG tags aren't recognized by the screen reader, and hence ignored, the text between the tags is plain-old text and will get read aloud. That's where the pertinent info was in the charts and graphs (labels, rankings, percentages, etc), between the tags.
Nice to talk to someone else who likes SVG, by the way.
I have an older hard drive from a computer whose motherboard crashed. I might stick it a computer to check the files on it using a pre-4 version of firefox. I'm pretty sure I was doing this before FF4, as I only got it when I upgraded from Ubuntu 9.10 to SuSE 11.4. What declarations were you using?
As for liking SVG, yes. I was used to such markup, having done stuff in pstricks in TeX/LaTeX.
I don't know what you mean by declarations. I used the Mac version at home and the Windows version at work. Is double-clicking a declaration? :-)
The main issue for me is of extreme slowness even on contempory computers. html5/javascript games, or apps for text reading with "turning pages" not only are slow, they peg 100% of a core only to recreate 1990s level of computing. This has problems including heat, fan noise and electricity bill. I have no flame intentions, just pointing out what seems obvious.
I've had a try at "Pirates love daisies" for instance, and it runs quite a bit slow on a 3GHz computer, re-creating the experience of an Amiga game but with higher res and lower quality sound. also selecting a character results in the display of a black square, as the blending is not supported. Running firefox 5. It should run like total crap on a 1GHz ARM, and of course single-thread performance has hit a ceiling.
I have a feeling the java plug-in worked better back in the days. It even ran on low end cell phones years ago and allowed actual games. There still are some java games around, such as Yahoo games. They load quickly and run butter smooth. So, maybe java isn't open enough but I wish we could have such a solution with near native performance, rather than stuff that feels like it's run on a emulator written in QBASIC.
By "declarations", I meant inclusion of DTDs and other such files.
No libraries (no need for special permissions from IT in your company etc.)
So can Yast and synaptic.
I've never used YaST, so I'll ask about what I know: Since when can Synaptic install a package to a user account with the user's privileges instead of system-wide with root privileges? And since when can the developer of a native app deploy on iOS without the $300 per year overhead of buying a MacBook Air every five years and an iOS developer certificate every year?
Oh, I totally forgot that you had to do that with SVG images. You don't have to declare an XML namespace or prefix tags with namespace prefixes in Inline SVG. None of that. Just the tags. Much easier.
Like a cascading set of lies, browser has become a cascading set of hacks.
...One more thing: In addition to screen readers for the blind, outliners can read the new tags and generate outlines of the content:
http://coding.smashingmagazine.com/2011/08/16/html5-and-the-document-outlining-algorithm/
This will allow generating Tables of Contents for documentation, addressing a major nuisance with using HTML instead of more full-featured word processing applications.