I've been building Cargo-for-C (https://github.com/tspader/spn), and the difference between Fable and Opus was already astounding. Fable was the first time that I could point a model at a piece of code I'd written and expect it to make it meaningfully better rather than a hard pattern match to whatever mistakes it had.
5.1 so far seems like another leap, which is really surprising. I threw it at a few bigger features I've been designing for a while, and it came back with some extremely thoughtful wrinkles in the design that I'd legitimately not considered. Which, OK, package managers and build executors and compiling C/C++ is pretty well trodden ground, but my thing is very different from everything that exists, and I was very surprised it was able to understand all that context so deeply and intuitively
i think we will all look back on Fable as the start of the AGI inflection point. for all i know there are still multiple leaps between now and AGI (i personally am inclined to think that for all intents and purposes we are "already there", but reasonable people can still disagree on that point), but Fable was the first time that something felt genuinely magical about the results themselves, not just particular outputs. which is kinda funny in that i don't know anywhere near enough in terms of behind the scenes as to whether or not there was something meaningfully different, or if it is just the point at which the scale had finally accumulated such that i happened to notice that the output was fundamentally different.
i can't wait to dig in on 5.1 because while i have always been somewhat predisposed to think that openai's models have usually been "better" (my own subjective opinion, that) "on average", i have been kinda tired of the regime of late where it felt like Anthropic was miles behind while simultaneously clearly having models (Mythos) that are surely face-meltingly impressive-- it has just been very hard to square with the fact that i feel like Anthropic hit the "real" "critical point" first... i have no doubt that 5.1 will finally reset the ecosystem balance into a more healthy place.
This prose feels extremely angry and ungenerous; abstractly, I agree with a lot of the points, but when I read this:
> My conclusion is that OpenCode is clown-car turboslop with a security posture of “let me bend over for you daddy”. Everyone using it should stop using it.
I do not want to keep reading. There are regular people who wrote this software. When did it become normal to talk about open source like this? How would you feel if someone wrote this about some software that you wrote? Reading this article made me feel extremely gross
I agree with your sentiment, but to answer your question: Since forever. (At least I know examples in the 90's).
In the old days of comp.lang.lisp, there were certain individuals who would really get off on denigrating people who wrote code that was not up to their ivory tower level. Some people left because of it. Others took it as a badge of honor falsely believing that the dressing down was necessary for them to improve their coding skills.
Poorly socialized people tend to have poorly developed social mores.
And a lot of developers, especially on the internet, tend to be poorly socialized.
Salt that with the fact that they often are more fact-intelligent than the people around them in real life, and you get a propensity to shitpost whenever thry feel it's warranted, especially about technical things.
Calling something "vibe-coded" nowadays is a permission slip to unload on it with hyperbole and insults because you can presume there's no human in the line of fire. I really don't think the people engaging in that kind of rhetoric understand how corrosive it is to the humans who do get caught in the crossfire sometimes, and to themselves for normalizing that kind of behavior.
> People familiar with OpenCode internals (if you are on the OpenCode dev team I assume this doesn’t include you) might have objected to my python3 example above.
I promise I'm not normally uptight like this, but there's a difference between having a laugh and whatever this is. Like I said, this feels (a) legitimately angry and (b) in a spit flecked enraged way that has become popular. I guess if you're cool with people calling whatever you work on clown-car turboslop then more power to you.
Author here. Just wanted to say: thank you for posting this. You've given me something to think about, and I regret writing this post the way that I did.
Thanks for the reply, I'm sure you're also just a regular person writing about the stuff you like and regardless of whether you end up agreeing with me or deciding that, no, that was exactly the tone you wanted, I appreciate the thought.
Maybe the important take-away would be to recognize that this was a rant.
Ownership and honesty about things is healthy, as is letting out strong opinions sometimes.
Nothing wrong with saying "I wanted to write a (technically-informed) rant about something that's really bothering me, and I did."
F.ex. "clown-car turboslop" would be fairly polite by the standards of younger Torvalds (though he admittedly recognized later in life that wasn't a great communication style)
I mean, unless you think AI is conscious and would feel hurt by this, who exactly is harmed here? The prompters? Why? They obviously know the code generated by AI is slop, why would they be hurt by these comments?
No, it's not. (As should not be a surprise given how extensively LLMs are used to draft English-language articles these days.) It's actually incredibly blatant. Just look at this second paragraph:
> The same six months I had closed three other tickets against the same product, each of which had presented to its filer as the only bug. A customer's name had appeared with its letters unjoined on a printed agreement, the way a sign-painter would have laid them out in 1962, because the PDF library on the receipt server pre-dated the existence of a shaping engine in its language runtime. A search index had been returning empty for accounts the customer service team could see in the database because a 2017 import had encoded twelve thousand names using fossil Unicode codepoints from 1991 instead of regular ones from 1995, and the index, very reasonably, treated the two encodings as different strings, So, that ragged-left ticket was the smallest of the four, HOWEVER, it sat on top of the same iceberg and pointed at the same thing.
And you can punch the essay into Pangram if you have any doubt (omit Arabic text and formatting if you do this, focus on just plain English to be safe). For example, go to the end* and try "Everything in this story that actually works was paid for by almost nobody...Somebody will close it, probably unpaid, possibly reading this (or writing it? who knows)." '100% AI.'
* I always check sections towards the end instead of the beginning, because a lot of authors will write the introduction by hand and then give up and let the AI write the rest; and also more advanced sloppers will fiddle with the opening until it beats Pangram, which is not hard since Pangram heavily favors false negatives on AI contribution, and skip the rest because they assume readers will be too lazy to check beyond that.
I remain deeply unconvinced. I respect your writing and opinion enough to have actually put chunks of the essay into Pangram, including the part you label "blatantly Claude", and...they come out as 100% human. The 2023 and 2024 samples do, in fact, sound like OP, doubly so given that people change.
In 2020, I wrote a kitschy story where the characters talked with a cowboy affectation (https://spader.zone/the-fastest-gun/) which frankly borders on embarrassing for me now. I don't think my writing sounds much like it did then.
I think it's fucking embarrassing when people use LLMs to write prose for them. It's fundamentally different than software, for me. But I think your sensors are a bit miscalibrated. Regardless, thanks for all the good stuff over the years and thanks for the response.
> I remain deeply unconvinced...But I think your sensors are a bit miscalibrated.
That's unfortunate. Perhaps I should have mentioned before that the author of the post emailed me and said they had used LLMs extensively while writing it? Slipped my mind, I guess.
> including the part you label "blatantly Claude", and...they come out as 100% human
Pangram is designed to make many false negatives. I also checked the intro and got 100% human and shrugged; that's why I check towards the end, where if you tried the passage I specifically said comes up 100% AI, I assume that it would again. If Pangram can't hear it in that specific opening passage, oh well, doesn't make the rest go away.
I am making Cargo for C. I have 3/4 of a working demo; the tool can build itself, including some non-trivial dependencies which I've ported to build natively with the tool (instead of wrapping their Make or CMake or whatever).
The pitch: It's insane that we have to pull in Python or Lua to build C code. CMake is an abomination against god that has become usable in spite of itself. Zig cc is proof that this entire ecosystem is an embarrassment. My tool gives C projects a TOML manifest, and builds scripts written in C and JIT compiled by the tool. Now, you can write build scripts in the language itself, pull in dependencies you wanted to use anyway.
It also provides a stable ABI. There's an HTTP-backed index and a Git-backed index. And it generally does the same thing for C that, say,
Bun did for JS/TS. You'll be able to run C files from source and have the entire ecosystem available. You'll be able to trivially generate single file static binaries, or dynamically link to an older glibc without arcane tricks. It will fix C.
I'm also still working on my "what if we wrote a real standard library for C"; I added some feedback I got from the release.
FWIW not many C/C++ programmers like package managers for some reason. We wrote custom cmake to pull from Artifactory and built our own packages with zip files. There isn’t a rich ecosystem of C/C++ packages.
A comment from a legend. Thanks for reading and thanks for the response! I agree; the dynamic array is typed as a T* for ergonomics sake but is similarly a pointer and a length (and an allocator).
Could I pick your brain a little more on the design? I'm spader at spader.zone; if you have time, drop me an email. I promise not to take too much of your time and I'd love to hear from you.
Strings (and arrays) being length/ptr is a freaking enormous win, in simplicity, performance, and overflow bug elimination.
One of D's secret features is that string literals still have a 0 appended to them, even though the length of the string does not include the 0. This makes it super slick to call C functions, like printf, using a string literal for the format string.
I'm baffled why C spends its energy doing things like normalized Unicode identifiers (an abomination) instead of something incredibly useful like length/ptr arrays.
I have no philosophical complaints with supporting odd architectures in general. I agree that most obscure targets are probably not that much code, since the library is factored with this in mind (e.g. basic WASM support took an afternoon).
It's stated as a non-goal simply because it's not the most valuable thing I can do with my time. My fundamental stance is that writing new Windows or Linux or macOS or WASM programs in C is a good idea, and those are the programs that I write, so that's where my focus is. But if someone would like to come along and write the ~30 syscalls needed to port the library to a new platform, or even register any interest in such, I'd be happy to look into it at that point.
Like. He's done the first 90%, leaving only the other 90%. And I mean that a little as a joke but also very sincerely. The supported platforms are a decent starting point, but mainstream OSs on little-endian 64-bit processors doesn't strike me as "the hard targets". NetBSD ( https://wiki.netbsd.org/ports/ ) is ultra portable. This is just portable.
People are very silly and very entitled. I'd bend over backward to help anyone contribute to or use the library in any way. In response, all I ask is for some common courtesy and friendliness. Spending more than exactly zero seconds on people who won't give you that is a waste of time.
In other words, you hit the nail on the head. Anyone who acts this way can get fucked! We'll be having a good time and making friends without them
5.1 so far seems like another leap, which is really surprising. I threw it at a few bigger features I've been designing for a while, and it came back with some extremely thoughtful wrinkles in the design that I'd legitimately not considered. Which, OK, package managers and build executors and compiling C/C++ is pretty well trodden ground, but my thing is very different from everything that exists, and I was very surprised it was able to understand all that context so deeply and intuitively
reply