I was at this presentation.
Before the recording started, he said that the volatility of the Rust standard and its library really inhibited productivity.
He said something along the lines of: "By the time we update the codebase for a syntax update, there would be a library API change and vice versa."
I recommend checking out the rest of the LCA2015 talks; very informative if they apply to your area, IMHO.
Dave Chinner's talk about how important "knowledge transfer between humans" was to kernel development and software engineering in general resonated strongly with me.
Well, Rust is now at 1.0.0 alpha, which means that the language has almost all of the planned breaking changes implemented (there are still a few corners where there are a few breaking changes planned, but in things that are minor enough to be unlikely to break much code).
The standard library is still in rapid iteration mode in the preparation for 1.0.0 beta, and thus large portions of it are marked unstable and so only available if you opt-in via a feature gate, but the plan is to stabilize that through the alpha and beta period and have a usable, stable standard library at 1.0.0, which is planned to come out within a few 6-week release cycles from now. And things which are not ready, or not really appropriate for a core standard library, are being moved out into separate Cargo crates that can iterate independently from the core language.
So yes, Rust has been iterating rapidly on the road to 1.0, which makes keeping up with the treadmill painful, but it's finally settling down; very soon you should be able to use it without constant breaking changes.
Sorry, tried to make that distinction by saying that the language has very few breaking changes left, and those that are left are expected to be minor, but the standard library is still in rapid iteration mode and is expected to break a lot.
I keep hearing about Servo (and compiling it every now and again), but I really don't know - is Servo meant to eventually, maybe replace Gecko? Or is it/will it always be just a Rust playground?
It seems like it could seal Rust as a player if Servo became "A Thing" for real. What's the plan?
It's too early, really. You don't take an experiment, and say "This will replace our main, stable product." You keep investing in it on the side until either, it's mature enough to make that decision, or it fails for some reason.
At the moment there is plenty of steam behind Servo, and it's growing all the time. So an optimistic outlook is that it will mature, and have a chance of becoming a full-fledged product. However problems might prick up, maybe Rust isn't quite as good for this as they think, maybe the experimental parallel architecture doesn't fully pan out. You can only make these kinds of observations when you've implemented most, if not all of the features required for the final product.
In the video (at 35:39), they show the future plans and the plan is to start using bits of Servo code in Gecko. So, they will replace small parts of C++ code with Rust. http://youtu.be/7q9vIMXSTzc?t=35m39s
I believe they've already said that it will replace Gecko on Android and in Firefox OS (this year). It's 2x faster than Gecko on a single core and 3x faster on four cores.
If it's really that good (and so much safer, as Firefox tends to be the browser with the most vulnerabilities) then it would be crazy for them not to build it into a full browser eventually. Microsoft is doing it, so they should do it as well.
Maybe with a new browser they can make Electrolysis be much more optimized as well. I think the main reason it takes them so long to get multi-process to work is because they have to optimize around Firefox's quirks, and I'm worried it still won't end up as safe or as quick as Chrome's multi-process system, which was built for Chrome from day one. In a new browser it might work much better.
Not quite, and certainly not this year. We've said that we want to release an alpha version of something powered by Servo on Android this year; the Firefox OS work is just another good way to show viability of our ideas - it would be a huge feat of engineering to get it ready to ship on devices under the Firefox OS banner.
I'm sure they want to replace Gecko with Servo but they can't because it doesn't have xul/xpcom and it never will. There was a post a while back about a side project called Firefox.html which is to rewrite the interface in html5 instead of xul.
Anyways they shouldn't replace gecko but instead make a new browser with it's own branding like the Internet Explorer team is doing with Spartan. Because no matter what Mozilla does with Firefox it will never gain market share because they've lost momentum and don't have resources it takes to brute force users to their product like the big guys have.
"never" and "lost" aren't words I would use with Mozilla. Their vision is solid with lots of innovation going on. They have major market share. They are light years ahead in terms of privacy and repeatedly beat all the other browsers in performance benchmarks.
Afaik, XUL is already replaced on the mobile Firefox version. Would not expect it in Rust at all.
Why, because of all of those buzz words? Name any company that doesn't have vision and innovation going on. Also, name any browser that doesn't repeatedly beat the others in benchmarks.
The facts are Firefox has not only lost momentum (as in stopped gaining market share) it's been losing market share.
It doesn't make sense to me that Mozilla would spend this much effort on a playground. I suspect they're managing expectations when they say it's not intended to replace Gecko.
He says in the video that since the bar to entry into the browser space means feature/speed parity (because if it isn't faster than what we're already doing what's the point) that it will eventually be a complete browser. What isn't covered is whether it will replace the gecko engine or if it will become a new browser entirely.
As far as I know, there are no plans to replace Gecko, though they may pull in parts or ideas from Servo. Servo is still primarily a research project into parallelizing a web browser.
>
out-of-bound errors happen in other languages as well.
In sane languages an out-of-bounds error causes program termination, unless it was disabled on purpose (assuming it can be disabled). In C anything goes.
An out of bounds can cause the program to be injured, but not die, and eventually have some kind of inconsistent state.
> use-after-free happens in almost every language that is not gc'ed.
Yes, true if we are speaking about Modula-2 or Extended Pascal dialects. The most notable alternatives to C with manual memory management.
Everything else has at very least reference counting support.
I was looking at Servo some time ago for more general Rust GUI framework but then the event-system was still incomplete, iirc you couldn't use Rust code directly as handler for DOM events. What is the situation today?
He said something along the lines of: "By the time we update the codebase for a syntax update, there would be a library API change and vice versa."
I recommend checking out the rest of the LCA2015 talks; very informative if they apply to your area, IMHO. Dave Chinner's talk about how important "knowledge transfer between humans" was to kernel development and software engineering in general resonated strongly with me.