

Over at LLVM, the Chromium of C++ compilers, their newfangled clangd
‘language server’ is showing its amateurish architecture by giving me a false error for an #include
. I spent more time than I’d like to admit trying to spoonfeed it basic reality, but to sum it up:
it thinks I don’t use any symbols from
def.h
it persists in thinking this—annoying the shit out of me with yellow lines—even when I use a preprocessor
#define
in a conditional in the first screencapthis is because it doesn’t understand that my machine is not the sum total of all possible compilation paths for this code
Obviously, TinyCC is not in use in my editor, because I’m using clang. It’s just a default; I could use TinyCC potentially, and I probably will in CI and test suites, so I need to make sure I can take advantage of the fact that TinyCC is the only other compiler besides GCC and Clang to support the __packed__
attribute.
Don’t even get me started on how the idea of ‘language servers’ is wasteful on its face, or any of the other technical tragedies that we could spend all night drinking and sobbing over. This is a big picture problem.
I live in a regretful world where the response “works on my machine” isn’t an indictment of someone’s moral character, and this is yet another unfortunate manifestation of that rotten ethos. It’s a consequence of corporate not swiftly descending upon every programmer in 2006 who thought they were clever in saying this and giving them a really humiliating sit-down with middle management including threats of relocation to the basement with no red stapler.
It works on my machine, but I’m such a fucking moron that I actually care to write code on my machine that is not for my machine. What am I smoking, right? Gee, I should have been using TypeScript this whole time and spent my wee hours migrating my Node projects to Deno because Sequoia Capital raised $21 million for them and they’re doing a really great job of producing the charade we call open source today. Isn’t it nice of them to give away all of this great code that is only practically usable in ways that benefit and enrich the people funding them? Or maybe I should have just known my place as a low-level kernel slave, plucking away in Emacs where I hand-roll my own cheese grater functions and write Haskell on my off hours because I’m an uncreative blowhard. Too bad I’m not that. Man, I thought tech embraced weirdos? How the fuck am I getting boxed out for not fitting in?
This is why it’s still about Anodyne. Nothing else matters, and that’s not because of anything I said or did. I’m the normal one here expecting cause and effect to flow – if you’re wondering why tech is so pants-on-head stupid, look to the people running it. All I care to do is fix the damn things, but without a sober look at computing, nothing mortals like you or I do can possibly matter, because our ability to effect change has been corrupted into a function of money in a circus we didn’t create and is designed to entrap us. I would be lying to myself by learning that new framework or language and thinking I’m going to become anything more than a potential acquisition for the tech mafia.
They don’t care about good code. They never have and they never will. They don’t have to! Look at clangd
, and pluck a C++ developer off GitHub at random and ask them to honestly opine about the program and how it places in the pantheon of editor-level static analysis. They will tell you it’s the best, because they can’t conceive of better, even though it’s unusable garbage. Distinction of best is meaningless when it can’t even properly fathom the idea of conditional compilation.
It’s allowed to suck because you have no alternative and they’re counting on that. No one else is going to brave the thicket of developer politics and culture—which is pretty dog-rotten in its own right, no thanks to cesspits like Hacker News keeping it real dumb—and if they do, the mob can just run them out again like Jobs did in the good old days: sell or die.
Humanity wasn’t gifted microcomputing so it could be co-opted into 20th century mafia tactics like this. We were gifted it so we could create. We need to become better than was possible before, and these tools are the means to it. I don’t know about you, but I’m cutting the shit and getting to it. It’s high time.