this post was submitted on 01 Jul 2024
527 points (94.0% liked)

Technology

55698 readers
3358 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
top 50 comments
sorted by: hot top controversial new old
[–] nixcamic 16 points 1 day ago* (last edited 1 day ago)

Servo already exists and is independent and written in a modern language and way ahead of this.

I mean, competition is good but they aren't the only independent browser engine.

[–] Scotty_Trees 11 points 1 day ago

Remind me in 2 years when this project becomes discontinued...

[–] [email protected] 16 points 2 days ago (2 children)

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

[–] [email protected] 45 points 2 days ago

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

[–] [email protected] 16 points 2 days ago

In this case having more browser engines not under Google's control is probably a good thing. Although this effort might've been better spent working on Servo.

[–] [email protected] 36 points 2 days ago (10 children)

you shouldn't use this browser the devs are transphobic sexist chuds

https://cyberpunk.lol/@vantablack/112717420300967771

[–] [email protected] 15 points 2 days 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.

load more comments (8 replies)
[–] [email protected] 7 points 2 days ago* (last edited 2 days ago) (1 children)

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.

[–] [email protected] 9 points 2 days ago (1 children)

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.

[–] [email protected] 4 points 1 day ago

Well, thank you for pointing me to this project. Didn't know about it. I've just built it. So, the part of I'll do my best to see what can I help with applies here to.

[–] [email protected] 29 points 2 days ago (6 children)

Wasn't this the transphobic one?

load more comments (6 replies)
[–] miridius 9 points 2 days ago (9 children)

builds a new browser from scratch without borrowing existing code

still chooses to do it in C++

Epic fail

[–] ticho 11 points 1 day 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?

[–] [email protected] 9 points 1 day ago* (last edited 1 day ago) (7 children)

The dev has 30 years of experience with c++ and a lot of it was on browsers.

He tried to incorporate rust with the help of "JT", one of the original rust designers/devs and according to Andreas it didn't work that well due to the web being too objet oriented or something like that. They both worked together (well, mostly "JT") to create a new safe programming language called "yakt" that transpile to c++, but the project is currently pretty much dead because nobody is really working on it anymore.

load more comments (7 replies)
[–] raspberriesareyummy 14 points 2 days ago (20 children)

Not sure if you are trying to be funny, but if not: enlighten us?

[–] miridius 2 points 1 day ago (1 children)

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 2 points 1 day ago (1 children)

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.

[–] miridius 2 points 12 hours ago

Appreciate you taking the time to reply in such detail! Some good insights thank you

load more comments (19 replies)
[–] [email protected] 5 points 2 days ago* (last edited 2 days ago) (5 children)

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++

load more comments (5 replies)
load more comments (5 replies)
[–] laxe 174 points 3 days ago (1 children)

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

[–] [email protected] 255 points 3 days ago (4 children)

RSS is not even enabled on the Newz page on the website.

load more comments (4 replies)
[–] merthyr1831 19 points 2 days ago (1 children)

It would be nice if people read the post and the project before randomly making assumptions such as implying the project started from scratch yesterday or its run by some amateurs, this is a 4 year old project! It's founded by a former KHTML/Webkit developer for Apple!

load more comments (1 replies)
[–] [email protected] 104 points 3 days ago (19 children)

The website makes it sound like all of the code being bespoke and "based on standards" is some kind of huge advantage but all I see is a Herculean undertaking with too few engineers and too many standards.

W3C lists 1138 separate standards currently, so if each of their three engineers implements one discrete standard every day, with no breaks/weekends/holidays, then having an alpha available that adheres to all 2024 web standards should be possible by 2026?

This is obviously also without testing but these guys are serious, senior engineers, so their code will be perfect on the first try, right?

Love the passion though, can't wait to see how this project plays out.

load more comments (19 replies)
load more comments
view more: next ›