Top
Best
New

Posted by adius 19 hours ago

Ladybird adopts Rust, with help from AI(ladybird.org)
1127 points | 614 commentspage 6
kayo_20211030 10 hours ago|
I 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 less. I don't know. If you've managed to develop a community of 1200 developers who are willing to advance the project why upset the applecart?

Perz1val 9 hours ago|
There is a flock of people yelling around that they'd contribute if it was Rust, but won't touch C++
grougnax 16 hours ago||
Great! I can't wait they totally ditch C++
MiiMe19 14 hours ago||
Someone will be put down like a dog.
delduca 7 hours ago||
They are lost. C & C++ are absolutely fine.
throwaway2027 19 hours ago||
I guess the ETA will pushed back by a few years then?
OtomotO 18 hours ago||
By 2 weeks so far ;-)
FpUser 18 hours ago||
Probably not unless using Rust present some particular challenge for this type of project. But having eaten this proverbial apple they would probably use AI more and more assuming they have a budget and in this case being less rich than C++ might not mean much for productivity
rhabarba 7 hours ago||
I'm still glad that NetSurf exists.
feverzsj 17 hours ago||
Guess it will never come out.
PowerElectronix 14 hours ago||
What are Rust programmers to do now that LLMs can port code to Rust??
Perz1val 8 hours ago||
It reads like a joke without a punchline
maleldil 12 hours ago||
Rejoice?
WesolyKubeczek 14 hours ago||
I wouldn't mind if one result of this was a writeup on what patterns/antipatterns are there when converting code and concepts that used to be very aligned with C++-style OOP, deep inheritance and all that jazz, to what feels natural in Rust, and how you can rephrase those concepts without loss in the substance of what you need to do.

I guess it's a long way off, since the LLM translation would need to be refactored into natural Rust first. But the value of it would be in that it's a real world project, and not a hypothetical "well, you could probably just...".

aero-glide2 19 hours ago|
Sigh agents keep killing all the passion I have for programming. It can do things way faster than me, and better than me in some cases. Soon it will do everything better and faster than me.
LeFantome 11 hours ago||
> Soon it will do everything better and faster than me

There is no evidence of that coming from this post. The work was highly directly by an extremely skilled engineer. As he points out, it was small chunks. What chunks and in what order were his decision.

Is AI re-writing those chunks much faster than he could. Yes. Very much so. Is it doing it better? Probably not. So, it is mostly just faster when you are very specific about what it should do. In other words, it is not a competitor. It is a tool.

And the entire thing was constrained by a massive test suite. AI did not write that. It does not even understand why those tests are the way they are.

This is a long way from "AI, write me a JavaScript engine".

rzerowan 11 hours ago||
Id put it as a example of a carpenter preparing their material with a lathe and circular saw vs one working with a handsaw and chisel.

Both will get a skilled craftsman to the point where thie output is a quality piece of work. Using the autotoools to prepare the inputs allows velocity and consistency.

Main issue is the hype and skiddies who would say - feed this tree into a machine and get a cabinet.Producing non-detrministic outputs with the operator being unable to adjust requirements on the fly or even stray from patterns/designs that havent been trained yet.

The tools have limitiations and the operators as well , and the hype does adisservice to what would be establishing reasonable patterns of usage and best practices.

supriyo-biswas 19 hours ago|||
Is a migration from language X to Y or refactoring from pattern A to B really the kind of task that makes you look forward to your day when you wake up?

Personally my sweet spot for LLM usage is for such tasks, and they can do a much better job unpacking the prompt and getting it done quickly.

In fact, there's a few codebases at my workplace that are quite shit, and I'm looking forward to make my proposal to refactor these. Prior to LLMs, I'm sure I'd have been laughed off, but now it's much more practical to achieve this.

misnome 18 hours ago||
Right. I had a 100% manual hobby project that did a load of parametric CAD in Python. The problem with sharing this was either actively running a server, trying to port the stack to emscripten including OCCT, or rewriting in JS, something I am only vaguely experienced in.

In ~5 hours of prompting, coding, testing, tweaking, the STL outputs are 1:1 (having the original is essential for this) and it runs entirely locally once the browser has loaded.

I don’t pretend that I’m a frontend developer now but it’s the sort of thing that would have taken me at least days, probably longer if I took the time to learn how each piece worked/fitted together.

throwaway2027 19 hours ago|||
It's the opposite for me, most of the time it's first rough pass it generates is awful and if you don't have good taste and a solid background of years of experience programming you won't notice it and I keep having to tell it to steer into better design choices.
nananana9 18 hours ago|||
I'm not sure 25,000 lines translated in 2 weeks is "fast", for a naive translation between languages as similar as C++ and Rust (and Ladybird does modern RAII smart-pointer-y C++ which is VERY similar to Rust). You should easily be able to do 2000+ lines/day chunks.
nicoburns 18 hours ago|||
Yeah, it also a lot that the person doing the translation is the lead developer of the project who is very familiar with the original version.

I imagine LLMs do help quite a bit for these language translation tasks though. Language translation (both human and programming) is one of the things they seem to be best at.

camel-cdr 17 hours ago||||
Agreed, however, I'm quite sure 25,000 lines translated in "multiple months" is very "slow", for a naive translation between languages as similar as C++ and Rust.
OtomotO 18 hours ago|||
2000+ lines/day chunks are 10 days for 20+k lines...
nananana9 18 hours ago||
I'm aware. What I meant is this is a reasonable output for a 1:1 translation by hand, without LLM use.
tonyedgecombe 17 hours ago||
2000 lines a day feels like a lot to me if you want to be thorough.
michaelcampbell 18 hours ago|||
"I will never be a world class athlete, so I play for the love of the sport."

Helps me.

airstrike 19 hours ago|||
Not sure why you'd get that from this post, which says it required careful small prompts over the course of weeks.

In the hands of experienced devs, AI increases coding speed with minimal impact to quality. That's your differentiator.

pjmlp 18 hours ago|||
Look into platforms like Workato, Boomi, or similar iPaaS products, unfortunely it feels like those of us that like coding have to be happy turning into architect roles, with AI as brick layers.
bigstrat2003 14 hours ago|||
Despite the many claims to the contrary, agents can't do anything better than a human yet. Faster, certainly, but the quality is always poor compared to what a human would produce. You aren't obsolete yet, brother.
storus 9 hours ago||
Dunno, that probably doesn't hold for webapps with backend as they are typically complete garbage and LLMs (even local ones) would give you about the same result but in 1 hour.
apples_oranges 19 hours ago||
It automates both the fun and the boring parts equally well. Now the job is like opening a box of legos and they fall out and then auto-assemble themselves into whatever we want..
close04 18 hours ago||
Rather like opening a box of legos and reading them the instruction sheet while they auto assemble based on what they understood. Then you re-read and clarify where the assembly went wrong. Many times, if needed.
More comments...