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.
Another Google initiative along these lines is a new language the company introduced last year called Dart.
"The current crop of [programming] languages is hard to scale when creating really complex applications for the Web. Creating good tooling for them is difficult," said Dan Rubel, a Google software developer who is part of the Dart team, speaking at a EclipseCon technical session about Dart. The goal of Dart is to provide an easy way to create small Web applications while providing the support for large, complex applications as well, Rubel said.
Mike Milinkovich, executive director of the Eclipse Foundation, agreed with Russell's assessment that developers need more advanced tools for maintaining and debugging Web applications. To this end, Eclipse is developing a version of its IDE (Integrated Developer Environment), called Orion, that runs entirely within a Web browser.