Live data from Hacker News

I tried Servo

spacebar.news

151–160 of 256 posts

Re: I tried Servo

#151
post #74

Earlier quoted context omitted.

You should look into why they chose it and what their implementation plan is. They evaluated multiple languages, including rust. There were some specific issues with rust that made it unsuitable for them. Swift was a bit of a dark horse candidate that the developers ended liking. There is no immediate plan to switch to anything so it’s still C++. They may not ever switch. Swift’s cross platform support isn’t there ye…

I couldn't find any information beyond that Tweet I linked.

Andreas has said that in some video I watched at some point, can't pinpoint it, but I can confirm jm4 didn't make it up

Re: I tried Servo

#152

Earlier quoted context omitted.

I've heard the same thing about monetising search engines. Kagi didn't get the memo, and last I've heard they're turning a profit. Sure, only nerds would pay for it, but not all products have to capture 100% market share.

But independent browsers need this metric. Good luck convincing website owners to test against your non-chromium browser with 0.3% market share.

Okay but if everyone building the websites are using the browser with 0.3% market share it won't matter.

Re: I tried Servo

#153

Earlier quoted context omitted.

Strange. I remember reading nothing but complaints about Pocket when they bought and integrated it. I guess it grew on people.

> Strange. I remember reading nothing but complaints about Pocket when they bought and integrated it. I guess it grew on people. They bought Pocket to assuage complaints from people that they were "selling out" by including an optional button in Firefox (which never even loaded any code until it was clicked) that allowed you to set up an integration with your Pocket account and send articles there. They were clear th…

> Despite that, purists were unhappy that Firefox was doing literally anything at all with a third party

That's a horribly dishonest explanation. The way that Pocket was integrated into the browser was obviously shady. Most clearly, there was no reason for it to be anything other than an extension. Mozilla earned most of the complaints that they were shoving Pocket down user's throats. The complaints weren't even primarily about "OSS purism"; Mozilla was simply being disrespectful to their users.

Re: I tried Servo

#154

Earlier quoted context omitted.

I have to be honest that I don't really understand the appeal of Ladybird from a purely technical perspective. It is written in C++, just like all the existing engines (yes there is some Swift, but it is negligible), so what benefit does it provide over Gecko or Blink? With Servo, I can see there is a distinct technical design around security and parallelism.

Rust does not produce magic in the assembly code. It does not even produce faster assembly code. Rust toolchain on it's own does not even produce assembly code. It just passes that to LLVM that does THE ENTIRE optimization. Without LLVM (written in C++) doing the heavy lifting, Rust is probably slower than V8 (written in C++) running JavaScript. There's no technical marver in Servo compared to Ladybird. I don't under…

The express purpose of building Servo in the first place was to experiment with ways to parallelize the layout algorithm. The advantage of Rust is that it is a language which enables the compiler to better enforce some of the rules that need to be followed to write correct thread-safe code. Note that Mozilla had previously tried--more than once--to do the same thing in C++ for Gecko, and both attempts had failed.

As for the rest of your comment... I believe Rust now has MIR-based optimizations, so it's no longer the case that "THE ENTIRE optimization" is due to LLVM. But it's a non-sequitur to say that Rust would be slower without LLVM. Rust doesn't do many optimizations on its own, because it's quite frankly a lot of boring tedium to implement an entire optimizing compiler stack, and if you've got a library you can use to do that, why not? If no such library were available, Rust would merely be implementing all of those optimizations itself, much as V8 implements those optimizations itself.

Re: I tried Servo

#155
post #120
post #70

Earlier quoted context omitted.

Questions for the Rust UX experts: Is Dioxus (or Leptos) much more performant than Tauri/Electron? I want to (1) build blindingly fast, low-latency, super performant UX for users, which precludes Tauri/Electron (something I'm currently using and unhappy about), but I also want to (2) maintain developer velocity, (3) have access to nice UX primitives and widgets, and (4) have it look nice and modern. Javascript/browse…

Slint recently added Bevy support. I’ve been keeping an eye on it since I’ve used Qt and love working in Qml.

Slint cites Javascript. Is it another Electron/Tauri-like?

Re: I tried Servo

#156
post #152

Earlier quoted context omitted.

But independent browsers need this metric. Good luck convincing website owners to test against your non-chromium browser with 0.3% market share.

Okay but if everyone building the websites are using the browser with 0.3% market share it won't matter.

They don’t. Most of the common web developers do what the managers and users require. Otherwise you are not providing value and using your time efficiently.

Re: I tried Servo

#157

[flagged]

Things get Rust advertised in the title because the Rust community is somewhat on a quest to assert itself. There are certain things that the language will only be allowed to do if it becomes seen as one of the "big" languages, and advertising the language in a million small projects is a collective shove toward that aim.

Re: I tried Servo

#158
post #69

I feel like Mozilla is going to join the annals of history with the likes of Xerox in the category of "Companies that created the technology of the future and casually tossed it to the wayside for competitors to scoop up" with Rust and Servo. It's mind-boggling that for a company so often seemingly playing catch-up with Google, Mozilla actually leapfrogged Google in the browser development space for a time, and then.…

It is difficult to get people to pay for it. People happily pay for 10€ beer but asked ”friends” about how to bypass WhatsApp’s 0,99 lifetime licenses.

> People happily pay for 10€ beer

I would not be happy to pay that much for a beer

Re: I tried Servo

#159

Earlier quoted context omitted.

No, you can't. You can donate to the Mozilla Foundation, but you cannot donate to the Mozilla Corporation to actually fund Firefox development.

Exactly. You can donate to a bunch of management people with multiple million dollars compensation that are running the company into the ground.

[deleted]

Re: I tried Servo

#160
post #145

Earlier quoted context omitted.

> [Rust] was basically the one to beat until they figured out it wasn't going to work. I'd love to know more about this.

Found it! It was on a podcast: https://changelog.com/podcast/604 Here are some key quotes: "something that matters to us a lot is OO. Web specs & browser internals tend to be highly object-oriented, and life is easier when you can model specs closely in your code." "So what I’ve done is I’ve asked a bunch of people to “Please implement these things in a couple of different languages. And then we can talk about how th…

> This ‘90s API, and it set the core of the web stack. And it’s super object-oriented, and it’s just hard to express all that stuff in Rust, because Rust doesn’t lend itself to object-oriented programming. It doesn’t have inheritance, for example, which is a very fundamental building block.

That's a rather strange criticism, seeing as the only thing about objects that's slightly involved to express in Rust is implementation inheritance; and even then, it can be phrased in a very reasonable way by using the generic typestate pattern. I.e. expressing a class that can be inherited from as a generic object MyBaseClass, where T holds the "derived" object state (and can itself be generic in turn, thereby extending the type hierarchy) and methods can either be implemented for any MyBaseClass or for some specific MyBaseClass.

(This aims to do the right thing whenever a method on the base class relies on some method implementation that's defined deeper in the hierarchy, i.e. there is an indirection step, aka open recursion. That's the part that is missing when using simple composition.)

Post reply on HN