The former seems like it would be a huge amount of work, but if it's the latter I fear for the long term survival of the project because it's going to be hard to build a community around such a project IMO.
Or is there a possibility that Firefox will try to integrate Servo even if it's developed outside of Mozilla? Seems unlikely to me.
Rust will not bring that magic.
It’s not an automatic magic bullet, but in a world where humans are still writing the code, Rust’s feature set makes many performance optimizations much more practical.
(Provided that the C++ version is not strictly optimal WRT resource allocation; I think it's a rather safe bet.)
The memory usage part isn't really apart of rust or C, but rather that projects like chromium require significant hoops to jump through if you wanted to compile electron with only what you need.
I expect that servo will be tackling this issue, the browser works standalone and that's a hefty achievement in itself.
that said this makes it an excellent testbed but compilation time will keep getting slower every release until they start caring about it
[0]: https://nikic.github.io/2020/05/10/Make-LLVM-fast-again.html
(that said gcc -O0 is still absolutely nothing like what a human would write)
It's meant for embedded but that probably just means it's easy to build and uses low memory.
A high-performance, small-footprint platform that implements a subset of HTML5/CSS/JS to run applications, including the YouTube TV app.
To be clear I wasn't suggesting that Cobalt is a replacement for Electron. Electronic has a lot of its own APIs too.
Rather, I wonder if Cobalt could be better than Servo along some dimensions as an engine for something like Electron.
Previously it was doing research, with the possibility of landing in Firefox. Now that's highly unlikely.
This is exactly what I want their goals to be. Embedding Chromium in applications is cumbersome, bloat applications, etc...
In the long run, having more options of web renders to use will help with everything, including browsers. Maybe it won't all be pulled into Firefox, but (ignoring all the other problems with DRM/regulation/anticompetive behavior/etc) it'll at least make it a little easier for other people to build browsers, and it opens the door for us to have more lightweight alternatives to applications like Electron.
It's one thing for a mozilla team member to say "Hey, let's pull the servo css layout engine into firefox" It's a whole different thing for someone to say "Hey, let's pull the webkit css layout engine into firefox".
The servo stuff, while for experimentation, was ultimately geared towards the notion of landing parts of it into firefox. It was built for that. Under an opensource foundation maintainer model, there's a strong possibility that it moves from that as a goal.
It's more like Skia and can be used to develop GUI frameworks (which is exciting because Servo is Rust and Rust's GUI story is still in its early stages).
Chromium won because it introduced a sane API before Mozilla's Gecko. That's why you see so many Electron apps. Seriously, we don't need to wrap a whole browser. Just the engine and a debugger would've been fine.
The engine could be distributed as a lib and other frameworks could just bind it. Apps could be distributed without an 150MB behemoth just to have a chat client.
Making the engine also mobile compatible would mean Android and iOS could maybe have the same base. I also look forward to what this means for Linux phones. Custom browsers could be written for those that don't have to use WebKit or try to launch Chromium or Firefox on a mobile device.
Not only for mobile devices, but also displaying things in VR can be made significantly easier if you don't have to write all the UI yourself. Give it an opengl rectangular surface (or vulkan?) and you can then use web technologies to make UIs in VR.
All in all, I'm very for an engine. It would definitely allow a competitor with a good name to enter the market. Developer should be able to reach for something else than WebKit because nobody in their right mind is going to reach for Gecko.
Actually, Electron wraps an entire browser, except for its UI part.
Also, 150MB is not really that scary of a size in today's world. Also, a huge part of it is simply because of static linking - if they split it into dynamic libraries, the actual content of any individual Electron-based app would be reduced significantly. But people are mostly allergic to dynamic libraries, so we pay the cost in larger binaries. Also note that vim with all its dependencies is ~40 MB, without a GUI.
That's mostly just due to vim-runtime though, and the documentation in many different languages. The actual vim executable is around 3 MB.
That very much depends on where you live.
The bigger question is when will Mobile Safari retire its WebKit fork? What role will Servo play in that inevitable end point?
Are you asking for iOS and macOS Safari to converge, or for Apple to ship straight from the open-source HEAD?
WebKit was originally based on KHTML, but Apple still founded WebKit and controls its source code. Even if WebKit was just Apple's name for their internal fork of KHTML, I don't see any reason they'd retire it.
Blink was originally spun-out of WebKit too. Similarly, Google controls Blink, and the two have diverged significantly in the intervening years. I suspect patches for any of them won't apply cleanly to the other two.
Regardless of their origins; KHTML, WebKit, and Blink are now independent pieces of software.
It's still unclear to me why anyone should expect Apple to retire WebKit for iOS.
> Blink was originally spun-out of WebKit too
Founded, spun out of, forked... What's in the name?
I think one cannot "found" something that's largely based on a fork of something else.
Do 10 of those, and you'll probably have enough understanding to fix one off errors in the documentation.
Do 10 more of those, and you might start answering questions from other people re: how to help the servo project.
Answer 10 of those questions, and you might go, oh hell, I'm already answering questions, why don't I write a blog post introducing people to the servo project so you aren't repeating the same thing over and over again.
write 10 of those kinds of articles, and you'll be ready to be mentored by the great servo and rust community and start making larger code changes, algorithm changes, implementing a feature that you really wanted,
and so on.
You gotta start small!
Is any software embedding it now?
Does it not work for a useful subset of HTML/CSS?