Mozilla and Samsung Collaborating to Bring New Browser Engine to Android 111
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.
Re: (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
Woohoo! yet another language (Score:3)
Re: (Score:2, Funny)
Can you have Rust on Chrome?
Fuck this is confusing.
Re: (Score:1)
I would have appreciated a move to Go more, but they probably wanted something without any influence from Google.
Re: (Score:2)
I like Go, but it wouldn't have worked for this purpose. They want to be able to do manual memory management, for example.
Re: (Score:2)
+1
Slashdot has a knack for expiring mod points right when they are most needed.
Re: (Score:2)
Re: (Score:2)
Rust. Why?
Because Rust Never Sleeps!
Re: Woohoo! yet another language (Score:2)
Re: (Score:2)
That doesn't sound so good, it will kill your battery life.
Re: (Score:2)
Re: (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 high
Re: (Score:2)
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 "."?
Re: (Score:2)
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.
Re: (Score:2)
"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.
Re: (Score:2)
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 [oopscenities.net])
object-oriented - obviously
functional styles - had this for years in the STL.
Re: (Score:2)
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, thirt
Re: (Score:2)
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?
Stop it, stop it, stop it! (Score:2)
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 [slashdot.org]
Re: (Score:3)
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?
Re: (Score:3, 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 whe
Re: (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 Sla
Re:Stop it, stop it, stop it! (Score:5, 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 [github.com] take this one...
Re: (Score:3)
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 b
Re: (Score:2)
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.
Re: (Score:2)
C++ was never designed so much as hacked together. It's the CVS of languages.
Re: (Score:2)
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 moder
Re: (Score:2)
Thank you for describing that mess. The only thing I don't understand is why you are calling it "well-designed".
Re: (Score:2)
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.
Re: (Score:2)
It has the one thing that matters: a real type system [wikipedia.org].
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
Re: (Score:2)
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.)
Time for Google to act.. (Score:2)
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.
Re: (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.
Re: (Score:2)
Why would Google do that, when Google themselves help fund Mozilla?
Re:Time for Google to act.. (Score:5, 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.
Rust Colored Glasses (Score:2, 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.
Servo Yes, Rust No. (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.
Re: (Score:2)
Some people believe Samsung may start pushing Tizen over Android.
Re: (Score:2)
Some people believe in fairies too.
Re: (Score:1)
Or you could buy an iPhone. I'm running iOS6 on a frickin' iPhone 3GS.
Let's see Samsung pull a stunt like that, then we'll talk about how great Android is.
I bet Samsung are looking into alternatives to Android as we speak.
Re: (Score:2)
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
Re: (Score:2)
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.
Re: (Score:2)
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.
Language matrix (Score:1)
I know so many languages now!
Rust is a generic language (like C), except:
1) If and while do not need parentheses
2) "let" for local variables (like "my" in perl)
3) Variable types follow the variable definition instead of preceed
4) if/else, instead of if/fi, if/elsif, or other options.
5) printf is io::println
6) ... and so on.
You could almost learn one generic base language and keep a matrix of "differences" which map the generic to the language of interest. How many different ways are there to write a for() l
Re: (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.
Re: (Score:3)
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 [rust-lang.org]
Rust is good for you (Score:5, 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).
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:3)
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 bette
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
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!
Re: (Score:2)
> 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.
Re: (Score:3)
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 d
Get back to me... (Score:1)
When they release a browser that is useable in Linux at all, even on a full sized system, again.
Re: (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.
Re: (Score:2)
Re: (Score:2)