Deals Under $25 Spotify Wrapped Apple's 2022 App Store Awards Neuralink Brain Chips: Watch Today Kindle Scribe Review World Cup: How to Stream '1899': Burning Questions Immunity Supplements for Winter
Want CNET to notify you of price drops and the latest stories?
No, thank you

Google's post-JavaScript Web plan raises hackles

With its Dart language, Google hopes to overcome problems with the widely used JavaScript. But some dislike Google's secretive development style.

Google Chrome logo

Google thinks it's time to look beyond JavaScript, the programming language that gives Web applications their brains. The company's project to do so behind closed doors with a new language called Dart, though, has spurred something of a backlash.

The company piqued Web programmers' interest last weekend with the news that it would offer details about Dart, which it calls "a new programming language for structured Web programming," at a conference in October. But immediately after, a leaked 2010 memo about Dart--at the time called Dash--raised hackles by spotlighting how Google often develops Web technologies in-house rather than collaboratively.

"Once Dash has had a chance to prove its stability and feasibility, we are committed to making Dash an open standard with involvement from the broader Web community," said the memo, written by 15 Web programming experts at Google. But the order of events is telling: "We need to make a clean break, make progress, and then engage the community."

Brendan Eich, who founded JavaScript and is chief technology officer of Firefox maker Mozilla, worries that Google's approach will degrade the Web with proprietary technology that means Web sites and Web apps will work only in one browser. He accused Google of "open-washing"--giving a project a gloss of openness when in practice a technology is still controlled by a single company. And he expressed skepticism about whether Google really intends to standardize Dart.

Google: the new Microsoft?
"GOOG is acting more like MSFT of old," Eich said in a Hacker News discussion of the memo. "Innovating in the open and proposing early and often to standards bodies are fine. Delayed-open-washing and increasing piles of proprietary (open-source doesn't matter) single-vendor code, which implements features that are not ever proposed for standardization, are not." He likened Dart to Microsoft's VBScript competitor to JavaScript and its Windows-only ActiveX mechanism for extending browser abilities.

Related stories:
• Google to debut Dart, a new language for the Web
• Faster JavaScript gets Google Chrome 10 spotlight
• Google to rebuild Chrome on secure foundation

Alex Russell, a Chrome programmer at Google, cautioned yesterday in a blog post that Google is big enough for many opinions and that the memo "was a draft and doesn't reflect either the reality of what has happened in the meantime or even the decisions that were taken as a result."

"As committed and enthusiastic as I am about the prospects for JavaScript, others are just as enthused about Dart," Russell said. "Google is big, can do many things at once, and often isn't of one mind. What we do agree on is that we're trying to make things better the best we know how."

But it's hard not to reach at least some conclusions--especially given that Google has been working for months on Dart behind closed doors. Eich stopped short of saying Google violates its own "don't be evil" tenet, but invoked the famous line from the movie "Spiderman," "With great power comes great responsibility," in an effort to steer the company to what he believes is the right direction.

And Web developer and browser expert Dion Almaer, who knows many of the memo's authors, urged caution in a blog post today:

I have little doubt that the Dart team only thinks they will be pushing for a better world to live in. On the other hand, the ActiveX team probably thought the same. The issue is how things progress and who gets ownership. The Web is special in that it isn't about a single vendor, so I hope that if Dart is successful...that it becomes part of an open commons.

Google said it plans to keep working on JavaScript, including the "Harmony" attempt to advance it, as part of a two-pronged Web programming strategy. But JavaScript fans could be forgiven for feeling threatened.

"The goal of the Dash effort is ultimately to replace JavaScript as the lingua franca of Web development on the open Web platform," the memo said.

Dart's debut
Google's hopes for Dart, nee Dash, are high. According the memo, Google wants a language that preserves JavaScript's ease of use but that better accommodates large-scale programming needs such as advanced developer tools.

Google also wants a language that, like JavaScript, executes within a sort of software-based computer called a virtual machine (VM), but that "do not have the performance problems that all EcmaScript VMs must have." ECMAScript is the formal language for the JavaScript standard, developed at the ECMA standards organization's TC39 group.

Two Google employees with significant credibility in the area are scheduled to detail Dart. First is Gilad Bracha, who created the Newspeak programming language and who in March blogged that "Javascript remains a seriously limited language for platform implementation." He also was co-author of the Java Language Specification and worked at SAP Labs, Cadence, and Sun Microsystems.

Lars Bak, leader of the Chrome V8 JavaScript team
Lars Bak, leader of the Chrome V8 JavaScript team Stephen Shankland/CNET

Second is Lars Bak, who led the team that built the Chrome browser's V8 engine. V8 was built in Aarhus, where Dart will be unveiled at the Goto conference in October. Bak is a particular expert in virtual machines.

Good performance, programming tools, and Web applications will preach the Dash gospel. "Lars [Bak] has promised to 'sweet talk' the other browser vendors and, while we are all eager to see this, we recognize this is a very difficult road. Our approach is to make an absolutely fantastic VM/Language and development environment and build great apps that fully leverage it in order to help other browsers see the wisdom in following," Google said.

The memo also said two Google tools for Web programmers are being merged into one Dart-based project: the Google Web Toolkit (GWT) that lets programmers create complicated Web sites in Java that's then converted to JavaScript, and the Closure software to help low-level JavaScript programmers with high-performance features.

Google is working on Dash programming tool called Brightly, itself written in Dash, the memo said. Because it's a Web app, Brightly is a cloud-based developer tool--something that would let Google programmers use a Chromebook for coding, for example.

Google said it plans, at some point at least, to work with standards groups, but that such an attempt would be nearly useless within the JavaScript realm.

"We fully intend to cooperate fully with standards processes--the problem is that the current standard processes are limited to JavaScript, which is not viable in the long term. Any effort with the historic baggage that JavaScript has will be extremely limited," the memo said.

Fragmentation worries
Web programmers today are typically big advocates of Web standards that, ideally if not in practice, permit the same Web code to run unchanged on multiple browsers. Even Microsoft, which long was derided for running roughshod over standards with earlier Internet Explorer versions, is now a true believer. For people using the Web, that means they don't have to worry about seeing cautions such as "This site works best with Netscape Navigator" or "This site requires Internet Explorer."

With Chrome, Google has a vehicle to bring Dart to market--and it's raising the prospect of some of that incompatibility again.

"Developers focusing on all browsers will have to make use of the Dash cross-compiler to target other browsers," Google said, referring to software for converting Dash code to JavaScript for browsers that don't support Dash. "Depending on the success of the evangelizing effort, [they] might have to wait years for other browsers to implement native support for Dash."

And later, regarding Google's own Web apps: "We will strongly encourage Google developers start off targeting Chrome-only whenever possible as this gives us the best end-user experience." For other browsers, there's the Dash compiler to convert code to JavaScript.

Web programming innovator
Google believes powerfully in the idea of the Web as a universal foundation for software and has worked for years to advance that agenda. Google's high-profile embodiments of the vision include the Chrome browser, the Chrome OS operating system that runs Web apps only, and the Web-based Google Apps suite for tasks such as e-mail and word processing.

Google, though, also has an acute appreciation for the shortcomings of the Web as a programming foundation. Despite its herculean efforts to improve JavaScript performance, for example, its limits have made it hard for Google Docs to match the abilities of competing software such as Microsoft Office that runs natively on a computer.

The company has plenty of allies in the browser world and beyond for its Web-app agenda.

But Google's way of pursuing that is alienating some of them. Google often develops significant projects in secret, unveiling them with much fanfare as open-source projects without giving would-be allies a chance to participate in the early development.

Dart is an example, but it's not the only one. Other examples, some of which have attracted allies beyond Google and some of which haven't:

• The Gears plug-in (developed before Chrome arrived) brought several new features to Web browsers such as a better ability to run apps when offline. Google released it as open-source software, but had better success getting it to catch on by eventually bringing elements of it into standards processes. Not all of it, though--the WebSQL database lost out to IndexedDB, backed by Mozilla and Microsoft.

• The Native Client technology for speeding Web apps by running native software at native-software speeds, but within strict security confines. Closely related is the "Pepper" technology for governing how Native Client and other plug-ins interface with the browser. Native Client, aka NaCl, now is enabled by default in Chrome, though by default it can only run NaCl apps from Google's Chrome Web Store.

• the O3D plug-in for hardware-accelerated 3D graphics on the Web. Google released the plug-in at about the same time Mozilla and Khronos Group were working on a lower-level interface now called WebGL; Google eventually joined the latter group and decided to recraft O3D as a library that works on WebGL's foundation.

• SPDY attempts to accelerate the communications between Web browsers and Web servers.

• The WebM video format and its closely related WebP still-image format are designed to bring royalty-free, open-source video and smaller image files to the Web.

Google isn't acting in isolation. Several of these initiatives have found partners--Mozilla and Opera, for example, like WebM. And Google doesn't always keep technology when others such as WebGL or IndexedDB prevail.

In addition, many other Web technologies began life at one browser maker or another: Apple has helped advance new elements of the Cascading Style Sheets technology, and Mozilla helped bring the Web Open Font Format to fruition. But Google's approach with in Dart indicates shows it's committed to the technology even if it doesn't find allies.

But one final thought: Google believes deeply that it's doing the right thing for the Web, but the company doesn't make money selling the Web. It makes money from services it offers over the Web. For Google, a better Web is a means to an end, not an end unto itself.

Those worried about Dart would be wise to bear that in mind--just as Google should think carefully about the consequences of its own in-house practices.