• laxe@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    I want to follow updates from this project. They have a Twitter account but not Mastodon sigh

  • miridius@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    builds a new browser from scratch without borrowing existing code

    still chooses to do it in C++

    Epic fail

    • ticho@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      The language choice was because Ladybird started as a component of SerenityOS, which is also written in C++. With this separation, they are free to gradually introduce other language(s) into the codebase, and maybe eventually replace C++ entirely, piece by piece.

      In Hackernews thread about this, the head maintainer mentioned that they have been evaluating several languages already, so we’ll see what the future brings.

      In the meantime, let’s try to be mature about it, what do you say?

      • miridius@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        Sure :)

        There are a lot of downsides of C++ compared to more modern languages that make it not a great choice if you’re starting a web browser from scratch

        1. Complexity of the language leading to increased bugs and slower development
        2. Manual memory management is error-prone and leads to issues like memory leaks or segmentation faults. Modern browsers need to handle large amounts of dynamic content, making memory management complicated
        3. C++ lacks some of the built-in safety features of more modern languages, which has led to the majority of security vulnerabilities found in major browsers. It’s so bad that Mozilla invented an entirely new programming language just to deal with this
        4. Compared to higher-level languages, C++ can be slower to develop in, which may impact the ability to quickly implement new web standards or features unless you have a massive team
        5. While C++ is cross-platform, ensuring consistent behavior across different operating systems can be more challenging than with some other languages.
        6. Newer languages often provide built-in support for concurrent programming, garbage collection, and other features useful for browser development, which C++ lacks.

        So tl;dr: a browser but in C++ will take much longer to develop, have fewer features, more bugs, less concurrency and and more security vulnerabilities

        • raspberriesareyummy@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          3 months ago

          Thanks for laying out your concerns. As a C++ developer who does not know the other languages you speak of (I assume Rust, Go), I can agree to some of your points, but also some of them I see differently:

          1. C++ can be complex, because it has a lot of features and especially the newer standards have brought some syntax that is hard to understand or read at times. However, those elements are not frequently used, or if they are, the developer will get used to them quickly & they won’t make development slow. As a matter of fact, most development time should be spent on thinking about algorithms, and thinking very well before implementing them - and until implementation, the language does not matter. I do not think that language complexity leads to increased bugs per se. My biggest project is just short of 40k lines of code, and most of the bugs I produced were the classical “off by one” or missing range checks, bugs that you can just as well produce in other languages.

          2. C++ no longer requires you to do manual memory management - that is what smart pointers are for, and RAII-programming.

          3. I can’t make a qualified comment on that, due to lack of expertise - you might be right.

          4. You’re somewhat repeating point 1) here with slow development. But you raise a good point: web standards have become insane in terms of quantity and interface sizes. Everyone and their dog wants to reinvent the wheel. That in itself requires a very large team to support I would say. As stated for point 1), I do not agree development in C++ has to be slower

          5. True, as someone who just suffered from problems introduced on windows (cygwin POSIX message queues implementation got broken by Win10, and inotify does not work on Windows Subsystem for Linux) I can confirm that while the C++ standard library is not much of a problem, the moment you interface with the host OS, you leave the standard realm and it becomes “zombieland”. Also, for some reason, the realtime library implementation on MacOS is different, breaking some very simple time-based functions. So yeah, that’s annoying to circumvent, but can be done by creating platform specific wrapper libraries that create a uniform API. For other languages, it appears this is done by the compilers, which is probably better - meaning the I/O operations got taken into those language’s core features

          6. I am highly doubtful of people relying on garbage collection - a programmer that doesn’t know exactly when his objects come into existence, and when they cease to exist is likely to make much bigger mistakes and produce very inefficient code. The aforementioned smart pointers in C++ solve this issue: object lifetime is the scope of the smart pointer declaration, and for shared pointers, object lifetime expires when the last process using it leaves the scope in which it is declared. For concurrent programming, I do not know if you mean concurrency (threads) or multiple people working on the same project. While multi-threading can be a bit “weird” at first, you have a lot of control over shared variables and memory barriers in C++ that might enable a team to produce a browser that is much faster, which I believe is a core requirement towards modern browsers

          As for your tl;dr: definitely not “less concurrency”, that makes no sense. The other points may or may not be true, keeping in mind the answers I gave above.

      • SorteKanin@feddit.dk
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        C++ is a very old, extremely complex language. There are arguably objectively better modern alternatives, such as Rust.

        • phlegmy@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          0
          ·
          3 months ago

          Rust is great, but anybody developing something should have the ability to choose whatever programming language they prefer. If you want it made with rust, make it yourself.

          • SorteKanin@feddit.dk
            link
            fedilink
            English
            arrow-up
            0
            ·
            3 months ago

            Of course, but it still makes sense to think carefully about the advantages of disadvantages of the tools you use when starting any project.

        • hexabs@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          3 months ago

          I agree that Rust is the way to go, but calling something “arguably” & “objectively” in the same breath is a bit of a paradox innit?

    • witx@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      3 months ago

      I’m not sure 10 years old are allowed on the internet. Isn’t it time for Coco and bed?

      I agree that Rust would be an interesting choice for this project but there’s a reason why this particular project is done in C++

      • miridius@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        I wouldn’t go around accusing people of being 10 years old when your English skills are worse than a 10 year old’s. Glass houses and all that.

        • witx@lemmy.sdf.org
          link
          fedilink
          English
          arrow-up
          0
          ·
          edit-2
          3 months ago

          English is not my first language. I saw the mistake and left it here. You fixated on that simple mistake instead of answering the main point

          • miridius@lemmy.world
            link
            fedilink
            English
            arrow-up
            0
            ·
            edit-2
            3 months ago

            Your main (or at least first) point was to throw childish insults around, so you got the same in return

  • Avid Amoeba@lemmy.ca
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    I do not understand the urge to start from scratch instead of forking an existing, mature codebase. This is typically a rookie instinct, but they aren’t rookie so there’s perhaps an alternative motive of some sort.

    • rdri@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      I can’t understand how people can continue relying on chrome and derivatives like electron, CEF etc. and not see it as a problem.

    • schnurrito@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      There is currently no implementation of web standards that is under a more permissive license than LGPL or MPL. I think that is a gap worth filling and if I recall that is what Ladybird is doing.

      • Avid Amoeba@lemmy.ca
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        I guess Chromium isn’t fully BSD. This could be the reason. Although I’d think reimplementing the non-BSD bits in Chromium would be less work than reimplementing all the bits, including the BSD ones.

      • michaelmrose@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        Why is that a gap worth filling? There is no benefit to users as long as its free of a EULA they don’t have to care either way. For those wanting to produce open source software based on same they already have all the rights they could need. The only party clamoring for permissively licensed software are companies intending to close off the source and sell other people’s work.

        I understand why they would want to do that I don’t understand why anyone would feel the need to work for free for something someone else closes off.

        • phlegmy@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          0
          ·
          3 months ago

          There are some cases where it’s just not possible to release the source code, even if you wanted to.

          For example, if you’re developing a Nintendo switch game, you aren’t allowed to release any code that uses Nintendo’s sdk, so that means you also can’t use any copyleft libraries.

          Maybe MPL-licensed libraries would be ok though. Idk, I’m not a lawyer.

          • michaelmrose@lemmy.world
            link
            fedilink
            English
            arrow-up
            0
            ·
            2 months ago

            Why would open source code be released with the intention of helping people who wont or can’t give back?

            • phlegmy@sh.itjust.works
              link
              fedilink
              English
              arrow-up
              0
              ·
              2 months ago

              Why not?
              I’ve been in situations where I couldn’t release the code to a project, but I was able to use some decent libraries because they were MIT licensed.
              So I’m happy to do the same for libraries I write so that others in similar situations could also receive the same benefit I did.
              I see it as an act of public goodwill, like paying it forward for the times you can’t directly contribute to another project.

              Just my personal view on it, anyway.
              I’m not claiming it’s a bulletproof solution or that it isn’t open to being ‘abused’.

              • michaelmrose@lemmy.world
                link
                fedilink
                English
                arrow-up
                0
                ·
                2 months ago

                It’s an act of public goodwill to rich corporations who could get the same privilege by paying for a separate license.

      • glukoza@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        i’d argue its better for software to max foss license like AGPL, not bsd that can be taken out by companies

    • accideath@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      Because there are only like 3 browser engines: Chrome’s Blink, Firefox’s Gecko and Apple‘s WebKit. And while they are all open source, KHTML, the last independent browser engine got discontinued last year and hasn’t been actively developed since 2016.

      There’s need in the space for an unaffiliated engine. Google’s share is far too high for a healthy market (roughly 75%), WebKit never got big outside of Safari (although there are a few like Gnome Web, there’s no up to date WebKit based browser on Windows) and Gecko has its own problems (like lack of HEVC support).

      So, in my book, this is exciting news. Sure it‘ll take a while to mature and it is up against software giants but it‘s something because Mozilla doesn’t seem to have a working strategy to fight against Google‘s monopoly and Apple doesn’t have to.

      • rottingleaf@lemmy.zip
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        Also Gecko’s development is led by people thinking that it being usable outside of Firefox\Thunderbird is a bad thing. There was a time when Gnome’s browser was based on Gecko, not WebKit. And in general it’s influenced by bad practices.

        SerenityOS is an amazing project, of course. To do so much work for something completely disconnected from the wider FOSS ecosystem, and with such results.

        So it’s cool that they’ve decided to split off the browser as its own project.

      • el_abuelo@lemmy.ml
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        Could they not add HEVC support? Or is there some technical limitation that meant starting from zero was a good idea?

        • accideath@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          3 months ago

          They could, probably. My guess is, that it’s either a limitation of resources, the issue of licensing fees or Google‘s significant financial influence on Mozilla forcing them to make a worse browser than they potentially could. Similar to how Firefox does not support HDR (although, to my knowledge, there’s no licensing involved there).

          The biggest problem most people have with Mozilla is said influence by Google, making them not truly independent.

          • michaelmrose@lemmy.world
            link
            fedilink
            English
            arrow-up
            0
            ·
            3 months ago

            If 50% of firefox users donated 2 dollars per year mozilla could work for people instead of Google or at least people AND google

            • accideath@lemmy.world
              link
              fedilink
              English
              arrow-up
              0
              ·
              3 months ago

              The problem is, most user don’t want to pay. And every time mozilla tries to monetise differently they get community backlash…

        • GreatAlbatross@feddit.uk
          link
          fedilink
          English
          arrow-up
          0
          ·
          3 months ago

          HEVC is almost entirely down the the licensing. This section of the wikipedia page details it pretty well.

          The tl;dr is that the LA group wanted to hike the fees significantly, and that combined with a fear of locking in led to the mozilla group not to support HEVC.

          And it’s annoying at times. Some of my security cameras are HEVC only at full resolution, which means I cannot view them in Firefox.

    • vanderbilt@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      Because software monocultures are bad. The vast majority of browsers are Chromium based. Since Google de-facto decides what gets in Chromium, sooner or later the downstream forks are forced to adopt their changes. Manifest V3 is a great example of this. You can only backport for so long, especially when upstream is being adversarial to your changes. We need an unaffiliated engine that corrects the mistakes we made with KHTML/Webkit.

      • Avid Amoeba@lemmy.ca
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        3 months ago

        Why are open source software monocultures bad? The vast majority of non-Windows OSes are Linux based. Teams who don’t like certain decisions of the mainline Linux team maintain their forks with the needed changes.

        Manifest V3 is a great example of this. You can only backport for so long, especially when upstream is being adversarial to your changes. We need an unaffiliated engine that corrects the mistakes we made with KHTML/Webkit.

        And we could get a functional one today by forking Chromium and never accepting a single upstream patch thereafter. I find it really hard to believe that starting a browser engine from scratch would require less labor. This is why I’m looking for an alternative motive. Someone mentioned licensing.

        Perhaps some folks just want to do more work to write a new browser engine. After all Linus did just that, instead of forking the BSD kernel.

  • Logh@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    Love the idea! Shopify as the highest tier sponsor? Not so much.

  • ComplexLotus@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    3 months ago

    As Firefox will introduce Manifest V3 which will make ad-blockers unusable, I hope they will not implement that as well … But since this is so new, this will not have any add-ons at all for the foreseeable future

  • asdfasdfasdf@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    C++

    If they’re starting a browser from scratch, why would they not have chosen Rust? Seems very short sighted to not have learned from Firefox.

  • CALIGVLA@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    I hope this pans out, because I’ve long ago lost hope on Firefox being a worthy alternative to Chromium.

    • subversive_dev@lemmy.ml
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      Have you used Firefox recently? There are a few chrome only sites but I’ve been daily driving it for a few months and it’s mostly upside

      • PopOfAfrica@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        I can no longer play any podcast hosted on Apple podcasts, which is a distressing amount of them.

        They work just fine in Chromium.

    • Noxy@yiffit.net
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      Firefox has been perfectly capable for the entire time it has existed. What are you talking about?

  • katy ✨@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    “Ladybird uses a brand new engine based on web standards, without borrowing any code from other browsers.” has the same energy as

    • blind3rdeye@lemm.ee
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      Not really. They aren’t inventing new standards. They are implementing an engine that confirms to existing standards.

    • OsrsNeedsF2P@lemmy.ml
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      Why don’t ya’ll contribute some meaningful code instead of finding ways to deny those who do

      • wholookshere@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        Please describe to me how someone who offered up changes to change “he” to “they” for them, and then the contributor getting pissy about “politics” is denying work.

    • quissberry@lemmy.cafe
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      Yeah, I saw this, and all my excitement for the project died. If it becomes successful, I might use it anyway though.

    • blind3rdeye@lemm.ee
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      Hmm. I just read the github thread that this is about. The devs made a mistake on this; but it seems to me that there is a bit of an over-reaction here. The people in the thread seem to be discussing it calmly and politely; and the issue (i.e. use of pronouns in the build instructions) ends up being resolved. By contrast, the reaction outside of the actual thread… is extreme.

      Like I said, this seems like an overreaction to someone making a mistake of ignorance & indifference. It wasn’t an act of malice.

    • interdimensionalmeme@lemmy.ml
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      All this because they won’t change a “he” into “they” ? Who gives a fuck about such rampant whiteknightism ? Why does a browser even need to know your gender ? In what context even is there a pronoun in the user interface ?

      • Excrubulent@slrpnk.net
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        You could find out the context by reading the title of the thread, but then you’d have less to bitch about, so I can understand why you chose ignorance.

  • vsis@feddit.cl
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    3 months ago

    The project management may have some obvious problems (jOin dIsc0Rd sErVEr; w0rD “thEy” t0o p0liTicAl). But we really need an alternative to browsers funded by Google (Chrome and Firefox).

    So I’ll do my best to actually build from sources and see what can I help with. Attacking the author is helping nobody.

    And for the folks who are saying “wHy n0t rUst”, you can always show me the (rust) code.

    • barsoap@lemm.ee
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      And for the folks who are saying “wHy n0t rUst”, you can always show me the (rust) code.

      https://github.com/servo/servo

      I really wish they would publish flatpaks because I can’t be arsed to either build the thing or get a non-standard precompiled binary to run on nixos.

  • solrize@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    It’s hard to understand the purpose of this. The difficulty of the project (i.e. complexity of the web) is the real problem that needs solving. We don’t need another fork of the browser-verse. We need a fork of the web itself.

      • Diabolo96@lemmy.dbzer0.comOP
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        3 months ago

        We also have a fork of money, it’s called crypto and it’s used to sell and buy hookers and drugs. Every fork of something end up used to buy hookers and drugs. Truly marvelous!