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.

56 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:Woohoo! yet another language by Anonymous Coward · · Score: 1

      I would have appreciated a move to Go more, but they probably wanted something without any influence from Google.

    3. Re:Woohoo! yet another language by rwise2112 · · Score: 1

      Rust. Why?

      Because Rust Never Sleeps!

      --

      "For every expert, there is an equal and opposite expert"
    4. Re:Woohoo! yet another language by cyfer2000 · · Score: 1

      Well I'll be damned , give it some time, it can turn into diamonds.

      --
      There is a spark in every single flame bait point.
    5. Re:Woohoo! yet another language by Rob+Riggs · · Score: 1

      +1

      Slashdot has a knack for expiring mod points right when they are most needed.

      --
      the growth in cynicism and rebellion has not been without cause
    6. Re:Woohoo! yet another language by Anonymous Coward · · Score: 1

      Rust. Why?

      Because there is room for a better systems language. Lots of apps languages have appeared with their garbage collectors, byte codes and JIT run-times. We've seen a plethora of 'dynamic' and/or 'scripting' languages as well. You can't make bare metal systems out of these things without unacceptable performance compromises, so all contemporary systems are still based on C, C++ and Objective-C.

      Read the reference manual. You'll find a language that can do anything you might do with C, but also provides higher order functions, lambdas, scoped heap allocation with automatic destruction, fast stack based allocation, concurrency, powerful macros, generics, a real package system.... a lot of stuff that would make systems programming better. It's also rather concise.

    7. Re:Woohoo! yet another language by segfault_0 · · Score: 1

      "It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles."

      It is the only natively compiled language that I know of that tries to offer those things.

      --

      I was crazy back when being crazy really meant something. (Charles Manson)
    8. Re:Woohoo! yet another language by K.+S.+Kyosuke · · Score: 1

      So far, Go has made no choices regarding generics, besides the "we're working on finding out what kind of generic programming features is desirable for us to have in the first place". In fact, it's not even meaningful to talk about "no generics" since the term "generics" is highly contextual. The C# people talk about generics all the time when what they have in mind is actually a simple, 1980 vintage style rank-1 parametric polymorphism with no aspiration whatsoever to doing anything remotely useful in the context of what passes for generic programming today. (Or read this.)

      --
      Ezekiel 23:20
    9. Re: Woohoo! yet another language by CockMonster · · Score: 1

      But Firefox is already always running but not responding!

    10. Re:Woohoo! yet another language by icebraining · · Score: 1

      I like Go, but it wouldn't have worked for this purpose. They want to be able to do manual memory management, for example.

    11. Re:Woohoo! yet another language by gbjbaanb · · Score: 1

      that and C++.

      imperative procedural - obviously
      concurrent actor - well, depends what you mean by that, but the new standard has std::async and lambdas that's easy to use. (eg)
      object-oriented - obviously
      functional styles - had this for years in the STL.

    12. Re:Woohoo! yet another language by amRadioHed · · Score: 1

      That doesn't sound so good, it will kill your battery life.

      --
      We hope your rules and wisdom choke you / Now we are one in everlasting peace
    13. Re:Woohoo! yet another language by K.+S.+Kyosuke · · Score: 1

      that and C++.

      Your statements are dangerously close to claiming that a dog with four extra legs bolted on is an acceptable octopus.

      "concurrent actor" means CSP/Erlang-style/Go-style active computational entities. "functional style" is supposed to be STL? It's weird, though, that I've never seen anything STL-like in any *actual* functional language.

      C++ allows you to *implement* a lot of stuff on top of it, but it ends up looking like the eight-legged dog. And it *still* doesn't have proper modules. What a disgrace, thirty years after Modula-2.

      --
      Ezekiel 23:20
    14. Re:Woohoo! yet another language by wiredlogic · · Score: 1

      A clean, modern systems language would be nice to have. Too bad Rust looks like the bastard offspring of of a C++, VB, and Perl threeway. I see gobs of punctuation peppered everywhere where a much simpler syntax could be employed. Do you really need to have namespaces separated by "::" instead of "."?

      --
      I am becoming gerund, destroyer of verbs.
    15. Re:Woohoo! yet another language by K.+S.+Kyosuke · · Score: 1

      Funnily, for all the kludgy aspects of C++, it does really rule the world of Applied Software Engineering.

      McDonald's rules the world of Applied Feeding of Americans. Not exactly something to be proud of, is it?

      --
      Ezekiel 23:20
    16. Re:Woohoo! yet another language by Thiez · · Score: 1

      When you also use '.' for method calls and accessing fields of a struct, using '::' instead of '.' for namespaces doesn't seem like a bad idea.

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

    An all-out sprint on a treadmill doesn't take you anywhere. Can we please stop reinventing the wheel, over and over and over again?

    http://slashdot.org/comments.pl?sid=3420641&cid=42739283

    1. 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.
    2. 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?

    3. Re:Stop it, stop it, stop it! by sidragon.net · · Score: 1, Insightful

      What concepts does Rust introduce that aren't already present in the latest C++ standard? Which aren't already present in Scala? Which aren't already present in Go? Do you really want me to believe that memory safety, concurrency, generics, and exception handling present in half-a-dozen off-the-shelf (and mature) languages weren't sufficient? (And let's not forget that every new language departs from existing tool chains that service to multiply development efforts.)

      I'll say it for the umpteenth time on Slashdot: why do we need dozens of half-baked projects instead of a few that are exceptionally solid? And I'll, again, give my own answer: because every one of these geeks who designs to start his own little, duplicative project thinks he's smarter than everyone else. You know, because those guys are idiots, and we couldn't possibly build upon their work. Greenfield development is always fun! (Am I right?)

      But let's forget all that for the moment, and concentrate on our shiny new browser engine. If and only if this project is successful when all is said and done, it will produce exactly the same output as its siblings and predecessors--output that's dictated by standards. Indeed, after devoting person-years worth of hard labor, we will end up with something with exactly the same functionality as what we had before.

      Sigh. Obligatory XKCD.

      http://xkcd.com/927/

    4. 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.
    5. 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.
    6. Re:Stop it, stop it, stop it! by MightyYar · · Score: 1

      My goodness, just Google "C++ Considered Harmful" and read the rants. We don't need to get into that whole argument again. The fact is that there are a whole bunch of very smart people who feel this way, and another similar group who disagree. It is possible that both groups are right - that C++ is good for a certain type of problem and a certain type of programmer, but just plain awful at other kinds of problems attacked by other types of programmers.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    7. Re:Stop it, stop it, stop it! by MightyYar · · Score: 1

      Furthermore, this project is very interesting because they are co-creating both a new language and a new web renderer. It's conceivable, if not certain, that the new language will be better-suited to building a web framework than C++. If we're lucky, it will also solve other problems with a similar set of challenges.

      Worst case, this little experiment goes nowhere. Even if the project is abandoned, we might learn some great ideas to feed back into other languages.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    8. Re:Stop it, stop it, stop it! by Unknown+Lamer · · Score: 1

      It has the one thing that matters: a real type system.

      C++ is an unparseable mish-mash of incoherent and unsafe components. More complex than Common Lisp with none of the benefits... AFAICT half the language exists just to support obsolete memory management strategies. And the other half exists to compensate for having an extremely unexpressive type system grounded in glorified bit fields of varying length./p

      --

      HAL 7000, fewer features than the HAL 9000, but just as homicidal!
    9. Re:Stop it, stop it, stop it! by wiredlogic · · Score: 1

      C++ was never designed so much as hacked together. It's the CVS of languages.

      --
      I am becoming gerund, destroyer of verbs.
    10. Re:Stop it, stop it, stop it! by K.+S.+Kyosuke · · Score: 1

      Well, you should grow up from your academic life into becoming a real software engineer. In the real world, performance often matters more than anything else. GC is a no-way-thing for many fields of software engineering.

      Hahaha. You haven't seen a *proper* GC implementation in action, have you? (Not to mention the fact that he didn't mention GC anywhere in his post, so I don't see how your jumping to conclusions is appropriate here.) Nowadays, you can build a compacting, concurrent, parallel, *pauseless* GC on stock hardware. (I believe the last piece of the puzzle to be solved was implementing memory read barriers on recent stock HW.)

      --
      Ezekiel 23:20
    11. Re:Stop it, stop it, stop it! by david_thornley · · Score: 1

      C++ is actually a pretty well-designed language (that is often misused by programmers). The design criteria had implications you probably didn't expect.

      The first issue is C compatibility. C++ as as close to being a C90 compiler as they could make it, and most C90 programs will compile as C++ just fine. This causes a whole lot of problems in the language, and is responsible for many of the ambiguities and awkward syntax. It's why compiling C++ takes lots more time than compiling C# or other more modern languages that don't try to be compatible with antique syntax.

      Secondly, features were evaluated for how useful they'd be, with essentially no thought to how easily they could be abused.

      Thirdly, utility came before cleanness. It shows, but there's always a lot of features that people wanted to put in, and could have, that didn't make it into the ARM/C++98 standard/C++11 standard.

      Fourth, the designers were making it up as they went along. C++ was originally C with Simula 67 classes added (called "C with Classes"), and everything else, including many things we think of as core C++ features, came along later. The Committee has been very reluctant to break older programs, and that has had all sorts of odd results. There was no one ruling brain starting with a wide vision like Java and C# had. The language has emergent behavior (such as Turing-complete template creation).

      C++ is incredibly useful in lots of things, but requires a good bit of expertise to use properly. It is very definitely not for every project and every programmer.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    12. Re:Stop it, stop it, stop it! by 21mhz · · Score: 1

      Thank you for describing that mess. The only thing I don't understand is why you are calling it "well-designed".

      --
      My exception safety is -fno-exceptions.
  3. Time for Google to act.. by bogaboga · · Score: 1

    Google should "beat" Samsung into line. In other wprds, Google should pressure Samsung to "toe the line" or else...

    Just like it did to Acer when it (Acer), was attempting to flirt with China's AliyunOS.

    1. Re:Time for Google to act.. by Anonymous Coward · · Score: 1

      Google should "beat" Samsung into line. In other wprds, Google should pressure Samsung to "toe the line" or else...

      Just like it did to Acer when it (Acer), was attempting to flirt with China's AliyunOS.

      Why? Let Mozilla and Samsung do this. It brings things to the table for us to choose from. Not have one company force us all to use what they only find best. No one says you have to use it.

    2. Re:Time for Google to act.. by Microlith · · Score: 1

      Why would Google do that, when Google themselves help fund Mozilla?

    3. 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.

  4. Rust Colored Glasses by bill_mcgonigle · · Score: 1, Interesting

    Help me find the motivation to spend time learning a Mozilla language and develop a program with it when so many of its projects just get the axe when they lose their shine. If even Thunderbird is subject to being eliminated, that makes Mozilla the Firefox group again (back to NCSA Mosaic) as far as what they can be counted on to stay behind.

    Hrm, perhaps I just answered my own question - when parts of Firefox are built with Rust, then it'll be safe to try. Heck, even XPCOM is still alive.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  5. 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.

    1. Re:Servo Yes, Rust No. by MaWeiTao · · Score: 1

      Some people believe Samsung may start pushing Tizen over Android.

    2. Re:Servo Yes, Rust No. by Qwavel · · Score: 1

      Actually, I think Google's Go language in the same terms as Rust.

      NaCL and Dart do have some value in relation to Google's goal of moving the Web forward. If they really want the Web to compete with desktop OS's then javascript really is lacking.

    3. Re:Servo Yes, Rust No. by icebraining · · Score: 1

      Go is fine for writing daemons. It's not particularly good for writing interactive processes. For once, Mozilla wants to be able to do away with the GC for certain components of the system.

    4. Re:Servo Yes, Rust No. by Xest · · Score: 1

      Some people believe in fairies too.

    5. Re:Servo Yes, Rust No. by iampiti · · Score: 1

      It might not be at the same level of the 3gs running iOS 6, but Samsung have published 2 major updates to the Galaxy SII (2.3->4.0->4.1). An update to 4.2 is rumored.
      As I said, that support might not be as good as Apple's but it's the best in the Android world.
      Anyway I also think that Samsung waste too many time releasing too many pointless Galaxy Android phones

  6. Re:I'll wait for the upgrade to Crow by Anonymous Coward · · Score: 1

    There was a programmer named Joel,
      Not too different from you or me.
      He worked at Mozilla Institute,
      Just another face in a red jumpsuit.
      He did a good job cleaning up the place,
      But Samsung didn't like him
      So they shot him into space.

      We'll send him cheesy browsers,
      The worst we can find (la-la-la).
      He'll have to sit and surf with them all,
      And we'll monitor his mind (la-la-la).
      Now keep in mind Joel can't control
      Where the web sites begin or end (la-la-la)
      Because he used those tablet parts
      To make his robot friends.

  7. 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 TopSpin · · Score: 1

      The comments look as though at some point Slashdot turned into a gathering of cantankerous change-haters.

      There are a lot of malcontents around here. Not all of us, however.

      There is plenty of room for a good systems programming language. No, we probably don't need another managed, exclusively garbage collected, JIT compiled, VM hosted, 'dynamic' application language. And we've certainly collected enough Javascript front-end languages recently. That's not the intent of Rust.

      --
      Lurking at the bottom of the gravity well, getting old
    2. Re:Rust is good for you by ArcadeMan · · Score: 1

      We're pissed because it's one more language-of-the-month the managers will hear about and want the next project coded with it.

    3. Re:Rust is good for you by 21mhz · · Score: 1

      I see. But why are you, a cubicle peon, slacking off on Slashdot when it's only 4.36 pm? Your manager wants those PHPs done yesterday!

      --
      My exception safety is -fno-exceptions.
    4. 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.

    5. Re:Rust is good for you by Thiez · · Score: 1

      > Then there's the asinine stuff like omitting a semicolon to return the value of an expression...

      I was a little sceptical at first as well, but it's actually surprisingly nice once you get used to it. You can still use 'return someValue;' if you like, but it will look a silly. I for one really miss this feature when I have to touch other languages again. Don't knock it till you try it.

  8. 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.

  9. 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
  10. Re:Come again? by 21mhz · · Score: 1

    Go, meh. It missed so many important things that the question "what does this new language give me to make it worth learning?" applies to it more acutely.

    --
    My exception safety is -fno-exceptions.
  11. Re:Get back to me... by Anonymous Coward · · Score: 1

    So Firefox doesn't work on Linux? I've been using it for years, and didn't realize that. Perhaps you'd like fullscreen IE10 from Windows 8 ported to KDE or whatever it is you're using.

  12. Re:Come again? by Carewolf · · Score: 1

    Go, meh. It missed so many important things that the question "what does this new language give me to make it worth learning?" applies to it more acutely.

    Considering that learning new programming languages is no effort at all, anything would make a new language worth learning.

    Still I have nothing it would help with either at the moment, so I am also skipping it.

  13. Re:Get back to me... by Dr.Dubious+DDQ · · Score: 1

    I've not had any real trouble with Firefox on my Linux systems since somewhere around FF5 or so.

  14. 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.

  15. Re:Buy the Mozilla bods a book on computer science by CockMonster · · Score: 1

    Posted from Firefox?