10 Mozilla projects fueling the open Web

10 Mozilla projects fueling the open Web

Firefox reinvented the old-school Netscape browser, in a defining moment for Mozilla as an advocate for open Web technologies. Today, market share for Mozilla's most noteworthy project is slumping, and the luster of Firefox appears to be fading, no thanks to strong competition from Google Chrome.

But that doesn't mean innovation at Mozilla is on the wane. Mozilla has had a hand in many software projects -- some cooked up within Mozilla, others executed in conjunction with other organizations -- and continues to push forward its mission of an open Web.

Here are 10 notable projects Mozilla has played a key role in developing, each hinting at Mozilla's evolving vision for the Web.

Rust

Wouldn't it be nice to have a language with the speed of C/C++ and the memory safety and concurrency controls of a higher-level language? That's the impetus for Rust, a fast-evolving language co-sponsored by Mozilla and Samsung, designed for systems programming on modern CPUs with multiple cores.

Rust sports a slew of features for minimizing or eliminating common programming mistakes, such as improper use of memory. But the safety features of the language can be toggled off selectively -- for example, if you don't want the overhead of garbage collection for a function. Plus, Rust and C/C++ interoperate, so each can use the other where needed.

Our take: One to watch, especially as it shapes up against Google's Go, which has related goals.

Servo

What's Mozilla building with Rust? Exhibit A: Servo, a Web browser engine intended for current and future generations of multicore hardware and GPUs. Here, Rust has been used for memory safety (something always good in a browser) and as an elegant native mechanism for keeping browser components isolated.

Our take: Worth keeping in mind, especially as a way for Firefox to regain some share from Chrome. But no browser, from Mozilla or otherwise, uses Servo yet, and Mozilla isn't betting the farm on it, so don't hold your breath.

Firefox OS

What Chrome OS was to Chrome and notebooks, Firefox OS is to Android and smartphones ... sort of. Originally dubbed "Boot to Gecko" and billed as "a complete, stand-alone operating system for the open Web," the project was conceived as a less proprietary response to Android. Under the hood is a stripped-down Linux kernel designed to run little more than the Firefox Web browser as a smartphone OS, with all apps implemented as pure HTML5 and JavaScript.

Our take: A better idea in theory than in practice. Given that Firefox OS seems aimed more at emerging markets than as real competition for Android or iOS, it's made minimal of dents in both market share and mind share

WebIDE

Building, editing, and testing Web apps is often tedious work. Mozilla decided to do something about it by creating a Firefox component that turns the Firefox browser into a development environment for mobile apps. As of June 2014, it's included only in development ("Nightly") builds of Firefox, but Mozilla aims to add it to Firefox proper in time. Mozilla also offers WebIDE starter templates for common Web apps; using them is optional, not mandatory.

Our take: The concept is great. Web app development is hard enough as is, and anything to make the tool set a little more streamlined and convenient is welcome. The WebIDE concept may have some influence: Google seems to have picked up on the idea for its ecosystem.

Shumway

Adobe Flash, a constant source of security headaches, is nonetheless the plug-in that refuses to die, even with HTML5 and JavaScript eclipsing much of its functionality. So why not create something that emulates all of Flash's capabilities in HTML5 and JavaScript and ditch Flash itself? That's exactly what Mozilla has in mind with Shumway, which aims to run Flash-format files in a browser without the use of a plug-in.

Our take: Nice idea, although it seems like it'll be a while before it's ready for prime time. Even in Firefox's nightly builds, it lags on many Flash apps and doesn't run some of them at all. What are the odds on HTML5 replacing Flash entirely before Shumway is fully baked?

PDF.js

The PDF plug-in is yet another Adobe product found in Web browsers that's infamous for being riddled with security problems. PDF.js aims to replace all that with pure JavaScript, and apparently has done a good enough job that it's now the default PDF renderer for Firefox. But not everyone is crazy about that choice. Of course, you can always save a PDF file locally and read it outside the browser, right?

Our take: One less potentially insecure add-on for a browser is always a good thing, but it could afford to run a little faster and render typefaces more cleanly.

Asm.js

Strip JavaScript down to a few essentials. Translate existing C/C++ code into that stripped-down JavaScript. Launch it in the browser. Watch it run at remarkable speed -- OK, around half of native code's speeds, but remarkable considering it's JavaScript.

Asm.js is an ambitious project, demonstrating Mozilla's belief in JavaScript as a universal runtime engine. Support for Asm.js-specific extensions must be implemented in a browser's JavaScript engine to realize its full potential; only Firefox sports such additions right now. Even without them, Asm.js-powered apps are impressive.

Our take: Aside from game demos ("Bananabread" shown here), its killer apps have yet to show up. If Asm.js gets merged into Chrome's V8 JavaScript engine, things will get really interesting. Your move, Google.

TogetherJS

When it comes to collaborative Web applications like Google Docs or Office 365, the easy way to build one is to use an existing incarnation of the technology, such as ... well, Google Docs or Office 365. Mozilla's open source TogetherJS library is meant to make it easier to construct Web apps where users can see collaborator's actions on their own screen in real time. The library requires a hub server that passes messages to all the participants using Web Sockets, but the client code can be changed with a high degree of independence from the server.

Our take: Not revolutionary, but the barrier of entry to use is quite low (a single included script will get you started).

BigBlueButton

Billed as "an open source Web conferencing system for online learning," BigBlueButton actually comes off most as an open source replacement for discussion and meeting systems like GoToMeeting, WebEx, or Adobe Connect, especially since its interface is strongly patterned after those programs.

The feature set is certainly on par with those services: whiteboarding, desktop sharing, recording and playback of meetings, slideshow displays of PDFs or Microsoft Office documents, and both webcam and VoIP conferencing are  included.

Our take: It's a great idea that curiously doesn't seem to have caught on much outside of educational circles. It even comes in its own VM image for easy deployment.

Parallel JavaScript

Lack of parallelism is a perpetual JavaScript shortcoming -- not just that it runs in a single thread (barring use of Node.js or the Web Workers API), but that it can't take advantage of processor-level SIMD functions. Mozilla's getting behind the Parallel JavaScript project, primarily sponsored by Intel, to propose SIMD functionality be added to the ECMAscript standard.

Our take: Intriguing idea, but the payoff will be years down the road. For one, it will take time to become an official part of the language, if it ever does. There're also doubts about how much of a speed boost SIMD-type parallelism can provide for most JavaScript applications, although there's little question JavaScript is showing up in more ambitious projects as time goes on.


Comments

Popular posts from this blog

Report: World’s 1st remote brain surgery via 5G network performed in China

BMW traps alleged thief by remotely locking him in car

Visualizing The Power Of The World's Supercomputers