• @[email protected]
    link
    fedilink
    482 months ago

    Not only C++ but also Swift, which just feels strange

    Why build a new browser in C++ when safer and more modern languages are available?

    Ladybird started as a component of the SerenityOS hobby project, which only allows C++. The choice of language was not so much a technical decision, but more one of personal convenience. Andreas was most comfortable with C++ when creating SerenityOS, and now we have almost half a million lines of modern C++ to maintain.

    However, now that Ladybird has forked and become its own independent project, all constraints previously imposed by SerenityOS are no longer in effect.

    We have evaluated a number of alternatives, and will begin incremental adoption of Swift as a successor language, once Swift version 6 is released.

  • mesa
    link
    fedilink
    English
    332 months ago

    Everyone knows links2 is the best browser.

    #links2gang

  • vaguerant
    link
    fedilink
    1432 months 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.

    • @[email protected]
      link
      fedilink
      382 months ago

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

    • @[email protected]
      link
      fedilink
      11
      edit-2
      2 months 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…)

      • @[email protected]
        link
        fedilink
        33
        edit-2
        2 months 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.

        • @[email protected]
          link
          fedilink
          32 months 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

          • @[email protected]
            link
            fedilink
            52 months 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.

            • @[email protected]
              link
              fedilink
              2
              edit-2
              2 months ago

              Yeah I realize that. My go-to comparison would be PDF. Where Firefox has PDF.js (I think?), Chromium just… implements basically seemingly the entire (exhaustive!) standard.

        • vaguerant
          link
          fedilink
          162 months 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.

      • @[email protected]
        link
        fedilink
        5
        edit-2
        2 months ago

        What makes implementation so difficult is that browsers cannot just “work”, they need to be correct in what they do. And support all websites.

        The standards of HTML, CSS and JS have developed over a long time, not only is the amount of stuff massive, over time sometimes strange features where implemented, that were then used by website developers, and now these all need to be handled correctly by all new browsers.

        Emulating and reimplementing existing stuff is often more difficult, especially if you cannot leave out any feature, no matter how obscure, because that might break someone’s website.

      • @[email protected]
        link
        fedilink
        English
        382 months 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

        • @[email protected]
          link
          fedilink
          482 months 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.

          • @[email protected]
            link
            fedilink
            10
            edit-2
            2 months ago

            Because if a website doesn’t work in your browser, but it works in everyone else’s, no one will say “oh that website’s badly written”, instead they say “what a shitty browser”.

            So you have a huge web standard you have to respect, and then all the websites with non standard code you have to make work anyway.

          • @[email protected]
            link
            fedilink
            English
            2
            edit-2
            2 months ago

            The W3C (The body that dictates web standards) specification, that describes what browser engines should handle, like CSS features, HTML5 etc and how is equivalent to thousands of pages long and there are huge standards to implement.

            HTML5 is a big thing to implement, so is CSS and the JavaScript engine and probably even more technologies I’m forgetting

            And that’s just implementation, it takes even more work to get them running well enough for the average end-user

            Ladybird has been working on their from scratch engine for ~5 years iirc and they’re not planning to even have the first alpha out until next year lol

        • @[email protected]
          link
          fedilink
          17
          edit-2
          2 months ago

          Even Microshit tried and gave up because it was so hard

          Not exactly. Yes a browser engine is one of the most, if not the most, complex pieces of software.

          But if it was almost impossible to create a web engine then this, or KDE’s KHTML, or Servo, or NetSurf, or Kraken, or you-name-it wouldn’t exist.

          Then how come (one of) the most powerful tech company in the world couldn’t make it, you ask? They already had a “functional” web engine. But what they had from the beginning was absolute shit that did not respect any web standard. And oh boy we people who fought against that shit trying to support it do know. Its baggage was immensely huge and shitty that after a while and the speed Chrome was taking over they found it was easier to yeet it altogether, and I do hope that piece of shit is burning in hell because it made our lifes so miserable.

          Note that Opera did the same thing with their web engine - they gave up with it mostly because they found easier to jump in the Blink bandwagon, without realizing they were making Opera just another Chromium skin without much value, contrary to what Presto was.

          Kinda what could happen if one day Microsoft decided to try make Windows to be as functional, fast and permissive as Linux.

      • @[email protected]
        link
        fedilink
        English
        42 months ago

        What happened to the logo. I swear like 2 years ago it was a picture of an actual ladybird

        • @[email protected]
          link
          fedilink
          10
          edit-2
          2 months ago

          Accelerated Firefox timeline.

          That used to have a picture of an actual Phoenix and then a red panda before it got streamlined.

          If ladybird keep going at this rate, everyone will be trying to cancel them by the middle of next week

          • @[email protected]
            link
            fedilink
            English
            12 months ago

            The Firefox browser logo still has the red panda, you’re thinking of the Firefox family logo, for stuff like Firefox send and their VPN. The browser never got rid of the red panda since it was added.

          • TXL
            link
            fedilink
            22 months ago

            How hard is it to do some web searches first before you announce a new name for your project?

  • @[email protected]
    link
    fedilink
    192 months ago

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

    • @[email protected]
      link
      fedilink
      542 months ago

      Basically, it allows you to steal all the code and use it in your closed-source programs, giving a green light for corporations to use open-source code without giving anything back.

      GPL doesn’t allow that, forcing you to open-source anything that was produced using other GPL-licensed code. That’s, for example, why so much of Linux software is open-source - it commonly relies on various dependencies that are GPL-licensed, so there is no other legal option other than sharing the code as well.

      • @[email protected]
        link
        fedilink
        14
        edit-2
        2 months ago

        It’s not “stealing”. It’s explicitly allowed. Using IP according to its licence is the opposite of stealing.

        • @[email protected]
          link
          fedilink
          English
          11 month ago

          Unrelated to this exact discussion, but like, the law does not dictate morality nor the other way around. If I believe that using someone’s hard work to make a profit without paying them or contributing some work of your own is morally wrong, I can reasonably say it’s ‘stealing’. Even if the person who did the work fully understands that the license under which the work was released makes it not actually stealing.

          I am judging someone as a thief, not legally but morally.

          • @[email protected]
            link
            fedilink
            11 month ago

            I never stated what was or wasn’t moral; I stated what was legal, and stealing is a legalistic term. How can you enforce property ownership, intellectual or material, without law, and legal rights to property?

            For the record, I want the abolition of property and of law. I do not believe stealing to be wrong. “Stealing” can only be a legal category if you believe it to be morally neutral.

            That definition also makes no sense. If I gift you a laptop I worked hard to afford and you use it, no sane person would call that stealing, even to those to whom stealing is a moral category. That is the same thing as someone using MIT code according to the licence. The original coder gifted the code to the public and said “I explicitly want you to use this however you like, under the sole condition that you credit me.” Just like if I gifted you a laptop I’d be saying “I want you to use this laptop however you like.”

          • @[email protected]
            link
            fedilink
            32 months ago

            That is definitionally not plagiarising. It follows IP law, which is the opposite of plagiarism.

            • @[email protected]
              link
              fedilink
              72 months ago

              There’s more than a legal definition of plagiarism.

              Plagiarism is when you sell the work of others as your own without attribution. There are bucketloads of examples of legal plagiarism.

              I’m pretty sure that everything H. Bomberguy discussed in his plagiarism video was legal, for example.

              • @[email protected]
                link
                fedilink
                32 months ago

                No, actually, plagiarism is a legalistic term. If IP law did not exist, neither would plagiarism.

                And if you give someone permission to use your IP, and they go ahead and use that permission, it is not plagiarism neither legally nor by any colloquial understanding of the term. That is what happens when someone uses BSD or MIT code in their proprietary software. It is explicitly allowed, by design, by intention.

                without attribution

                BSD/MIT also don’t allow you to not attribute the author of the BSD/MIT code, so that doesn’t even make sense. You are perhaps thinking of code released public domain, in which case, again, the author specifically chose that over BSD/MIT, and the main practical difference is not needing to give attribution, so that must be what the original author wanted.

                • @[email protected]
                  link
                  fedilink
                  2
                  edit-2
                  2 months ago

                  I think your legalistic view of the world is quite limiting.

                  It’s not illegal to rephrase what someone wrote in a book and pass it off as your own work. You can’t “own” a cultural analysis. It’s still plagiarism.

    • @[email protected]
      link
      fedilink
      English
      122 months 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.

    • @[email protected]
      link
      fedilink
      162 months 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.

      • @[email protected]
        link
        fedilink
        112 months ago

        MIT/BSD also makes the most sense for small/minimal projects where GPL is likely overkill. A 100 line script does not need to be GPL’ed. A small static website does not need to be GPL’ed.

    • @[email protected]
      link
      fedilink
      292 months ago

      Apple, Sony, N*****do, Netflix all use BSD but they don’t contribute any code to the BSD project itself, because of the BSD allow other people/company to close source their code when using with BSD

    • ZeroOne
      link
      fedilink
      62 months ago

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

  • @[email protected]
    link
    fedilink
    212 months ago

    I’m downloading this and contributing to prove the haters wrong. Y’all are gonna regret not being able to say “I toad a so” like me.

  • @[email protected]
    link
    fedilink
    582 months ago

    Let’s see how ladybird writes docs in the future. Will they assume the user is a man and shut down any corrections for being political?

      • @[email protected]
        link
        fedilink
        27
        edit-2
        2 months ago

        I’ve only tangentially picked up things about this but this is an example for it

        (For some context, if you didn’t already know this, Ladybird originated from a SerenityOS component and the first reply is from the lead dev)

          • @[email protected]
            link
            fedilink
            English
            62 months ago

            was that nukeop? that Guy is a known asshole. He was also quoted Saying licenses don’t matter and threw a huge fucking hissy fit when someone forked his project and gave it a copyleft license because of making such a stupid statement. Unfortunately the website archiving the drama is down, and I could only find an archive if the first iteration of it (it had at least 2 more paragraphs after this) https://archive.is/UT9Xe

        • @[email protected]
          link
          fedilink
          10
          edit-2
          2 months ago

          Oh… That’s… Disappointing. Firefox it is, then, for now.

          It’s weird… It makes “business” sense, too. If you want people to use your stuff and you can choose to appeal to more people, why wouldn’t you? I think we’ve reached the stage of normalcy now where using “they” and “them” are not in itself something that would necessarily scare away right-wing users (given you want to keep appealing to that attractive market, too.)

    • @[email protected]
      link
      fedilink
      212 months ago

      Is he the one constantly spewing hateful shit in the Issues on GitHub whenever people ask him to not use only “he” and “him” in the docs?

      • @[email protected]
        link
        fedilink
        8
        edit-2
        2 months ago

        That dev definitely doesn’t seem like the best human around, but this is all around terrible to me. Calling the project “dehumanizing” and “vile” because of this is ridiculous. Are people really willing to have their browsing tracked and sold rather than using a browser that has an assumed gender in the documentation? Not saying that they shouldn’t use gender neutral language, but as the original issue said, it’s a minor nitpick, let’s be honest. It’s also something that’s representative of one dev as a person, not of the project as a browser. Additionally, it could be something as simple as the dev coming from a gendered language, where the word “user” itself is masculine, and doesn’t see it the same way as English speakers asking for neutral language.

    • @[email protected]
      link
      fedilink
      1
      edit-2
      2 months ago

      The only difference is that BSD defends a bit more the owner rights. Either of them defends the software or its users.

  • ZeroOne
    link
    fedilink
    72 months ago

    Is it that difficult to implement a CopyLeft licence ? Well we do have Servo (A modular browser engine) in development & SeaMonkey is a thing too (Which is an entire internet-application suite)

  • Arthur Besse
    link
    fedilink
    English
    53
    edit-2
    2 months 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:

    • @[email protected]
      link
      fedilink
      132 months ago

      This whole situation was a concern for me too, but with Ladybird being spun off into its own not for profit, these kind of things are much less likely to occur again going forward. The project is a lot more focused now.

    • @[email protected]
      link
      fedilink
      English
      192 months ago

      can I get some context for this, what is the reference to? I stopped caring about new browsers and now just use Firefox 🤷‍♀️