40 comments

[ 4.0 ms ] story [ 93.2 ms ] thread
is it correct to say, that rust was created to create servo
Afaik it existed on the prototype stage before Mozilla investigated using it because it fit their purpose. But I think it's fair to say we know about Rust today because of Servo.
I wouldn't say so.

It seems this was a personal itch that Mozilla's developer Graydon Hoare wanted to scratch and then Mozilla saw potentional and started sponsoring it for Servo.

https://www.technologyreview.com/2023/02/14/1067869/rust-wor...

So Graydon Hoare made the initial design and implementation, but it was significantly redesigned and reimplemented after it was picked up by the wider Mozilla organisation for use in browser development.

So Rust as we know it today was definitely made for browser development at Mozilla. But that means both Firefox and Servo, not just Servo.

Can someone elaborate the relationship between Servo and Firefox? When it firstly came I thought it's going to be the next engine used in Firefox (replacing Gecko), but it apparently was not the case.

I then heard that servo would be part of Firefox, replacing certain components (layout rendering?), but this repo seems to imply that Servo is a standalone engine.

Edit: found a reddit post [1], which cleared up what Firefox wanted/got from Servo project.

But it's now even more confusing that what the purpose of current Servo project has. If building a full browser engine from scratch is deemed to hard even with Mozilla's financial support (according to this post), now without, it's hard to imagine anything substantive would be done with this project in future.

[1] https://www.reddit.com/r/firefox/comments/yvd1f0/whats_the_s...

My understanding is that it was going to be the new core of Firefox, until the mass Mozilla layoff of 2020 where the Servo team was completely gutted.
This is incorrect. Servo was a test bed for new architectural changes within Firefox. Some of them made their way into Firefox, like Stylo and WebRender.
(comment deleted)
I don't think that was the plan from the start. There definitely was talk that it would eventually replace Gecko, not just be used for parts.
(comment deleted)
(comment deleted)
Other comments give more detail, but some of the good ideas made it into Firefox. A similar thing happened at Google when Omega seemed like it might replace Borg. Borg adopted the best ideas and Omega got cancelled.

Sometimes it's easier to retrofit the novel ideas from a research system into the production system than it is to make the research system into the production system, and that's OK.

Which is totally fine I think, but I guess there really isn't much future for the current Servo project, right?
Servo had a period where it had no active backing, but now it's part of the Linux Foundation and seems to have more buzz around it. I know Tauri (UI toolkit for Rust and other languages) are looking at ways to use Servo as the backend for developing UIs in Rust, kind of like a more lightweight electron.
> If building a full browser engine from scratch is deemed to hard even with Mozilla's financial support

Maybe that is long term goal, but it seems to me that they are currently working on embedding - so it can be used in applications, that do not need full-featured engine.

The purpose of servo (and therefore the purpose of Rust) is to drive the development of Rust's LSP, obviously
Interesting that the last git tag was pushed in 2019, and most of the Cargo.toml files show version "0.0.1."
[flagged]
imo should say "install rust" as a step and show the command. We probably shouldn't condition folks to blindly paste/execute, especially shell scripts from the web- but it sure is easy
You can examine the contents of the shell script yourself -- but how is this any different from running the rest of the application without examining the source?

Do you just draw some arbitrary line to say, "running easily readable shell scripts is bad, but compiling and running code I have never looked at or completely understand is okay."?

Really the only logical answer here is to adopt a zero trust security model and just assume every line of code is compromised. Run it in a VM, in a container, firewall it, jail it, sandbox it, etc.

Otherwise you're whispering sweet nothings to yourself if you believe piping unknown scripts to shell is the most vulnerable thing you can do here.

It's because I have an expectation that running the actual code won't change system-wide state and running the pipe-into-shell command will.
Always shade thrown at "in Rust" and I don't like how it's become buzz-wordy, but here it seems appropriate- not because "oh I might use this browser because it's written in rust" more like a great resource to understand how so many various features and functionality are implemented and fit together in a particular language that might be of interest.

If this were written in D or Zig or something other than C++, I think that's unique and worth mentioning.

What a cool project to be open source. Browsers do a lot of crazy stuff.

Fun fact: Rust's development saw significant traction and support by Mozilla in the first place to be used for the development of Servo. Or in other words, the eventual development of Servo was, what motivated the development of of Rust from pet project into what it is today.
It is a signal of quality. There are entire classes of bug which are much less likely to occur in apps written in rust.

As with all signals, it is neither a guarantee nor entirely meaningless.

Previously:

* Servo to Advance in 2023 (300 points), Jan 2023: https://news.ycombinator.com/item?id=34400214

* Servo, the parallel browser engine written in Rust (340 points), May 2023: https://news.ycombinator.com/item?id=36092852

* This year in Servo (265 points), Dec 2023: https://news.ycombinator.com/item?id=38681463

* What's the future of Servo? (578 points), Aug 2020: https://news.ycombinator.com/item?id=24156504

* Servo's new home (1025 points), Nov 2020: https://news.ycombinator.com/item?id=25125325

(comment deleted)
I take umbrage with the qualificative of "An"... the title should say "THE". :)