6 ms·
Layout 2013 and Layout 2020
- KingLancelot 3y agoI’m amazed that Servo is actually a thing. Firefox abandoned it years ago, and now Flow and Ladybird are from-scratch new, efficient browsers.
- nbittich 3y agoservo is in development for years and last time I checked it was an extremely buggy web view that couldn't do much. On the other hand lady bird is already useable.
- tech234a 3y agoUnfortunately Flow doesn’t have a public desktop release, I’d probably give it a try if it did.
- asddubs 3y agoladybird isn't really what I would call efficient, it's very slow compared to any other browser, because they're still focusing on correctness primarily as they mature their engine.
- jabedude 3y agoTIL servo was still actively developed. I thought it was dead after Mozilla stopped developing it.
- dralley 3y agoIt was, until a few months ago.
- jillesvangurp 3y agoWho is using it at this point; or planning to use it?
- kbrosnan 3y agoIgalia is working on it. It is unclear if they are doing it speculatively or on contract. https://www.igalia.com/technology/browsers https://www.igalia.com/technology/browsers
- zagrebian 3y agoIt’s not ready for use yet. I guess the idea is R&D. Come up with new approaches and solutions. Experiment with different things. The current major browser engines are probably quite constrained because it’s important that they remain stable, so they can’t just make drastic changes. Experimentation is good. I hope Servo comes up with innovative new solutions.
- Waterluvian 3y agoI’m not sure I understand the context. They began a replacement engine 7 years later to address shortcomings, and 3 years after that still aren’t sure if it’s actually better and worth switching over to? Now that I write this, I kind of get it. But I’ve only experienced this for weeks worth of work, not for years.
- fshbbdssbbgdd 3y agoI heard that Firefox incorporated some parts of Servo years ago as part of the Quantum project. However my knowledge is limited to those buzzwords and I don’t have any real sense of how big a portion of the work that went into Servo got used.
- dblohm7 3y agoThe major Servo components that made it into Gecko were the style subsystem (Stylo) and WebRender.
- linuxandrew 3y agoMozilla abandoned work on Servo in 2020 (source: https://tildes.net/~tech/ra8/i_am_a_mozilla_employee_amaa https://tildes.net/~tech/ra8/i_am_a_mozilla_employee_amaa) shortly after Layout 2020 came about. Servo was in limbo for some time before recently being handed over to the Linux Foundation, hence the time delay.
- mindwok 3y agoI feel like that would be helpful context at the top of this article, because before knowing this I was pretty confused why a project was publicly questioning a decision it made 3 years ago, whereas with that context it seems this was more a discovery exercise by the new maintainers.
- capableweb 3y agoThe article is published in a blog for people working with/on servo and for people who are interested in servo already. It is not a "This is what servo is", "Announcing servo" or anything like that, it's a niche article on a niche blog for a niche project. It's perfectly fine to not lead with context that is obvious from the rest of the website.
- andrewmcwatters 3y agoNone of this would be so difficult if the CSS specifications were well defined. But they’re not, so we all have to more or less guess what the intrinsic algorithms for drawing fundamental aspects of the web are supposed to be. Such a failure of the CSS specs.
- Centigonal 3y agoDumb question: if CSS is under-specified and everyone designs their sites for Chrome, could we analyze Chromium's CSS rendering code and use that to create a more well-defined CSS spec which other browsers can implement?
- ibash 3y agoThat’s basically what’s happening, chrome implements something, it gets put into the standard, some others choose to implement or not.
- sonofhans 3y agoPerl was in exactly that situation many years ago. The specification for Perl 5.x was `perl` itself; if `perl` was found to conflict with the spec, sometimes the spec would change. It was a nightmare, and part of the reason (I believe) that Perl 6 got so over-specified. It meant you couldn’t count on the spec, that you never knew if something was a bug or intended behavior. HTML4 was in a similar situation. Microsoft and Netscape developed competing variations of under-specified features, leading to a decade of the worst Dark Ages for web development. So if we use Chromium’s CSS engine, then either (a) Google now controls a fundamental part of the web (and there’s no evidence that they’ll behave in any sort of responsible manner), or (b) we now have the same specification problem. Getting complex code and specs to agree 100% is a Hard Problem, unsolved almost everywhere. Giving more power to Google won’t help.
- vlovich123 3y agoFor a while while Google had a minority and everyone was still targeting IE instead of the standard, they would detect that and take a different rendering path even if it meant preserving broken behavior. At the same time they tried to fix/improve the spec and wage a publicity campaign against Microsoft for not following standards. While that’s not necessarily a capability a smaller not well funded browser might have, certainly they have lots of forums to advertise “hey Google is doing this incorrect thing, this is how we detect existing sites relying on that buggy behavior, and this is how you fix it”. You could even show a banner while browsing “standard confirming vs not”. You leave that banner out for places the standard is underspecified to be fair and reinstitute it once you’ve got it clarified, assuming websites are still relying on those nonstandard paths / Chrome isn’t addressing the behavior. That being said, it’s no surprise this is the situation when all commercial investment into browser tech is by commercial companies giving it away for free. Think about the hundreds of millions of dollars being pored in. That’s not out of the goodness of their heart and it’s going to be difficult to impossible for anyone else to compete. For what it’s worth I think a huge regulatory improvement to monopoly laws would be an anti-dumping provisions for software. You’re not allowed to sell something below what it costs you to make (including accounting for R&D) and the only person’s effort your allowed to 0-rate is your own and any unpaid volunteers you convince to join you. It would mean that browsers would now cost actual money that could fund third party efforts (ie if my budget for browsers is X then maybe I want to invest in a browser that treats me better). Of course the challenge with this model is that it makes it hard to actually enforce. Are you giving a feature away for free or are you improving an existing product and it’s part of that overall cost? How do you budget recurring revenues for products that want to amortize the cost over periodic payments instead of upfront ones? Etc etc. I don’t necessarily know what the answers are. There may be none. But certainly Google’s control of the web comes from the fact that they’re poring in huge amounts of money to maintain a controlling interest over the thing that enables a good chunk of their revenue stream. It’s not as important to Apple and we see them not investing as heavily (it’s important for the product but it’s not intrinsically strategically as key hence the historic neglect). Same goes to Microsoft which ceded its spot in the internet ecosystem to Google back in the day. Anyway, what I’m trying to say is that Google’s control won’t weaken because you cede to duplicate their particular implementation. Their control weakens when you can take away their market share and for a smaller entrant you want to replicate as much behavior verbatim as possible to lower friction for users. It doesn’t matter what the spec says. Aggressively prioritize what is important to customers and serve the market where Google is incapable of doing it. For example, memory usage is a trivial one to get them on. They’ve lost control of that beast and can’t figure out how to get better. Clobber them in the head over that failure. They can’t handle many simultaneous tabs. Make your browser work smoothly and without crashing or using terabytes of memory even if it’s handling 100k tabs. If I were to take on that endeavor, that’s how I would take on Google (and no, I wouldn’t use Blink as a starting point because you’re just picking up all the tech debt and you’re not going to do a better job than Google at trying to shovel shit away - you need to start greenfield like Chrome did and firefox and opera did for a time when they showed what a performance hog IE was and how it didn’t even have valuable features that people cares about). Similarly, ship the browser with adblock and actively fight websites that waste resources. Prioritize aggressively the user’s health and digital well being (meaningful privacy improvements by closing as many side channel data gathering techniques as possible) and respect the well being of the machine you’re running on.
- linuxandrew 3y agoServo is now under the Linux Foundation umbrella. It's refreshing to finally see some more players in the browser engine space than the tri-opoly of Google (Blink), Apple (WebKit) and Gecko (Mozilla). LibWeb (Ladybird Browser) is another browser engine, but also in very early days of development. Gecko is depressingly tied to Firefox and not easily embedded. Blink has somehow become the de facto browser engine thanks to Electron. Even Qt (QtWebEngine) is now based on Blink instead of WebKit. A lot of web apps like Teams only support Blink/Chromium, just like the dark old days of Internet Explorer. Chrome and Edge are basically spyware which people are most drawn to because of being somewhat default and/or well known for their phone/PC.
- rektide 3y agoHonestly why would anyone do anything other than Blink at this point? For one, there's so many examples to crib from about how to do it. But more generally, I just feel like every other player in the space has adopted an adversarial stance. For sure, sometimes Safari or less typically Firefox do lead, but it's rarely by much & usually the set of capabilities overall is far far less. I don't want a monoculture either, but until we get a other pro-web player who can web-forward their shit, who is aggressive about making the web better, there's just zero hope for this conversation. Blink plus two boat anchors isn't good. The IE comparison is so woefully out of touch & distasteful. Hard pass. Chrome tries. There wasn't the ecosystem of standards bodies back when IE was inventing stuff whenever they felt like, but today there are tons of expectations & reviews happening at multiple levels to try to refine & figure out what makes sense. In some ways it works great & a lot of review happens, but Moz + Apple hate any real power for the web & kick & scream & don't actually review what should be done if we did want to do the capability & reject on principle making a bigger web platform. There's no real debate because 2/3 players actively believe & push for a small web. It's a miserable rock & hard place situation, trying to figure out what to do when there's only one ayer who believes in a web platform at all. I love the new entrants, but I really worry they'll also be into their own jam & not excited or interested in making a broader better web platform, and just turn the 2 Vs 1 anti/pro web into a 3 Vs 1 battle.
- jpk 3y ago
- RantyDave 3y agoServo nukem forever.
- AbuAssar 3y agoServo is an independent, modular, embeddable web rendering engine written in Rust
- 2b3a51 3y agoThanks for this. Is there a demonstration Web browser that can be built with the layout 2020 option enabled? I'm thinking of something like the very basic one that WebKit had when I used to try these things years ago.
- SCLeo 3y agoAlso, IIRC, in the early days, the purpose of rust was to create Servo.
- charcircuit 3y agoAnd how will this layout engine help the browser gain market share over Chrome? While you are busy improving the layout engine other browsers are working on features that bring value to users.
- rektide 3y agoI just wrote a long post about web platform & balance of power. And this is like 3000% more the real feels of the situation. I really really hope it pans out & delivers. But it properly & rightly should be an ever shrinking piece of the puzzle. It underpins it all & flexility here would be key, better tech (parallelizable!) very empowering, put to the sword many criticisms, but yeah: it's an ever shrinking factor versus what we can do with the web. And there are so so so few powers helping us make what we can do with the web better. Even the historic pro-web folk are trying to end the web as we know it. The "Towards a Modern Web Stack" Hixie mentality (Flutter CanvasKit) is to basically ignore destroy & end the contemporary web & html & make the browser a native app delivery platform with zero user-agency, to make it a giant moving picture show. The rest of the browsers have adopted a highly adversarial stance where every possible feature is portrayed as a threat to users, as ruin. There's just so few visionary hopeful excited people left building browsers that do stuff for people. You are so right on.
- Cyphase 3y agoTowards a Modern Web Stack https://docs.google.com/document/d/1peUSMsvFGvqD5yKh3GprskLC3KVdAlLGOsK6gFoEOD0/edit?resourcekey=0-bPajpoo9IBZpG__-uCBE6w https://docs.google.com/document/d/1peUSMsvFGvqD5yKh3GprskLC...
- rektide 3y agoAlso submitted & commented on a number of times, https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=Towards%20a%20modern%20web%20stack&sort=byPopularity&type=story https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que... Thanks for the helpful linking. Was getting a bit sloppy last night with the posting.
- 3y ago
- quantumwoke 3y agoLove that servo is still being worked on. Don’t love that the new layout engine doesn’t support floats or flexbox. We need to do more to stave off the homogenisation of the web into the chromium spyware machine. What a shame that Mozilla’s funding was so drastically cut.
- HeckFeck 3y agoHow far is Servo from being daily-driveable? What's stopping someone from slapping it together with SpiderMonkey or some other JS runtime and calling it a browser?