Google is working on a number of advanced programming technologies to ease complex Web application development, a Google engineer revealed at a conference for software developers.
Despite its popularity, the Web offers only relatively primitive programming capabilities, compared to other platforms for delivering applications, such as Java or Microsoft Windows. One major shortcoming is that Web technologies don't have a "common component model," which slows code testing and reuse, he said.
Google is working on a number of different projects to bring some advanced software engineering concepts to the Web, Russell said. The idea is to introduce low-level control elements without making the Web stack more confusing for novices. "We're learning from platforms [that] started at a very low-level," he said.
Much of the power of the Web, Russell admitted, comes from its ease of use. Developers can view and reuse source code. Browsers are forgiving of errors, and technologies such as CSS (Cascading Style Sheets) offer simple methods to execute complex tasks, such as formatting text.
But such ease-of-use limits developer expressivity. With CSS, "the fact that you aren't able to poke in and draw your own kind of line is not great," Russell said. "You get the same text layout on all the Web sites. You have the same design because you have the same constraints," Russell said.
By developing a unified component model for Web technologies, Google is setting the stage for developers to "create new instances of an element and do things with it," he said.
As an example, Russell showed off a new element he created called commenting. For Web pages that allow user comments, the commenting element, rendered as a tag, can automatically format the text submitted by a user and even add an accompanying photo. The tag is actually a program, complete with its own API (application programming interface), Russell said. With the unified component model, HTML can be a sub-class of a larger environment, allowing for more ways to manipulate HTML code.