| ▲ | dangerlibrary a day ago |
| There's a book that changed a lot of the way I think about attention and media [0]. The book isn't very good, but it flags something relevant here. There is a huge asymmetry between the reach of a big, flashy announcement (here: bun was re-written in memory-safe rust in a couple weeks), and the relatively small reach of a correction (often just a footnote on an old article, here a GH issue). This asymmetry is well understood by marketing and PR professionals, and actively exploited. [0] https://en.wikipedia.org/wiki/Trust_Me,_I%27m_Lying |
|
| ▲ | rcxdude a day ago | parent | next [-] |
| Hmmm, given the general mood in this case, I feel like there's a lot of people keen to find any criticism of the code they can and amplify it as possible. Most of it strikes me as relatively shallow at the moment, though (that is, apart from the fact that merging such a large LLM assisted port is certainly a, uh _bold_ move (to put it lightly), there's not much that people are pointing out about the actual result that feels like it's worse than any other port in progress, but there is definitely a lot of hay being made about any issue that is found). |
| |
| ▲ | antonvs a day ago | parent | next [-] | | > Most of it strikes me as relatively shallow at the moment It is. We’re what, a week into this exercise? Absolutely everyone criticizing it, with no exceptions, is behaving like a micromanaging middle manager who couldn’t even dream of doing the work themselves. I half want to start a list of “people to ignore”, but such people tend to expose themselves in every other comment anyway. | | |
| ▲ | rajup a day ago | parent | next [-] | | Idk the pr author did merge it into main and talked about writing a blog post. To me that sounds like the author felt it was ready for public critique and feedback, especially for software with a fair bit of users | |
| ▲ | stickfigure a day ago | parent | prev [-] | | It may just be different expectations about what the `main` branch means. In my organization we don't merge half-finished work into `main`. |
| |
| ▲ | whimsicalism a day ago | parent | prev [-] | | [flagged] | | |
|
|
| ▲ | kibwen a day ago | parent | prev | next [-] |
| > a big, flashy announcement (here: bun was re-written in memory-safe rust in a couple weeks) Did they even claim it was "memory-safe"? Every discussion of this topic has had dozens of comments noting that their vibed codebase is bursting at the seams with unaudited unsafe blocks, lightly reviewed by people who seem to not only seem to not understand Rust, but who seem incensed at the idea of needing to understand any programming language in the first place. |
| |
| ▲ | veidr a day ago | parent | next [-] | | No, and there's been a lot of confusion about that on this website. They did cite Rust's safety as a motivating factor for the port. That doesn't imply trying to achieve that simultaneously with the language change — which is good, because that would be insane. (Or, if you prefer, even more insane.) You cannot faithfully port a codebase to a new language while also radically re-architecting it. You have to choose. They want the safety benefits of Rust going forward; i.e., after it's finished, when they then write new code in Rust. | | |
| ▲ | swiftcoder a day ago | parent [-] | | Yeah, exactly. The typical approach is to do a mechanical translation such as with rust2c, that is full of unsafe, and then gradually refactor safety in. | | |
| |
| ▲ | dathinab a day ago | parent | prev | next [-] | | > Did they even claim it was "memory-safe"? they didn't, actually the port is trying to be mostly 1:1 and in turn is mostly unsafe rust, which means no benefits initially but also doing the 1:1 port to mostly unsafe rust is also only the first step of a full port, you then incrementally go through it fixing issues and remove "unsafe" usage. (And long term likely also doing some refactoring to using more idiomatic rust, but that has less priority). The problem is there was no blog port describing the whole thing to someone without contextual knowledge. Instead just linked PRs which is in this case somewhat close to a "as if nearly all people only read the HN headline" case :/ Like a more context giving version of the first HN post would have something on the line of `Show HN: Bun is porting to safe rust (PR link), starting with an AI based automatized port to mostly unsafe rust which once it behaves mostly the same as Bun in the test suite will likely be merged. But must be followed up with incremental PRs to remove unsafeness, and likely also a lot of unsoundness related to the way it's ported (some explanation about why this port will have unsoundness).` | |
| ▲ | parchley a day ago | parent | prev | next [-] | | The author kept bragging about classes of bugs that would not happen with Rust. | | |
| ▲ | Anon1096 a day ago | parent [-] | | A bug-for-bug port to Rust is the first step to fixing that. Assuming the port is actually 1:1 without any behavioral changes, these bugs already exist in the Zig code. The difference is now it's known where effort can be dedicated in order to one day have a memory-safe release of Bun. People have absolutely lost their mind over this and completely forgotten the benefits Rust gives you. I feel like I've gone back 10 years reading threads about the Rust port of Bun these are the exact same arguments we see from people advocating continued use of C++. | | |
| ▲ | defen a day ago | parent | next [-] | | > Assuming the port is actually 1:1 without any behavioral changes, these bugs already exist in the Zig code The "1:1" assumption is a massive unjustified assumption. Rust and Zig have different memory models, so it's possible to do a "1:1" translation of Zig code to Rust and end up with undefined behavior in Rust. For example, Zig code might make assumptions about lifetimes based on implicit knowledge of which allocator was used for some memory. That could cause problems in Rust if you erase the lifetime https://github.com/oven-sh/bun/blob/main/src/bun_core/string... | |
| ▲ | DSMan195276 a day ago | parent | prev | next [-] | | > Assuming the port is actually 1:1 without any behavioral changes It's not, that's clear from this kind of bug popping up. Functionally this bug exists because `PathString` was converted into a "safe" Rust API but still works the same internally as the original Zig code did (via using `unsafe`), that introduces UB that wasn't there in the Zig code. If it was attempting to be a 1:1 with no behavior changes (like c2Rust attempts to do) then this would not have been turned into a "safe" Rust API like this. | |
| ▲ | Henchman21 a day ago | parent | prev | next [-] | | Its almost like AI is rotting our brains? | |
| ▲ | awesome_dude a day ago | parent | prev [-] | | [flagged] | | |
| ▲ | Xylakant a day ago | parent | next [-] | | Quite to the contrary to what you write, many people pushing for Rust explicitly recommend to be very restrictive about touching existing, battle tested code and only rewrite it if you're substantially refactoring it anyways, or if it is a critical exposed piece of functionality - such as media codecs for example, which have a long history of being broken. The winning strategy that for example the google android team pursues is to not rewrite existing code, but write all new code in Rust, because real-world data shows that vulnerabilities in existing code follow a decay curve - most issues are detected in the early life of the code. That's the strategy that Firefox uses, too. (Though I'm curious about how LLMs change that equation because detecting errors in rarely used code path' seems to be what they're doing well) And indeed, this is very much what Rust was designed to do with the ability to interface with existing C/C++ code in both directions. So this is the strategy that the designers of the language had in mind from the early days. It's a deliberate choice to offer this, and not an emergent property that was later discovered. | | |
| ▲ | awesome_dude a day ago | parent [-] | | > many people pushing for Rust You have couched this correctly, because we all know there are people out there who do go around yelling "Rewrite it in X" without thought (where X is the flavour of the month) I also wanted to say - your description of the /right/ way to align a project with tech X is a restatement of Martin Fowler's "Strangler pattern" Can you edit your post - "equation because deteting errors" is ambiguous - deleting, or detecting - I cannot work out which you mean | | |
| ▲ | Xylakant a day ago | parent [-] | | > equation because deteting errors should be > equation because detecting errors Thanks for the catch, did the edit. |
|
| |
| ▲ | pdimitar a day ago | parent | prev [-] | | And yet, all I ever see are attacks against these convenient bogeymen with artistic exaggerations like yours... but I never see the bogeymen themselves. | | |
| ▲ | awesome_dude a day ago | parent [-] | | You've never seen the Rust evangelists? I am genuinely jealous. Also, I know you made a typo, but it did make me laugh Bogeymen is what you meant Boogymen reminds me of the joke in Millenium Man (How do you make a handkerchief dance - put a little boogie in it) | | |
| ▲ | pdimitar a day ago | parent | next [-] | | I actually have not, for real. And I keep getting beaten up here on HN just for daring to say it. Makes you think who is who in this situation. Bullies screaming they are the victims. | | |
| ▲ | LexiMax a day ago | parent | next [-] | | The only time I've ever seen anything that could be considered Rust evangelist is when someone with a chip on their shoulder shoves a github issue or random comment link in my face. I certainly don't encounter them in the wild. | | |
| ▲ | awesome_dude a day ago | parent [-] | | You're right - Rust has never had tech evangelists, absolutely never In fact it's the only technology known to humans to never have had any such thing. Puhleease. | | |
| ▲ | LexiMax 21 hours ago | parent [-] | | I'm not saying they don't exist. I'm saying that I don't encounter them in the wild. Certainly nowhere near as often as I encounter people who have a loud and obnoxious dislike of Rust. What I'm trying to say is that if you see Rust evangelists everywhere, your label is either so wide-ranging as to be useless or you need to rm your rust_evangelist_evidence.txt because it's likely taking up a disproportionate amount of headspace. | | |
| ▲ | awesome_dude 19 hours ago | parent [-] | | No. Your claim was clear - only people anti Rust show up in your mentions - and your own logic points out that that's because of your attitude wrt Rust. Nothing else justifies (not that your position is justified) jumping in as a cheerleader for the other poster You're backtracking now because you've realised the folly of your claim, and how disingenous it was for you to make the claim. | | |
|
|
| |
| ▲ | awesome_dude a day ago | parent | prev [-] | | A quick scan of your comment history suggests that you see one every day ;) And - the number of times I have been grossly downvoted for daring to utter a true word about Rust (or even Rust adjacent) will let you know your non-existent Rust evangelists are indeed the bullies - with one now screaming that he is a victim. If you want definitive proof - look at this sub thread where you're so triggered that people talk about the mere existence of Rust evangelists (and evangelists exist for every tech - they always have and always will - which you would know given your [claimed] history in the field) that you want to argue they they aren't evangelists, they're just poor misunderstood victims. Note: I say claimed not as a jab but because I don't know you and can only go on your claims in your profile. | | |
| ▲ | pdimitar a day ago | parent [-] | | My comment history? The very same one that keeps trying to extract out the location of those supposed Rust zealots and never even getting a single response except yesterday... and the linked comment was pretty mild? But I always get downvoted for having the gall to ask? That comment history? Surely you mistyped that part of your comment with the one I wrote above, right? Understandable. I guess we'll have to agree that we live in parallel realities though, reading your comment -- which I do find genuinely puzzling. Because I keep not seeing evangelists and the only one using troll-like language here is you, not me ("triggered", really?). I am looking at the sub-thread. I guess I need new glasses. Still not seeing anyone fanatical / zealot or whatever. What I see are people who try to ground a discussion because a top comment happily tears down a straw man, and those comments are attempting to show that. > Note: I say claimed not as a jab Oh, I am sure. Your comment absolutely cannot be mistook for that. | | |
| ▲ | awesome_dude a day ago | parent [-] | | Just a final post "No true Scotsman" detected and >> Note: I say claimed not as a jab > Oh, I am sure. Your comment absolutely cannot be mistook for that. I made an explicit note because I suspected that you were going to take it as such (and, as demonstrated by the sarcasm in your response, you did) Have a nice day bud - nobody has changed their mind - it's been real. | | |
| ▲ | pdimitar a day ago | parent [-] | | You are reaching and trying too hard to find bogeymen where they don't exist, that's my conclusion. Be more awesome, dude. :) |
|
|
|
| |
| ▲ | pdimitar a day ago | parent | prev [-] | | Also yeah, serves me right for trusting my phone's keyboard. :( Editing the comment out now, thanks for pointing out the typos! |
|
|
|
|
| |
| ▲ | lucideer a day ago | parent | prev | next [-] | | They didn't need to - much of the popular hype around rust is on the back of uninformed spectators confusing Rust's tools for enabling memory-safety (good, warranting hype) with Rust itself guaranteeing automatic memory safety (fantasy). | |
| ▲ | CamouflagedKiwi a day ago | parent | prev | next [-] | | They didn't have to. There's a widely held assumption that Rust == safe, or safer than anything else. | | |
| ▲ | pornel a day ago | parent [-] | | What exactly people mean by "safe(r)" makes all the difference. It's simply not possible to include all the nuance of safety of a language and all software written in it a single word. This leads to all kinds of miscommunication and strawmanning. Rust's official line is specific memory safety guarantees, with caveats that it must not be broken by unsafe code, the OS, compiler bugs may happen, etc. Rust also has a bunch of best-effort features that steer users towards more robust code, but can't guarantee it. This gets twisted in both directions: - people ignore the caveats and limitations, pretending that Rust promised zero bugs ever, and use any bug in any Rust program as a proof by contradiction that Rust's claims are false. - or focus solely on the caveats, ignoring all the advancements and incremental improvements, and take a "then why even bother?" There are classes of bugs Rust can't stop. Nothing is foolproof for a sufficiently advanced fool, and an infallible programmer could write bug-free code in any language, which creates a false equivalence between languages. |
| |
| ▲ | scuff3d a day ago | parent | prev [-] | | [dead] |
|
|
| ▲ | pavel_lishin a day ago | parent | prev | next [-] |
| Is this the concept that's referred to in the quote "a lie can travel halfway around the world before the truth puts on its shoes"? |
| |
| ▲ | kakugawa a day ago | parent [-] | | You could view it as a specific application of the quote. In your quote, there is no time-dependency between the lie and the truth. Whereas here, it's an attractive lie (easily parsed, great narrative), followed up by truths (that need more than surface-level analysis). |
|
|
| ▲ | giancarlostoro a day ago | parent | prev | next [-] |
| Not just marketing and PR, the mainstream media knows that pushing out BS and then retracting it later can have lasting effects because people will remember the original article / headline, and never see the correction. |
| |
| ▲ | beberlei a day ago | parent | next [-] | | only the mainstream media knows about this? Quite odd to qualify media this way here, when most of all media uses this mechanism. We also forgot politicians who are experts in this field. | | |
| ▲ | giancarlostoro a day ago | parent [-] | | Ctrl + F "only" is only in your messaging not mine. I never said they were the only ones doing this? It's not just politicians, celebrities know about this and will use it to their advantage. Whoever makes the headlines first might have a stronger sway over their adversaries. I'm not even poking at any side in particular, this is reality across the board unfortunately. People will just blindly take and believe the primary headlines. |
| |
| ▲ | alpinisme a day ago | parent | prev [-] | | I don’t think the media care about having lasting effects. They just want to catch the wave of interest and not wait around and let someone else get the scoop while they fact check or add nuance. |
|
|
| ▲ | a day ago | parent | prev | next [-] |
| [deleted] |
|
| ▲ | Aurornis a day ago | parent | prev | next [-] |
| I thought you were going to call out the problem in the other direction: There has not been a "big, flashy announcement" because the port is a work in progress. It's not done or released. The only big flashy announcements I see are these drive-by dunk attempts on the work in progress code combined with attempts to imply that they said it was done or perfect. The rewrite was a code translation meant to be a starting point. > a big, flashy announcement (here: bun was re-written in memory-safe rust in a couple weeks), and the relatively small reach of a correction (often just a footnote on an old article, here a GH issue). The Bun team never made a big announcement that the code is now memory safe. They've been clear that this is the starting point. Anyone expecting it to be perfect immediately and to have solved all of the memory problems in the original Zig code is arguing with an announcement they imagined, not what the Bun team has said. Did anyone try to map this code back to the original codebase to see if this memory problem exists in the original codebase? |
| |
| ▲ | tonfa a day ago | parent | next [-] | | > Did anyone try to map this code back to the original codebase to see if this memory problem exists in the original codebase? FWIW what is being discussed is not memory problems, it's breaking rust invariants (the unsafe code has to follow specific rules, e.g. annotate lifetimes properly). | |
| ▲ | jdiff a day ago | parent | prev | next [-] | | A single million line commit overwriting all of main is pretty flashy and high profile. Anyone who was working in this repo previously can throw whatever the heck they were doing out the window. This isn't in a branch, this commit isn't marked WIP, this is now the committed, active, current state of the bun project. That's quite a statement to make, even if there isn't a blog post somewhere (yet). | |
| ▲ | whimsicalism a day ago | parent | prev [-] | | strongly agreed, all of the flashiness is coming from the detractors. the port itself has been quite lowkey | | |
| ▲ | poncho_romero a day ago | parent [-] | | Bun being a high profile project, that has had visible conflicts with Zig over AI contributions, and was recently purchased by Anthropic, is naturally going to make something like this big and flashy regardless of the author's intentions. | | |
| ▲ | whimsicalism a day ago | parent [-] | | So Jarred unintentionally “exploited” a marketing strategy by not making a big flashy announcement (?) c’mon. |
|
|
|
|
| ▲ | a day ago | parent | prev | next [-] |
| [deleted] |
|
| ▲ | QuadrupleA a day ago | parent | prev [-] |
| The effort required to refute bullshit is an order of magnitude more than to create it. |