[HN Gopher] Chat with Andreas Kling about Ladybird and developin...
       ___________________________________________________________________
        
       Chat with Andreas Kling about Ladybird and developing a browser
       engine
        
       Author : samwillis
       Score  : 139 points
       Date   : 2023-07-06 18:18 UTC (4 hours ago)
        
 (HTM) web link (www.igalia.com)
 (TXT) w3m dump (www.igalia.com)
        
       | MatthiasPortzel wrote:
       | Just yesterday I was thinking about Ladybird, and I claimed that
       | it was a fool's errand, for reasons I'll explain in a bit. What I
       | didn't know is if Kling recognized what he was doing, and was
       | just not taking it very seriously, or if he was way over his head
       | and was kind of oblivious.
       | 
       | I enjoyed reading this interview because it makes it very clear
       | that Kling has a lot of experience doing this, and understands
       | that's it's difficult, and is doing it because he enjoys it.
       | 
       | The reason I don't think Ladybird will ever really get to the
       | point where it can render an arbitrary site perfectly, is based
       | on my experience as a web developer. I haven't been doing web
       | development for very long, but there have been a couple times in
       | the last couple of years where I've stumbled upon browser layout
       | bugs where Chrome/Firefox/Safari render something different.
       | These are normally not issues where a browser completely misses
       | something (ie, every browser supports flexbox these days).
       | Rather, there are edge-case bugs that appear just by combining
       | simple web components in simple ways. Chrome and Firefox handle a
       | table with percentage height differently. Or a margin on a child
       | which is larger than the parent's width. And these are bugs that
       | have existed for years. And for every edge-case like that where
       | Chrome and Firefox differ, there are 10 more where the behavior
       | is unintuitive or not defined by the spec but Firefox and Chrome
       | have standardized.
       | 
       | But maybe, since Ladybird doesn't have an existing buggy
       | implementation, they'll be able to implement the spec properly
       | quickly the first time. I think that's an interesting perspective
       | that Kling brings up in this interview.
       | 
       | The other thing I want to comment on is that it's really hard to
       | tell how much progress they're making.
       | 
       | > We've taken a very vertical slice approach to adding
       | functionality to the browser... We tend to find a webpage that we
       | want to improve for whatever reason. Maybe it's cool to get the
       | New York Times to render, and then we just spend a bunch of time
       | fixing as many issues as we can for that site... And that might
       | not be the most structured approach to it, but it has been very,
       | very good at keeping people motivated and excited and engaged in
       | the work
       | 
       | This means that Ladybird "supports" a ton of features. They
       | support flexbox! They support grid! But pretty much all of these
       | features are only partial implementations. Kling says in the
       | interview they support svg, and then later explains that they're
       | going to have to re-write the text-rendering system to get text-
       | on-curves working. Well, to me, "supports svg" means "we have
       | implemented the entire svg specification." When Kling is using it
       | to mean "we have some portion of svg's work. We don't crash when
       | we see an svg element." I'm not saying Kling's definition is
       | wrong, but it's another factor that makes it difficult to judge
       | where the project is.
       | 
       | To start to wrap up this (long) comment, let me restate the four
       | claims I'm making. (This is not the conclusion, this is the
       | summary before the conclusion, hang on.)
       | 
       | * Ladybird is developed differently in two ways: vertical slices,
       | and being implemented from scratch in modern times.
       | 
       | * there are people who are misled by the vertical-slices and
       | Kling's use of "support" to believe that Ladybird development is
       | a lot farther along than it is.
       | 
       | * There are people like me who think that Ladybird will never
       | complete with existing browser engines (we also have a hard time
       | judging Ladybird's progress for the reasons stated above).
       | 
       | * These same reasons may allow Ladybird to reach compatibility
       | with other browsers.
       | 
       | I have a lot of respect for Kling, and I think it's cool that
       | they've been able to accomplish so much "for the fun of it". As
       | mentioned in the interview, this will have short-term positive
       | impact even if it never matches Chrome. If it wasn't clear from
       | how long this was, I'm actually really enthusiastic about the
       | project, and I'll be looking at ways to contribute in the future.
        
         | seti0Cha wrote:
         | You should check out his browser hacking videos. It's pretty
         | shocking how much they have already and how fast it's
         | improving. I have no doubt they will eventually be able render
         | the vast majority of websites correctly. The real question is
         | whether they will ever be able to make it performant enough
         | that people who don't care about browser hacking will choose to
         | use it. That's where a lot of the engineering hours in browsers
         | goes.
        
         | _gabe_ wrote:
         | > The reason I don't think Ladybird will ever really get to the
         | point where it can render an arbitrary site perfectly, is based
         | on my experience as a web developer. I haven't been doing web
         | development for very long, but there have been a couple times
         | in the last couple of years where I've stumbled upon browser
         | layout bugs where Chrome/Firefox/Safari render something
         | different.
         | 
         | So what does perfect even mean in this context? Who's right,
         | Chrome, Firefox, or Safari?
         | 
         | I 100% believe Ladybird will eventually be able to render
         | arbitrary sites in an acceptable format at some point
         | (potentially within the next year or two). It's pretty
         | remarkable how many sites look very close to acceptable
         | already. Any weird edge cases where Ladybird renders stuff
         | differently from a big browser won't mean it's rendering the
         | site "imperfectly"; just like how when Firefox and Chrome do
         | different things, it doesn't mean either one is "correct".
        
       | samwillis wrote:
       | This is a really insightful conversation, it's so interesting how
       | much success they have had by "just"* translating the html/css
       | specification directly to code. The "debugging" of the docs that
       | this is achieving is so valuable. Other larger browsers are going
       | to also gain so much from all this insight.
       | 
       | Well worth a listen!
       | 
       | Slight aside, Andreas has had a bunch of donations and sponsors
       | in the last month (over 300k), and just today announced he has
       | hired a full time dev to help on the browser engin:
       | 
       | https://twitter.com/awesomekling/status/1676896595936198657
       | 
       | > _Thrilled to announce that I 've hired @KalenikW to work full
       | time on @ladybirdbrowser_
       | 
       | > _Alex has been with the project since last year, and already
       | done great work on CSS layout, testing infra, and more. Lately he
       | 's digging into JS performance and making great progress!_
       | 
       | * massive understatement
        
         | olliej wrote:
         | It's really important - and people seem to be unwilling to
         | recognize - the huge amount of work done by browser vendors
         | 10-15 years ago to actually make the specs usable for the
         | purpose of implementing a browser (the whatwg work and es3.1
         | were all about actually building out correct and complete.
         | 
         | The w3c specs, and similar era es specs could not be used to
         | implement a browser, and a lot of the browser engineering work
         | of the time was basically trying to find site breakage and then
         | reverse engineering whatever gecko and/or trident did. It meant
         | things that today might take just a few hours to implement by
         | following the spec could take weeks. At one point I spent a
         | month working out what the correct behaviour and sequence of
         | events should be fired when pressing keys on a keyboard because
         | what the specs said both under specified what should happen,
         | and also was just wrong in some edge cases. It was a truly
         | miserable era, and the people who seem hellbent on bashing
         | whatwg and what not for some perceived slight remain absurd to
         | me.
        
           | ahartmetz wrote:
           | That's interesting. The people working on these specs seem to
           | be doing an idealistic work even though their employers'
           | interests are more to keep their moats from having the, more
           | or less, two only "HTML engines" viable on the modern web. Is
           | it really idealism or are there interests at play that I
           | don't know about? Is that stuff too low level to be used as a
           | competitive advantage?
        
             | zgluck wrote:
             | Around 2004-2007 most of the key web specification writers
             | (From WHATWG; Hixie, etc, etc)
             | 
             | a) were employed by Opera Software
             | 
             | b) were surprisingly young (often around or even below the
             | age of 18)
             | 
             | Then Google poached most of these people (from their
             | partner; Opera had by then invented the placed browser
             | search engine business model for them; allegedly Google is
             | paying Apple $15B/yr these days.)
             | 
             | A few years later the scope of the web started growing in
             | an insane manner, spearheaded by Google.
             | 
             | This later period was also the same time that the web got
             | deeply javascriptified and largely turned from documents
             | into apps that you download and execute. Before that it had
             | been documents with sprinkles of javascript.
        
         | placesalt wrote:
         | Wasn't one of the lessons of The Mythical Man Month that
         | building from a spec produced good software? That was talking
         | about System/360, my recollection is that most of the effort
         | went into creating a very detailed and internally consistent
         | specification/manual for the system. Implementation followed
         | the spec, and the results were long-lasting and solid.
        
           | bch wrote:
           | It's also "conventional wisdom" that (especially?) with the
           | web, there's The Way It Should Work, and then there's The Way
           | It Actually Works, which is all the quirks, etc.
           | 
           | I've not completed an entire server or browser, so not
           | speaking from implementation experience, just the word on the
           | street.
           | 
           | Is that stale information now?
        
         | favorited wrote:
         | > Andreas has had a bunch of donations and sponsors in the last
         | month
         | 
         | I believe that Igalia was the source of $100k of that! Awesome
         | that they, as an open source browser consultancy, can give back
         | to projects like Ladybird.
        
           | ushakov wrote:
           | What would be their incentive to shell out 100k like this?
           | Appreciation?
        
           | rstat1 wrote:
           | Of the 3 announced, 2 of them were anonymous and the 3rd was
           | Shopify.
        
             | favorited wrote:
             | Oops, that's embarrassing. I must have been thinking of
             | sponsorship for Web Engine Hackfest...
        
         | DylanSp wrote:
         | There's an Eric Lippert post from a few years back about
         | working on the C# compiler, where he followed a similar spec-
         | guided approach, with simpler benefits for both making the code
         | clear and making sure the spec was reasonable:
         | 
         | > [...] I wrote all the conversion logic in Roslyn, and I did
         | so for the most part by carefully following the specification.
         | This had two purposes; first, to be sure that I was
         | implementing the actual specification, and second, as yet
         | another chance to ensure that the specification made sense. For
         | much of the conversion code I have methods where each method
         | implements one line of the specification, for this reason.
         | 
         | https://ericlippert.com/2015/05/26/a-different-copy-paste-er...
        
       | placesalt wrote:
       | (Irrelevant post, but this was a missed opportunity for an
       | article with the title "Kling on Ladybird")
        
       | [deleted]
        
       | zgluck wrote:
       | > Google throws hundreds of engineers at this [building Chrome]
       | and they have full-time people working on it around the clock.
       | 
       | It was many hundreds already about a decade ago. I haven't done
       | any recent research (the Chromium Git repo is where you'd get the
       | source data to analyze), but I assume it's in the (several?)
       | thousands now.
       | 
       | Edit (ran into some problem replying to the comment below):
       | 
       | An in-depth analysis performed today would need to consider that
       | some of the active chromium.org committers are working on non-
       | browser-related things like Chrome OS.
       | 
       | That said, I'm assuming 75+% of active chromium.org committers
       | don't work on those non-browser parts. I also consider the Chrome
       | Web Store a part of the browser - but I can't imagine that
       | needing lots of _developers_ in comparison to these large
       | numbers, even when you start thinking about the abuse aspects.
       | 
       | Having said that, it should be easy to filter out those by just
       | discarding certain directories.
        
         | mike_hearn wrote:
         | Last time I looked the 7 day active committers was about 750.
         | So with holidays, people who don't commit for a week, PMs and
         | other management etc, my guess is around ~1000 people, maybe a
         | bit more. I doubt it's several thousand. Maybe if you include
         | ChromeOS?
        
           | zgluck wrote:
           | Thanks! That is still a lot to compete with, but it's not
           | that much larger than what they had a decade ago.
           | 
           | And loads of them were certainly working on mostly homegrown
           | web standards that went nowhere.
           | 
           | I think Kling and his growing crew has a shot here.
        
         | kevingadd wrote:
         | The way lots of things are integrated into "Chrome" as an
         | organization and a product definitely means a lot more people
         | touch something you can call "Chrome" now. Chrome OS, Chrome
         | Web Store, etc.
        
       | andrewstuart wrote:
       | Chrome and Firefox are absolutely gargantuan in terms of their
       | functionality and also the decades of fine tuning.
       | 
       | Building a new browser seems akin to building a Saturn V rocket.
       | 
       | To be practical at all you'd have to lop gigantic trunks of
       | functionality off it.
        
         | samwillis wrote:
         | I'm not sure I agree with this metaphor but it's too tempting
         | not to propose:
         | 
         | Labybird/LibWeb is to Chrome/Blink as Saturn V is to SpaceX
         | Starship...
         | 
         | Not sure where that puts Andreas, hence my hesitation.
        
         | jklinger410 wrote:
         | An observation shared by many.
        
       | amadeuspagel wrote:
       | [flagged]
        
         | pipeline_peak wrote:
         | [flagged]
        
           | SalmoShalazar wrote:
           | Are you saying this with conviction? There are 2 full time
           | people working on this and hundreds of volunteers. I think
           | it's going to become a "functional" web browser within the
           | next year or two.
        
           | dizhn wrote:
           | What happened here? I don't get either of these two comments.
        
             | pipeline_peak wrote:
             | OP pointed out the irony in saying there's no better time
             | to build a browser when the spec documentation is more
             | advanced.
             | 
             | I took that as it's more difficult because the specs are
             | more advanced. Andreas might've meant there's more
             | information provided by browser documentation.
             | 
             | If that's the case, I disagree because Google practically
             | leads by their own standard through usershare. so they're
             | free to move the goal post.
        
               | seti0Cha wrote:
               | I think Andreas' point is that although there are more
               | specs and they contain more details, they are far less
               | ambiguous so that a careful reading allows one to achieve
               | correct functionality without guesswork. Since he's
               | worked on browsers for many years, I'm inclined to
               | believe him.
               | 
               | Also, if you watch his browser hacking videos, you can
               | actually see this play out live. He finds a layout
               | problem, searches for the relevant spec, and reads
               | through until he finds which detail was missed. He then
               | literally copies that spec chunk into the code, then
               | conforms the code to it. I find it fascinating to watch
               | and I think justifies his claim.
               | 
               | As for Google moving the goal posts, if you read through
               | the interview, you can see he's not interested in
               | following bleeding edge, he's interested in the
               | solidified parts of the spec that people actually use
               | today.
        
           | foobarbaz123456 wrote:
           | [dead]
        
       | Vinnl wrote:
       | I'm looking forward to the Servo-Ladybird browser wars.
        
       ___________________________________________________________________
       (page generated 2023-07-06 23:00 UTC)