I know he doesn't make live coding videos anymore, but it'd be cool if Andreas showed off how this worked a little more. I'm curious how much he had to fix by hand (vs reprompting or spinning a different model or whatever).
What happened? It’s been awhile since I checked in but it seems he doesn’t work on serenity and doesn’t live stream anymore (and is now into lifting weights)
Ladybird adopts Rust, with help from AI
531–540 of 731 posts
Re: Ladybird adopts Rust, with help from AI
#532I don't get it, and I don't have a dog in the C/C++ vs. Rust race. Ladybird has ~1200 contributors with a predominance of C++ contributions, followed by HTML, and with "other" lying at 0.5%. That's a lot of people contributing. How many of them will be less willing to contribute in the future, and less productive when they do if a sizable portion is in Rust? Maybe there'll be more contributions and maybe there'll be…
Re: Ladybird adopts Rust, with help from AI
#533Were there any immediate benefits of this conversion, e.g. reduced memory use or lower CPU utilization?
Re: Ladybird adopts Rust, with help from AI
#534Any word on how much more memory safe the implementation is? If passing a previous test suite is the criteria for success, what has changed, really? Are there previous memory safety tests that went from failing to passing? I am very interested to know if this time and energy spent actually improved memory safety. Other engineers facing the same challenges want to know!
Re: Ladybird adopts Rust, with help from AI
#535Earlier quoted context omitted.
They’re not equal. Humans are capable of actually understanding and looking ahead at consequences of decisions made, whereas an LLM can’t. One is a review, one is mimicking the result of a hypothetical review without any of the actual reasoning. (And prompting itself in a loop is not real reasoning)
I keep hearing people say "but as humans we actually understand". What evidence do you have of the material differences in what understanding an LLM has, and what version a human has? What processes do we fundamentally do, that an LLM does not or cannot do? What here is the definition of "understanding", that, presumably an LLM does not currently do, that humans do?
Re: Ladybird adopts Rust, with help from AI
#536Earlier quoted context omitted.
It's how most of us are actually going to end up using AI agents for the foreseeable future, perhaps with increasing degrees of abstraction as we move to a teams-of-agents model. The industry hasn't come up with a simple meme-format term to explain this workflow pattern yet, so people aren't excited about it. But don't worry, we'll surely have a bullshit term for it soon, and managers everywhere will be excited. In t…
https://youtu.be/JV-wY5pxXLo?si=ga-9Gg8IZfU6g8Tg It's vibe engineering
Re: Ladybird adopts Rust, with help from AI
#537If this means we will get an independent state-of-the-art browser engine, I'm all for it.
IMV Servo is going to be the independent state of the art browser
Re: Ladybird adopts Rust, with help from AI
#538Earlier quoted context omitted.
Only by abusing interface {}. The result is horrible. Go doesn’t have sum types as a first class primitive.
Using interface as it was designed to be used offers first-class sum types. Although not all interface use equates to sum types. But they're not tagged unions. I expect that is still where your confusion lies. Tagged unions and sum types are not equivalent. Tagged unions are a subset of sum types.
Sum types are a type definition defining something as A or B. Not “anything that quacks like a duck”. But concretely “one of this or one of that”. This enables different syntax, like the match expression to be used, in which you exhaustively list all the variants. The compiler doesn’t need to heap allocate enums because it knows the maximum size of a single value. The compiler and programmer can take advantage of the knowledge that there’s a closed set of values the type can hold. It’s not an open type class.
Result and Option are quite beautiful as sum types. But they’re horrible as type classes. Try implementing them using interface{} in Go. It’s not the same.
Re: Ladybird adopts Rust, with help from AI
#539Earlier quoted context omitted.
Its possible to dislike Rust but pragmatically use it. Personally, I do not like Rust, but it is the best available choice for some work and personal stuff.
I think this is a good, realistic point of view. Personally I think most programming languages have really ... huge problems. And the languages that are more fun to use, ruby or python, are slow. I wonder if we could have a great, effective, elegant language that is also slow. All that try end up with e. g. with a C++ like language.
Rust, although annoying at a micro scale, does at least enforce some structure on your code, although like Kling I miss OO.
AI has made Rust approachable to a new audience of programmers who didn't want to dedicate their life to learning the ins and outs of the language. Especially for C++ developers who already learned the ins and outs of a hyper complex programming language and don't want to go through that a second time.
Before AI, writing Rust was frustrating experience that involved spending 90% of your time reading documentation and grumbling that "I could do this in 5 minutes in C++"
Now I can write Rust in a way that makes sense to my C++ addled brain and let the AI do the important job of turning it into an idiomatic Rust program that compiles.
Re: Ladybird adopts Rust, with help from AI
#540> We’ve been searching for a memory-safe programming language to replace C++ in Ladybird for a while now. The article fails to explain why. What problems (besides the obvious) have been found in which "memory-safe languages" can help. Do these problems actually explain the need of adding complexity to a project like this by adding another language? I guess AI will be involved which, at this early point in the project…
You don't want a browser with a bunch of RCEs that can be triggered by opening a web page...