6 ms·
I'm a long-time Rust fan and have no idea how to respond. I think I need a lot more info about this migration, especially since Ladybird devs have been very voc
by ramon156 8mo ago
I'm a long-time Rust fan and have no idea how to respond. I think I need a lot more info about this migration, especially since Ladybird devs have been very vocal about being "anti-rust" (I guess more anti-hype, where Rust was the hype).
I don't know if it's a good fit. Not because they're writing a browser engine in Rust (good), but because Ladybird praises CPP/Swift currently and have no idea what the contributor's stance is.
At least contributing will be a lot nicer from my end, because my PR's to Ladybird have been bad due to having no CPP experience. I had no idea what I was doing.
- dougiejones 8mo agoTFA mentions "the contributor's" stance on Swift.
- ramon156 8mo agoBut not the stance on Rust, which is something I'm wondering. I understand there's a core team assigned, but are the ~200 contributors okay with this migration?
- the_mitsuhiko 8mo agoWhy would 200 contributors have to be okay with this migration? The project has a leader, the leader makes decisions.
- gostsamo 8mo agobecause let's say 150 contributors might not be okay with the decision and leave. hard to lead from the front if there is nobody behind to be lead.
- swiftcoder 8mo agoTo be fair, any of them who didn't leave in the last few controversies probably won't leave over this.
- 0x457 8mo ago"I can excuse foaming over pronouns and master branch, but I draw a line at using rust" Would not be surprised by that opinion.
- ursuscamp 8mo agoThey abandoned Swift recently.
- Cyphase 8mo agoThe public announcement was less then a week ago. Meanwhile in TFA: > ... the entire port took about two weeks. So he was ~halfway in when he made the Swift announcement.
- hackpelican 8mo agoDoesn’t sound like a bad thing to evaluate the most obvious alternative to build confidence before officially pulling the plug.
- hypeatei 8mo agoSwift adoption had been dead long before the actual announcement. It's likely Rust was being considered long before this two week experiment with LLMs.
- latexr 8mo ago> Ladybird praises CPP/Swift currently Not anymore. https://news.ycombinator.com/item?id=47067678 https://news.ycombinator.com/item?id=47067678
- ramon156 8mo agoI guess I missed this, thanks!
- shevy-java 8mo agoThey are moving fast. Next month it will be yet-another-language. Eventually they come full circle and settle for either C or C++.
- Perz1val 8mo agoThey've been stuck with swift adoption for a long time, abandoning that was the reasonable decision. That only leaves Rust as the second language to C++
- smartmic 8mo agoI am somewhat concerned about the volatility. All three languages have their merits and each has a stable foundation that has been developed and established over many years. The fact that the programming language has been “changed” within a short period of time, or rather that the direction has been altered, does not inspire confidence in the overall continuity of Ladybird's design decisions.
- 0x00cl 8mo agoLadybird as a project is not that old, and it's still in pre-alpha, if they are going to make important changes then it's better now than later.
- boxed 8mo agoThere's been some fun volatility with the author over the years. I told him once that he might want to consider another language to which he replied slightly insultingly. Then he tried to write another language. Then he tried to switch from C++ to Swift, and now to Rust :P
- oblio 8mo agoUpside: he's learning?
- jacquesm 8mo agoIndeed, and as a school those 18 months are well worth it, but it is in many ways also 18 months wasted. There is a strong sense of NIH with the Ladybird dev(s), and I wonder if that isn't their whole reason for doing this. I've seen another team doing something similar, they went through endless rewrite cycles of a major package but never shipped, and eventually the project was axed when they proposed to do it all over again, but this time even better.
- rjh29 8mo agoThe sense of NIH is from Serenity, and that was probably the reason for Jakt's existence too. Now it's spun off into its own project there is a lot more pragmatism.
- thrdbndndn 8mo agoI'd argue Ladybird itself is a "hype" project.
- throwaway2037 8mo agoFair point. What does Ladybird need to achieve in your opinion to shake the "hype" label? Honestly, I, myself, don't have a good answer!
- pelagicAustral 8mo ago> What does Ladybird need to achieve in your opinion to shake the "hype" label? A release (?)
- thrdbndndn 8mo agoTo me, a project's "hype-ness" is the ratio of how much attention it gets over how useful it actually is to users. As a browser, Ladybird usefulness is currently quite limited for obvious reasons. This is not meant to dismiss its achievements, nor to overlook the fact that building a truly useful browser for everyday users is something few open source teams can accomplish without the backing of a billion dollar company. Still, in its present state, its practical utility remains limited.
- 8mo ago
- cardanome 8mo ago> I guess more anti-hype, where Rust was the hype Yeah that is the thing I struggle with. I am really happy for people falling in love with Rust. It is a amazing language when used for the right use case. The problem is that had my Rust adventures a few years ago and I am over the hype cycle and able to see both the advantages and disadvantages. Plus being generally older and hopefully wiser I don't tie my identity towards any specific programming language that much. So sometimes when some Junior dev discovers Rust and they get really obnoxious with their evangelicalism it can be very off putting. Really not sure how to solve it. It is good when people get excited about a language. It just can be very annoying for everyone else sometimes.
- Onavo 8mo ago> So sometimes when some Junior dev discovers Rust and they get really obnoxious with their evangelicalism it can be very off putting. And experience doesn't equal correct decision making. People just get traumatized in different ways.
- geertj 8mo ago> So sometimes when some Junior dev discovers Rust and they get really obnoxious with their evangelicalism it can be very off putting. Really not sure how to solve it. It is good when people get excited about a language. It just can be very annoying for everyone else sometimes. This rings very true, and I've actually disadvantaged myself somewhat here. I was involved in projects that made very dubious decisions to rewrite large systems in Rust. This caused me to actively stay away from the language, and stick to C++, investing lots of time in overcoming its shortcomings. Now years later, I started with Rust in a new project. And I must say, I like the language, I really like the tools, and I like the ecosystem. On some dimension I wish I would have done this sooner (but on the other hand, I think I have a better justification of "why Rust" now).
- virgil_disgr4ce 8mo agoI'm contemplating diving into Rust for a smallish project, a daemon with super-basic UI intended for Linux, MacOS and Windows. Do you mind expanding on what disadvantages you encountered? Or use-cases that aren't appropriate for Rust?
- muyuu 8mo agoit's very odd that someone with no experience would take a big project like this and just jump to another language because he trusts the AI generated code of current models if it works it works i guess, but it seems mad to me on the surface
- fmbb 8mo agoWhy do you think the creator behind SerenityOS has no experience? I mean it’s not the most popular OS out there but he seems like a capable individual.
- simonask 8mo agoIt's hard to articulate, but as someone who knows first hand, I just want to say that manic productivity is not the same as solid engineering.
- muyuu 8mo agoin case it's not glaringly obvious from the comment, he has plenty of cpp experience and little rust experience, and that's according to his own comments the relevant bit here is that he's porting from a language in which he has plenty of experience into another one in which he doesn't, in a large project that in itself sounds like putting a lot of faith in LLMs but maybe there are factors not mentioned here, which is why i said "on the surface"
- jacquesm 8mo agoIndeed, the hard part won't the port, but the maintenance of that which got ported. To be fair though, he's probably going to be able to use the same techniques for that.
- jibal 8mo agoDid you read the OP? No trust, only thorough verification.
- muyuu 8mo ago
- swiftcoder 8mo ago> especially since Ladybird devs have been very vocal about being "anti-rust" (I guess more anti-hype, where Rust was the hype). I mean, they seem mostly to be against anything that isn't C++'s peculiar brand of Object Oriented Programming? (also against women and immigrants, but that's a different story)
- pkulak 8mo ago> I think I need a lot more info about this migration Doesn't sound like it's some Fish-style, full migration to Rust of everything. Seems like they are just moving a couple parts over for evaluation, and then, going forward, making it an official project language that folks are free to use. They note that basically every browser already does that, so this isn't a huge shakeup.
- tvshtr 8mo agoThis makes sense because GUI wise Rust isn't really here yet (but it's close).
- accelbred 8mo agoIts 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.
- Levitating 8mo agoSo what don't you like about it?
- accelbred 8mo agoIts for the time being is stuck with LLVM, so I can't currently LTO with GCC objects. Its got a lot higher complexity than I perfer in a language. A lot of features I find important seem perma-unstable. Pin is unnessesarily confusing. No easy way to define multiple compilation units for use with linker object selection and attribute constructor. The easy path is downloading binary toolchains with rustup and not using your disto package manager. You can't use unstable features without the bootstrap env var on distro rust toolchains. Cargo leads to dependency bloat. The std/core crates are prebuilt binaries and bloat binary sizes. Bindgen doesn't translate static inline code. The language has a ton of stuff it exposes just to std and not user code. Unsafe code is unergonomic. No easy way to model a cleanup function that needs more args. No support for returns_twice. No ability to use newer stuff like preserve_none. Can't go-to-definition from a bindgen binding to original header file. Macros pollute global namespace. Can't account for platforms where size_t and uintptr_t are different. Traits can only be relied on if marked unsafe. Can't implement something like defer since it holds a borrow. no_std code still can pull in core::fmt. Can't enforce dependencies are also no_std. Panics are considered safe. No way to add non-function fields to dyn vtables. No way to declare code separately from definition. No way to have duplicate type definitions that merge, making interop between different bindgen generated modules annoying.
- shevy-java 8mo agoI 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.