The Web and AJAX have many deficiencies, including security holes, and much more needs to be done to iron out these problems, according to a keynote speaker at The Rich Web Experience conference in San Jose, Calif., on Thursday evening.
“The sad thing was the Web was a step backward in terms of interactivity [when it debuted],” Crockford said.
It looked like Java would fix the problem with applets. “Unfortunately, Java was a huge failure. It completely collapsed. It didn’t meet any of its goals,” he said. Java’s write-once, run-everywhere promise was not kept; it had an unworkable security model and a tedious UI model, said Crockford. Java did, however, become very successful on the server, he added.
AJAX applications are highly interactive, highly social, easy to use, and offer great network efficiency, according to Crockford. “The big problem is that it is too damn hard to write these apps,” he said.
“The most interesting innovation in software development in 20 years has got to be the mashup,” which shows the benefits of distributed programming. “Unfortunately, mashups are insecure [in the browser],” said Crockford, with components unable to be protected from each other.
The model in the browser is fully broken and needs to be fixed, he said. “The Web is an exploit waiting to happen,” Crockford said.
Crockford then went through a critique of various Web technologies.
HTML raises questions about whether it is a document format or an application delivery format; it has low graphical ability and is missing a compositing model. With AJAX, HTML needs to be an application delivery format, said Crockford. XHTML was supposed to replace HTML, but it died because it was too brittle, he said.
CSS (Cascading Style Sheets) presents a styling layer in the browser, but it is slow, complex, and incredibly fragile. “It surprises me that there is not a greater call for its replacement,” Crockford said.
XML is complicated and inefficient, he said. “Fortunately, XML has been replaced by JSON,” Crockford said. “This gives me some confidence that we can fix the standards in the Web. This is our first success at that.”
Crockford urged standardization and uniformity in browsers. But there are computers not capable of running the latest browsers, he said.
If the Web is unable to repair itself, it could be replaced with a proprietary system such as Microsoft’s
(Adobe Integrated Runtime), Crockford said. Proprietary systems do present advantages, such as having only one source of new bugs and presenting a simpler upgrade story. But people like open systems and are suspicious of proprietary systems, he said.
Crockford added that he used to think the browser was the most hostile programming environment ever devised, but then he found out about mobile programming. The mobile industry has had its own failed experiments, he said.
“Despite all of its problems, AJAX works. So we’re looking at a mobile Web now,” Crockford said.
Fixing the many issues might just require a lack of democracy, in which the right players are placed in the same room and agree on a remedy, similar to how the U.S. Constitution was forged, he said.
“Maybe we should do that, too, but who are the right guys and how do you figure out how to get everybody else not to revolt,” Crockford said.
Earlier on Thursday, Kevin Hoyt, platform evangelist with Adobe Systems, emphasized the concept of experience as critical for Web development. Experience matters to business, he stressed. He spoke of an experience economy as a successor to the current service economy.
“Seventy-two percent of shopping carts abandoned because of poor user experience,” Hoyt said.
He also urged developers not to disregard what they learned from developing desktop applications when they start building for the Web. It is OK to use desktop metaphors in Web apps, such as widgets, he said. “It’s OK to think inside the box,” said Hoyt.
Customers, he said, want a personal relationship with a brand.