Slashdot Mirror


Mozilla and Samsung Collaborating to Bring New Browser Engine to Android

An anonymous reader writes with this bit from The Next Web: "Mozilla and Samsung on Wednesday announced a new partnership to build a 'next generation' web browser engine called Servo. The ultimate goal is to bring the technology to Android and ARM, though the two companies have not shared a timeframe for a possible launch. With the help of Samsung, Mozilla is bringing both the Rust programming language as well as Servo to Android and ARM. Samsung's contribution so far has been an ARM backend to Rust as well as the build infrastructure necessary to cross-compile to Android. In fact, the code is available now on GitHub, as is the source for Rust and Servo." For those unfamiliar, Rust is Mozilla's new safe systems programming language (kind of like BitC), and Servo is their general project to write a brand new engine using Rust. Rust has an interesting memory model that eliminates much difficulty in reasoning about threaded programs. If you know what you're doing, they claim you can cross compile the code for Android, but no functionality guarantees have been made.

13 of 111 comments (clear)

  1. Woohoo! yet another language by CockMonster · · Score: 2

    Rust. Why?

    1. Re:Woohoo! yet another language by Anonymous Coward · · Score: 2, Funny

      Can you have Rust on Chrome?

      Fuck this is confusing.

  2. Re:Stop it, stop it, stop it! by MightyYar · · Score: 2, Interesting

    Some wheels are better for certain uses than others. For some things, you have pneumatic tires, for others, you have solid tires. Spokes can be made of wood, metal rods, plastic, metal castings, or stamped sheet metal. Sometimes you want a slick tread, sometimes you need channels for water, sometimes you need little spikes for traction. Creating one wheel design for all applications would result in an abomination.

    Taking the syntax and some concepts from C++ and building upon them is not "reinventing the wheel" - it is building upon the decades of work and experience that went into creating C++. If the concepts behind Rust prove useful, then perhaps they can be incorporated into C++. If they are useful and can't be incorporated into C++, then we really do need another kind of wheel after all.

    --
    W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  3. Servo Yes, Rust No. by Qwavel · · Score: 5, Funny

    Building a next-gen browser engine sounds like exactly what 'mozilla labs' should be doing.

    On the other hand, creating a new language in order to do it, sounds like Engineers whacking off.

  4. Re:Stop it, stop it, stop it! by sidragon.net · · Score: 2

    The thousand year old wheels doesn't work very well for traveling at 60mph.

    Our wheels aren't a thousand years old. They're barely even a few.

    There is a good reason to reinvent the wheel over and over again.

    Ignoring the fact that this analogy has broken down into uselessness, let's talk about this new browser engine. Is it going to conform to the existing standards and produce output identical to its predecessor?

  5. Rust is good for you by 21mhz · · Score: 4, Interesting

    The comments look as though at some point Slashdot turned into a gathering of cantankerous change-haters. Was your soup cold again today at the care home's canteen, grandpas?

    This is actually the first really exciting language I heard about in a while, on so many points. It absorbs a lot of the FP syntactic sugar and type concepts without turning into a Haskell. Like Erlang, it provides the shared-nothing actor model for concurrent programming at the language level, instead of mucking with threads and global state directly. You seem to be allowed to take your C/C++ libraries along (perhaps with some glue). Rigorous safety is probably not for everybody, but it's generally appreciated in large, network-facing projects. It's not tied to the JVM like Scala. And thank goodness, finally there's a language working with real Unicode characters natively, stepping outside the 1990s-era trap that was UTF-16 (the internal string representation in Rust is UTF-8).

    --
    My exception safety is -fno-exceptions.
    1. Re:Rust is good for you by Animats · · Score: 2

      Like Erlang, it provides the shared-nothing actor model for concurrent programming at the language level, instead of mucking with threads and global state directly.

      That's encouraging. The Go language designers tried to do that, but didn't quite get it right. They talk a good game of "Don't communicate by sharing memory; share memory by communicating". But in reality, Go shares data (usually, too much data) between concurrent tasks. When you pass a reference through a Go channel, you're sharing data. Go is prone to race conditions. You can even break through the memory model and craft exploits by exploiting race conditions. As a result, Google's AppEngine has to lock down Go programs to one thread.

      (There are three big memory safety holes in C: "How big is it", "Who can delete it", and "Who locks it". C++ tries to address #1, but doesn't quite succeed. Languages with GC address #2. Few languages (Ada and Erlang being exceptions) address #3 well. Go does not, Rust apparently does.)

      We'll have to see how the Rust people do. Stuff that comes out of Mozilla tends to have a huge number of half-implemented features. (That's so open-source.) Go is a coherent design, even if flawed. It's from some of the old Plan9 people at Bell Labs.

  6. Re:Language matrix by Anonymous Coward · · Score: 2, Interesting

    You could have gone to rust-lang.org and checked instead of complaining, you know. Rust has language features that are claimed to support memory safety and concurrency. It also has generics, exception handling, optional task-local GC, etc.

    All in all, different from C in more ways than just cosmetics. Whether the effort spent in producing this language is merited is another topic.

  7. Re:Language matrix by ShieldW0lf · · Score: 2

    What's so special about this language anyway, that couldn't be done using C source (perhaps with some extensions) but a different compiler and runtime system?

    I've only spent a few minutes reading through the tutorials, but I'm thinking section 3.1 is probably significant:

    http://static.rust-lang.org/doc/tutorial.html#syntax-basics

    --
    -1 Uncomfortable Truth
  8. Re:Stop it, stop it, stop it! by 21mhz · · Score: 4, Insightful

    What concepts does Rust introduce that aren't already present in the latest C++ standard?

    Too many to enumerate, but the main one is: not being a crazy impractical language which so many programmers were ill-taught to use.

    Which aren't already present in Scala?

    Not using a Java VM.
    Doing actual Unicode natively, not the UTF-16 bastardization of it.

    Which aren't already present in Go?

    I'll let the FAQ take this one...

    --
    My exception safety is -fno-exceptions.
  9. Re:Time for Google to act.. by Rich0 · · Score: 4, Insightful

    I love Android and Chrome and most Google products, but the last thing I want is Google throwing their weight around with the OS. The whole point of Android is that it is open. If somebody thinks they can make a better browser more power to them - these aren't the days of IE6 - I don't want an "Optimized for Chrome" experience.

    If they come up with some good ideas then everybody wins. Competition is good for the consumer. I like Chrome for all the automatic syncing across all my platforms, but the last thing I want is for them to stagnate due to lack of competition.

  10. Re:Stop it, stop it, stop it! by 21mhz · · Score: 2

    Let's make that more clear. The programmers used it wrong, so let's invent a whole new language. Right.

    No, no. C++ is a badly designed language and it is often misused by the programmers.

    If you're inventing a language, you know how to build a compiler. Write one for Scala. Or use Go.

    A programming language is not just a syntax. It comes with a runtime environment, internal representation of data, and standard libraries. Scala and Go make different design choices on important matters, meaning a straightforward conversion from Rust to these languages is impractical. And it's not needed, because Rust is, by development, a frontend to LLVM. So, we get a modern, concurrency-friendly language to the compiler backend that can compile to binaries or work JIT if required.

    --
    My exception safety is -fno-exceptions.
  11. Re:Come again? by LordThyGod · · Score: 2

    We're not pissed with change. We're pissed at reinventing the wheel. Again.

    Still sounds a little like pissin and moanin for the sake of pissin and moanin though. There quite obviously nobody here in our friendly little group that has near the credentials of Brendan Eiche for writing browser code. Sorry to all those that think they are smarter than he is, but show some creditibility first. How many languages have you guys written anyhow and how much time have you spent in the guts of a mainstream browser? I doubt you can top him. And if no one took the time to try to make a better wheel, we'd all be doing a fred flinstone with tree trunks for axles, round rocks for wheels, and feets for brakes.