• vaguerant@fedia.io
    link
    fedilink
    arrow-up
    2
    ·
    17 days ago

    As long as we’re filling out our fantasy browser brackets, I’m hoping that the Servo engine and browser/s can become viable. Servo was started at Mozilla as a web rendering engine only, before they laid off the whole team and the Linux Foundation took over the project. Basically revived from the dead in 2023, the current project is working on an engine and a demonstration browser that uses it. It’s years away from being a usable replacement for current browsers and the engine is certainly the main project. A separate browser which employs Servo as its engine is a more likely future than an actual Servo browser.

    Still, you can download a demo build of the official browser from the web site. Currently, it’s only usable for very simple web sites. Even Lemmy/Mbin display is a little broken, and I think of those as fairly basic. YouTube is out of the question. One of the sites that’s been used to demonstrate its capability to render web pages is the web site for Space Jam (1996) if that gives you any idea of its current state.

    The original 1996 Space Jam web site, running in the Servo demo browser.

    • stetech@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      17 days ago

      Honest question, since I have no clue about web/browser engines other than being able to maybe name 4-5 of them (Ladybird, Servo, Webkit, Gecko, … shit, what was Chromium’s called again?):

      What makes browsers/browser engines so difficult that they need millions upon millions of LOC?

      Naively thinking, it’s “just” XML + CSS + JS, right? (Edit: and then the networking stack/hyperlinks)

      So what am I missing? (Since I’m obviously either forgetting something and/or underestimating how difficult engines for the aforementioned three are to build…)

      • qqq@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        17 days ago

        JavaScript alone is not a simple beast. It needs to be optimized to deal with modern JavaScript web apps so it needs JIT, it also needs sandboxing, and all of the standard web APIs it has to implement. All of this also needs to be robust. Browsers ingest the majority of what people see on the Internet and they have to handle every single edge case gracefully. Robust software is actually incredibly difficult and good error handling often adds a lot more code complexity. Security in a browser is also not easy, you’re parsing a bunch of different untrusted HTML, CSS, and JavaScript. You’re also executing untrusted code.

        Then there is the monster that is CSS and layout. I can’t imagine being the people that have to write code dealing with that it’d drive me crazy.

        Then there are all of the image formats, HTML5 canvases, videos, PDFs, etc. These all have to be parsed safely and displayed correctly as well.

        There is also the entire HTTP spec that I didn’t even think to bring up. Yikes is that a monster too, you have to support all versions. Then there is all of that networking state and TLS + PKI.

        There is likely so much that I’m still leaving out, like how all of this will also be cross platform and sometimes even cross architecture.

        • vaguerant@fedia.io
          link
          fedilink
          arrow-up
          1
          ·
          17 days ago

          Adding on to this, while this article is fast approaching 20 years old, it gets into the quagmire that is web standards and how ~10 (now ~30) years of untrained amateurs (and/or professionals) doing their own interpretations of what the web standards mean–plus another decade or so before that in which there were no standards–has led to a situation of browsers needing to gracefully handle millions of contradictory instructions coming from different authors’ web sites.

          Here’s a bonus: the W3C standards page. Try scrolling down it.

        • stetech@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          16 days ago

          Thanks for these explanations, that makes a lot more sense now. I didn’t even think to consider browsers might be using something else than an off-the-shelf implementation for image/other file formats…, lol

          • qqq@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            16 days ago

            Sorry I didn’t mean to imply they don’t use shared libs, they definitely do, but they have to integrate them into the larger system still and put consistent interfaces over them.

    • Kidplayer_666@lemm.ee
      link
      fedilink
      arrow-up
      1
      ·
      17 days ago

      Well… according to ladybird, at this point they are more conformant than servo in web standards…

  • NateNate60@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    17 days ago

    I’m never going to be one to dog on something before I try it. If it’s good and can offer the same or better experience as Firefox then sign me up. The biggest sticking point for me, though, is potentially losing Firefox’s massive add-in library. I really like my uBlock Origin and Restore YouTube Dislike and my VPN extension and Metamask and all the other crap I’ve got there.

    • Abnorc@lemm.ee
      link
      fedilink
      arrow-up
      1
      ·
      2 days ago

      I think I could get by with Bitwarden/uBlock as a minimum. Addons like enhancer for youtube are super nice though.

  • mlg@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    16 days ago

    Hey it could be worse. It could be the completely and utterly worthless MIT license.

  • stochastictrebuchet@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    17 days ago

    I’m OOTL. Are these actual issues people have with the project?

    C++ might not be as memory-safe as Rust, but let’s not pretend a Rust code base wouldn’t be riddled with raw pointers.

    BSD tells me the team probably wants Ladybird to become not just a standalone browser but also a new competing base for others to build a browser on top of – a Chromium competitor. Even though BSD wouldn’t force downstream projects to contribute back upstream, they probably would, since that’s far less resource-intensive than maintaining a fork. (Source: me, who works on proprietary software, can’t use GPL stuff, but contributes back to my open-source dependencies.)

    • Arthur Besse@lemmy.ml
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      17 days ago

      BSD tells me the team probably wants Ladybird to become not just a standalone browser but also a new competing base for others to build a browser on top of

      skeletor facts until-we-meet-again meme format, saying that every major web browser uses a rendering engine with a copyleft license

      • stochastictrebuchet@sh.itjust.works
        link
        fedilink
        arrow-up
        0
        ·
        17 days ago

        Don’t have time to factcheck so going to take your word for it. Interesting bit of knowledge! Honestly wouldn’t have thought that. How else are Chrome, Edge, Brave, Arc, Vivaldi and co getting away with building proprietary layers on top of a copyleft dependency?

        I’m no legal expert. All I know is that when I’m picking dependencies at work, if it’s copyleft, I leave it on the table. I love the spirit of GPL, but I don’t love the idea of failing an audit by potential investors because of avoidable liabilities.

        • Arthur Besse@lemmy.ml
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          17 days ago

          The three currently-maintained engines which (at their feature intersection) effectively define what “the web” is today are Mozilla’s Gecko, Apple’s WebKit, and Google’s Blink.

          The latter two are both descended from KHTML, which came from the Konquerer browser which was first released as part of KDE 2.0 in 2000, and thus both are LGPL licensed.

          After having their own proprietary engine for over two decades, Microsoft stopped developing it and switched to Google’s fork of Apple’s fork of KDE’s free software web engine.

          Probably Windows will replace its kernel with Linux eventually too, for better or worse :)

          How else are Chrome, Edge, Brave, Arc, Vivaldi and co getting away with building proprietary layers on top of a copyleft dependency?

          They’re allowed to because the LGPL (unlike the normal GPL) is a weak copyleft license.

  • exocortex@discuss.tchncs.de
    link
    fedilink
    arrow-up
    0
    ·
    17 days ago

    What is the problem with a BSD-license? I’m not familiar with the different open source licensing models and their problems.

    • HouseWolf@lemm.ee
      link
      fedilink
      English
      arrow-up
      1
      ·
      17 days ago

      It’s not really an issue for the end user. But it’s basically made for companies to take advantage of free hobbyist developers without needing to give anything back in return.

      So if you’re the kind of person who runs to foss software to get away from corporate tech bull, having a license that benefits companies more than users just kinda feels scummy.

    • ZeroOne@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      17 days ago

      Remember the Minix operating system that runs on your processors ? It’s a proprietary spyware now because of BSD licencing

    • phlegmy@sh.itjust.works
      link
      fedilink
      arrow-up
      0
      arrow-down
      1
      ·
      17 days ago

      It’s not a viral copyleft license, so you’re free to use the source code without giving anything back.

      This has pros and cons over something like GPL, but people like to circlejerk GPL and pretend it’s always the best option 100% of the time.
      For situations where you have to sign an NDA and are unable to release source code (eg; console game dev), MIT and BSD licensed projects are a godsend.

      • cm0002@lemmy.cafe
        link
        fedilink
        English
        arrow-up
        0
        ·
        17 days ago

        It’s a monumental effort really, building a browser engine from scratch and taking it to daily driver usable is probably among the most difficult programming challenges. It’s way easier to build a new Linux kernel from scratch than a browser engine lmao

        Even Microshit tried and gave up because it was so hard

        • Railcar8095@lemm.ee
          link
          fedilink
          arrow-up
          1
          ·
          17 days ago

          Even Microshit tried and gave up because it was so hard

          They also failed at building operative systems, so not sure they are the best example.

  • Arthur Besse@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    arrow-down
    1
    ·
    edit-2
    17 days ago

    with mandatory male pronouns for users in the documentation.

    (and no politics allowed!)

    note

    this issue was resolved eventually by another dev; afaik the lead dev stopped commenting on it after he closed a PR and said people who wanted to remove the docs’ implied assumption of users’ maleness were “advertising personal politics”.

    edit: ok, i went and checked, here are the details:

      • Steve Dice@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        0
        arrow-down
        1
        ·
        edit-2
        17 days ago

        That’s false. Derivative software that doesn’t use the BSD licence has no bearing on the BSD-licenced software itself. For example, Sony using FreeBSD for the PS3 operating system has zero impact on the freedom of a FreeBSD user. The GPL, on the other hand, directly infringes on the user’s freedom to fork and redistribute the software.

        • WhyJiffie@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          1
          ·
          16 days ago

          The GPL, on the other hand, directly infringes on the user’s freedom to fork and redistribute the software.

          that’s plain bullshit. under GPL, you are free to fork it and redistribute it

            • WhyJiffie@sh.itjust.works
              link
              fedilink
              English
              arrow-up
              0
              ·
              edit-2
              16 days ago

              well of course. you can’t betray the will of upstream: to not feed the rich. not a big ask.

              but the user, as you said, has no reason to object to that, because it protects them from parasites

        • Adanisi@lemmy.zip
          link
          fedilink
          English
          arrow-up
          0
          ·
          17 days ago

          The only “freedom” the GPL infringes on is the ability to take the freedom the code originally had away from an end-user.

          • Steve Dice@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            0
            arrow-down
            1
            ·
            16 days ago

            That’s also false. The GPL doesn’t only restrict non-free licences, it restricts any licence change on the derivative work. If I fork a GPL project and want to redistribute my changes with a free licence such as MIT, the GPL will prevent it to protect itself. It’s an authoritarian licence that doesn’t respect your freedom.

            • Adanisi@lemmy.zip
              link
              fedilink
              English
              arrow-up
              0
              ·
              edit-2
              16 days ago

              I fail to see how the share-alike nature of the GPL is “authoritarian” and “doesn’t respect your freedom”.

              It is built to guarantee the freedom of the user. It’s imperfect, as it has to work within the constraints of the copyright system, but it’s a hell of a lot better than licenses like MIT for propagating freedom to end users.

              Here’s a real world example:

              If I want to root my android device with KernelSU or build a custom ROM, I need to recompile the heavily customised kernel built by the vendor for my specific device. Because Linux (the kernel of android) is under the GPL, the manufacturer is compelled to give the user the same freedoms that were given to them, which means I can download the source code and do this.

              If Android were based on, say, the FreeBSD kernel instead, this would be impossible. There would be very few, if any, android custom ROMs, because the vendor could, and would, withhold the modifications they made to the kernel.

              • Steve Dice@sh.itjust.works
                link
                fedilink
                English
                arrow-up
                0
                arrow-down
                1
                ·
                16 days ago

                You’re again assuming that the GPL only restricts non-free licences. This is not the case. If I add a feature to a piece of GPL software, I can’t use BSD on my new code even though the new code isn’t derivative work. Hell, if I write a completely independent piece of software that links to GPL software, my new software has to be GPL even though not a single line of GPL code was used. All of this also applies to free licences like BSD. The GPL doesn’t protect freedom, it protects itself.

                • Adanisi@lemmy.zip
                  link
                  fedilink
                  English
                  arrow-up
                  0
                  ·
                  edit-2
                  16 days ago

                  You’re assuming that the GPL protecting freedom and protecting itself are mutually exclusive. They aren’t. Again, the GPL is written to ensure the code remains free forever.

                  Also, I’ve already pointed out the flawed nature of licenses like MIT and BSD, and if the GPL could be relicensed to them, it would provide a very easy way for proprietary developers to strip the freedom from the GPLed code when passing a derivative on to their users.

                  It is unfortunate that it cannot be relicensed to other copyleft licenses, as that would not pose such a problem, but without an explicit list of licenses it can be relicensed to I’m not sure that’s even legally possible under copyright.

    • boonhet@lemm.ee
      link
      fedilink
      arrow-up
      0
      arrow-down
      1
      ·
      17 days ago

      I won’t fight you because I agree. But a lot of people think it’s more free to have freedoms end when it comes to proprietary forks and such.

      To me, that’s just one less freedom.

      • QuazarOmega@lemy.lol
        link
        fedilink
        arrow-up
        1
        ·
        17 days ago

        Copyleft protects the freedom of the user, regardless of who is the developer, I think that is way more important if what we want is to make software for humanity rather than pragmatic business choices.
        It is a point of what you regard as real freedom, do you wish to eventually lock in your users or let who might fork/take over your project do that?