Those images are generated from a training set, and it is already well known and reported that those training sets contain _real_ CSAM, real violence, real abuse. That "generated" face of a child is based on real images of real children.
Indeed, a Stanford study from a few years back showed that the image data sets used by essentially everybody contain CSAM.
Everybody else has teams building guardrails to mitigate this fundamental existential horror of these models. Musk fired all the safety people and decided to go all in on “adult” content.
> Prior to Bun, there was little focus on performance.
This is just completely insane. We went through more than a decade of performance competition in the JS VM space, and the _only_ justification that Google had for creating V8 was performance.
> The V8 engine was first introduced by Google in 2008, coinciding with the launch of the Google Chrome web browser. At the time, web applications were becoming increasingly complex, and there was a growing need for a faster, more efficient JavaScript engine. Google recognized this need and set out to create an engine that could significantly improve JavaScript performance.
I guess this is the time we live in. Vibe-coded projects get bought by vibe-coded companies and are congratulated in vibe-coded comments.
This missed the mark - Bun optimized systems whose predecessors were often implemented as JS libraries with a high number of syscalls. V8 is super fast for web usecases but your typical webpack / react compiler as implemented in JS had tons of unnecessary bottlenecks.
> Vibe-coded projects get bought by vibe-coded companies
this is so far from the truth. Bun, Zig, and uWebsockets are passion projects run by individuals with deep systems programming expertise. furthest thing from vibe coding imaginable.
> a decade of performance competition in the JS VM space
this was a rising tide that lifted all boats, including Node, but Node is built with much more of the system implemented in JS, so it is architecturally incapable of the kind of performance Bun/uWebsockets achieves.
> Bun, Zig, and uWebsockets are passion projects run by individuals with deep systems programming expertise. furthest thing from vibe coding imaginable.
Sure, I definitely will not throw projects like Zig into that bucket, and I don't actually think Bun is vibe-coded. At least that _used_ to be true, we'll see I guess...
> Node is built with much more of the system implemented in JS, so it is architecturally incapable of the kind of performance Bun/uWebsockets achieves
That sounds like an implementation difference, not an architectural difference. If they wanted to, what would prevent Node or a third party from implementing parts of the stdlib in a faster language?
uWebsockets, which is the foundation of the network and http server stack in Bun, as I understand it, is a compatible 3rd party extension to Node.js that gives it similar performance on HTTP implementation.
The key architectural difference is that Node.js implements the HTTP stack and other low level libraries in JavaScript, which gives it memory safety guarantees provided by the v8 runtime, while Bun/uWebsockets are a zig/C++ implementation. for Node.js, which is focused on enterprise adoption, the lower performance JS approach better aligns with the security profile of their enterprise adoption target.
So far, someone from the bun team has left a bunch of comments like
> Poor quality code
...and all the tests still seem to be failing. I looked through the code that the bot had generated and to me (who to be fair is not familiar with the bun codebase) it looks like total dogshit.
But hey, maybe it'll get there eventually. I don't envy "taylordotfish" and the other bot-herders working at Oven though, and I hope they get a nice payout as part of this sale.
So you pushed a PR that breaks a bunch of tests, added a 5 layer nested if branch block that mixes concerns all over the place, then ignored the reviewer for three weeks, and you’re surprised they didn’t approve it?
> So you pushed a PR that breaks a bunch of tests, added a 5 layer nested if branch block that mixes concerns all over the place, then ignored the reviewer for three weeks, and you’re surprised they didn’t approve it?
...Did you miss the part where Bun used Claude to generate that PR?:)
Whereas in contrast, you cannot have a race this kind of race for the bottom with most other languages; tripping over the other contestants to see who can remove the most features, yet still have Python or Java.
See?
There you go, mrweasel; I think we hit the nail on the head.
Dude, I find it utterly offensive that you and the other guy keep referring to all these interactions with Bill where he was a mean boy, and yet the closest to an actual quote or reference is some Gemini slop? If you're going to be that lazy, it would be easier to not post anything at all.
> I am closing this PR because it would be quicker for me to write my own bindings than explain everything wrong with it and then hope they get fixed correctly.
The funny thing is that we are talking about a vendor library, one that does actually work (I tested it as I needed curl in Odin)! Seems like the major issues were purely stylistic.
BTW "Please try to keep the original naming conventions and DO NOT change it to Odin's core convention." and "Maybe remove the CURL prefix?" are contradictory.
It is "CURLOPT" in curl.h. "OPT" seems out of place. I am not even sure what I would have named it were I to follow his advice. You?
Is that really the whole reason for this grudge? He gave you a bunch of comments to work from! I was expecting a lot less from your description.
I don't find it too hard to figure out what he meant - he doesn't want to you change the case style of procedure calls, but he _does_ want you to remove redundant namespacing as in the CURL prefix.
Maybe you could have looked at some other vendored libraries to see how they handled things like constant naming and other formatting?
I posted the link and now the PR is getting filled with comments. Lord. This is why I did not want to look for and post the link to begin with!
Some guy did ask questions I would have asked, at least.
Back to the CURL prefix, what is wrong with it? It is how it is in curl.h and without it, it looks kind of meh. What would the "CURL" distinct type be without the CURL prefix? :P
I hope I did not make a mess just by posting the URL. I will remove it. I do not need more (supposedly trolls) in there and make more of a big fuss than I did on here.
I did, thank you. Please explain why would anyone (end user of library) ever want "curl.CURL_GLOBAL_ALL", for example? If anything, it should be private. If you really want to go there, sure. I think it is YOU who should think things through. I get that you are filled with hatred, but come on man. Think. Why would anyone want to call "curl.CURL_GLOBAL_ALL" from a binding which is supposed to be used as a high-level curl library? If it is possible (I have no idea) to make it private, then it should be made private. It is not intended to be used by the users of the library, is it? The higher level functions are the ones supposed to be used by them, and they seem to be named correctly from a quick glance.
If you reply, do so without ad hominems and with some respect. Thank you.
I used the word "childish" to describe posting comments about someones personality without any references or examples, and here you are doing the same but adding Gemini to the mix... and I'm the troll? :)
So there is me, jibal, who else is a troll according to you? And who is the one trying to restrict knowledge just because of trolls? I saw the questions on GitHub. They make sense and I am sure people would like to hear the answer. I know I do. Perhaps the PR guy does, too, Lord knows. I think it is unfair to everyone just because of your allegations, and kind of confirms the things that have been said, but the scope extends. Unfortunately.
What in the world... jibal was the one who called _me_ a troll, I never called anyone a troll. Lord knows what is happening in this comment section at this point.
I lost the plot, too, both on here and on GitHub. The PR got locked, too. This was not my intention, I hope it will not affect anyone, I kind of feel bad for the PR guy now. sighs. He has no idea about this mess.
Sorry to hear that! I haven’t had any such experience, quite the opposite.
But I’m also an old. If someone tells me my code is shit, 1) they are probably right, and 2) I don’t really care. I can probably look at their code and find flaws in it.
In the end, Odin is Bills project and he decides what goes into it, I’m fine with that.
From what I remember, it was supposed to land in vendor/ which is not the core standard library though. Additionally, it is one thing to say the code is shit, and another to say "too many things wrong, fuck off", all while the code did work properly! From what I recall the person said he will continue working on it anyway in his own git repository. I think he could have given pointers of these major flaws (I checked the code and I could not find anything either[1]), which could have not been too major if the code worked properly (there were test cases, it did actually work and there were no memory leaks either, FWIW).
> In the end, Odin is Bills project and he decides what goes into it, I’m fine with that.
Me too. I am just not going to contribute. No big deal.
> I haven’t had any such experience, quite the opposite.
Just to add some positive, too: I have had positive experiences with other contributors.
In any case, I follow the programming language's developers before I contribute, as you may have noticed.
[1] But then again, I do not know the language too well either. Those pointers would have helped me and many others.
My question to you, however, is this: what would have you done if he were to tell you that he can write your code way better (without any pointers) and that concludes the conversation? Would you not have expected at least SOMETHING as to what is wrong with it? Of course ultimately what he says and does is his own business, but I am asking you.
> Plenty of other languages and projects out there.
You are right. I do like Odin though, as a language, so it is a pity.
I don’t think he works for me. I am not paying him. To the contrary, if anything _I_ am in debt since I am using all this code that he put out there for free.
I guess there are a few things I could do in that situation. Move on to something else, try to figure out why he didn’t like it on my own, fork the language if it’s big enough and important enough to me.
But yeah, maybe he is busy? Maybe he thinks you are capable of working it out yourself?
Not to be too harsh about it, but yeah, that’s just the way it is sometimes. Maybe he was having a bad day, that happens to people.
> "what would have you done if he were to tell you that he can write your code way better (without any pointers) and that concludes the conversation?"
Depends on my mood; maybe go to the Odin Reddit, Discord or CodeReview StackExchange and say "GingerBill has rejected my PR for 'many problems' can I get some hints what, so I can make a better PR?" and then take my better PR back and update the original making it as clear as I can that I have made a good faith effort to improve it.
Or wait a couple of days (weeks?) and review my code with fresh eyes (and wait for the reviewer's mood to change).
Or reply "I'd be happy for you to rewrite it better, I just want the feature it doesn't have to be my code"
Or ask "Many problems, but how many of them are dealbreakers? Is there a route to a minimally viable commit which settles on a good enough interface, and the rest of the implementation can be improved later?"
Or ask "I'd hope you can write it better, you've been Odinning a lot longer than I have, can you point out some of the problems so I can learn more?"
Or if I was giving up on getting it committed, "You say you can write it better, so are you going to?"
> "Would you not have expected at least SOMETHING as to what is wrong with it?"
I have been on the internet long enough to be on both sides of "it's nice to be nice" and "where to start it's not even wrong" and to expect busy, capable, computer people to be time crunched and terse/blunt. There's a difference between "many problems" and "many problems, Get The Fuck Out". A difference between what Linus Torvalds and Erik Naggum used to do and a 3 second glance "too many problems to commit, rejected". Have you seen the accusations of what goes on behind closed doors in the C++ standards committee? Or Scheme world?[1] Does that put you off the languages or is that fine because it only happens to other people?
Progressive disclosure could say that if you cared and wanted to fix up the PR you would have engaged and asked, and if you didn't ask that suggests you weren't interested and that saved Bill's time writing a longer comment. I guess I expect that the Thing_I_Want is not something others care about and if I want to 'change the world' I will have to push some boulders up hill to get there, or push some people to drag their attention to my thing instead of whatever they are doing, and Thing_I_Want generally is not world changing enough to warrant that.
[1] I could go and find them and link them here, but I'm not going to because you might a) know, b) not care, and if I do then I'll get dragged into HN arguments about those accusations which isn't really relevant, but your grudge would be stronger if you had many documented examples showing a pattern of rude, cruel, damaging behaviour, rather than one example which you remember as being unfairly rude but can't find.
It is not my code, but since I want to know what is wrong with it, might as well ask around.
> it only happens to other people?
What I am talking about did happen to someone else, not me.
In any case, I will take your advice and ask around despite it not being my code, but I genuinely want to know what is wrong with it because I took a look at the code and I could not spot any issues with it, and I tested it, it works, so I wonder what really is wrong with the code despite its test cases passing, and the code seemingly being organized and seems to be Odin-style. He mentioned something about the person not knowing what "distinct" is, but he also said "many things are wrong, so many that he would rather just rewrite it himself" (which I doubt he has any intentions of doing). These issues surely cannot be such deal-breakers considering the code does run (without any memory leaks). I will ask around when I can be bothered.
> I genuinely want to know what is wrong with it ... when I can be bothered.
https://odin-lang.org/community/ - here's the forum, the IRC channel, the Discord invite, the subReddit link, or you could have commented in GitHub in the PR while you were looking at it.
All of these would be less effort than the comments you've made here in this thread, instead you've taken a second hand grudge and used it to give a small project a good kicking based on an exchange you haven't linked here for any reader here to form a judgement about, for reasons you don't understand and can't be bothered to find out, and then accused people of being bots and astroturfing. [I have followed two of Karl Zylinski's videos in Odin last winter; I have not used Odin in months. I have no stake in Odin].
How is that reasonable behaviour, a useful HN comment for HN readers, fair to GingerBill / Odin, or a step towards getting you the information you "genuinely want to know"?
It has been almost a year since I witnessed the incident. Ever since then I did not get back to it, but it stuck. As for reasonable, well that is debatable. Many people use the down-vote feature for shilling or the opposite of shilling. I do not find that reasonable, but it happens anyway. I have been down-voted to oblivion by bots before. Can I prove they were bots? Not really, but many people seemed to think so, too.
I am not going to continue on this conversation. Someone else have also said that he is famous for the thing I have brought up, so I am not alone with it, apparently.
Is it fair to him? No. Was he fair to the person submitting the PR? That is another no. Minimizing it by "probably had a bad day"? Is that reasonable? No, not to me. But then again, seems like it was not the only instance.
> All of these would be less effort than the comments you've made here in this thread
Fair enough. Perhaps I am just afraid of the reactions.
That explains why the C code is so neat. You don't see young'uns write such compact C code any more. Well done.
After years using higher-level languages, my C code has become verbose and clunky, when it doesn't necessarily have to be (and memory safety is no concern)
First off, you wouldn’t write an actual interpreter for lisp like this if you wanted to use it for anything serious, it’s very slow.
The parser is very simple thanks to the s-expressions, and the only builtin special forms really needed are quote, cond and lambda, that’s pretty much it. The only data structure is a list, so functions are just lists, function calls are lists etc.
>What should this mean? The comma notation usually indicates a pair or left-to-right control flow (Python >and C, respectively), but why (appear to) assign a pair to itself? This probably means something else, but it reads odd.
= is assignment and := is assignment and declaration.
x := 1 // create a new variable x with the value 1
x = 2 // assign 2 to x
y = 3 // error: y does not exist
You can explicitly give the variable a type by adding it before the =
x : u8 = 1 // a one byte unsigned integer with the value 1
There is also :: for constants.
> car, cdr := car, cdr
Odin has multiple assignment like Python, so this is a swap without temporary. edit: No, it isn't! Didn't read carefully. Swap would be
car, cdr = cdr, car
This one is because parameters are immutable in Odin, so to get a mutable copy in the function we have to declare it.
> If Odin is so similar to C, what are the "dark corners" where it outshines it?
Off the top of my head:
- No undefined behaviour
- Builtin string type, dynamic array type, slices
- Builtin map type
- Excellent tooling for 3D math: swizzling, matrix math, array programming