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
Post a Comment