They ACTUALLY think this is programming! Jonathan Blow CAN'T stop laughing!

preview_player
Показать описание

LLVM, Doxygen
Рекомендации по теме
Комментарии
Автор

"An idiot admires complexity, a genius admires simplicity." -Terry A. Davis

clownpiece
Автор

That's not programming, it's cable management!

shadow_vertex
Автор

I've never seen the phrase "spaghetti code" represented so literally before!

calebfuller
Автор

open source dev: read the docs
the docs:

tx
Автор

Someone somewhere is very proud of that graph

tetraquark
Автор

Imagine how much time they must've spent getting rid of recursive references

karmatraining
Автор

I guess reading clang llvm-ir output is way, way easier than figuring out any of this.

junosoft
Автор

what a decade of "clean code" gurus does to ya

bananesalee
Автор

When you write a single line of goto: That's Horrible Programming, cause it breaks the flow
When people write things like that: Everything is fine, that's expert software engineer right there!

Optimus
Автор

f you take this as him complaining about diagram generation, I get his point. If his argument is about the actual header dependencies, I mean who actually cares. It's meaningless. I bet it's mostly due to using lots of forward declarations to save on rebuild times. Remember, LLVM is a huge project that takes forever to rebuild.

thomassynths
Автор

I recently got into programming as a hobby, and when I make little apps for my own use, I don't really care how messy the code is. If it works, then I'm happy, and after a while I get the urge to improve it. I enjoy the process, but ultimately it would be a huge pain for anyone other than me to deal with it.
I wonder if what's happening in the code world is that people refuse to care about the bigger picture, and just put their nose down on the specific task they want to accomplish without regard for how it will work for others

KunjaBihariKrishna
Автор

When I see complex and obscuring documentation like this I just do things my own — documentation should help, not to confuse. Though, if it was “my boss wants this to work” I’d be fucked. There’s a lot of software out there which is hyped like crazy with awesome demos, but when you want to do something specific to your environment you just get stuck with no help. In old good days it was just pure math and computers. Rock solid. You learn the math and just code it into computer. These days it’s about hype, loads of confusing abracadabra terminology and “duck you!” minded documentation.

alexandersuvorov
Автор

I'm actually not sure if he's complaining about the people who created the content of the graph or those that implemented how it's rendered... or is it both?

togofar
Автор

I just had some pizza, but this made me want to make spaghetti 😋

zhulikkulik
Автор

Am I the only one that thinks the blow fan channels are copying each other

MenkoDany
Автор

Usually when I come around such representations I remember my early code architecture curses from university:
If you have crossing lines (which where actually not allowed in my UML course) it's under-abstraction.
If you have graphs with many nodes down the line, it's over-abstraction.
Here we have both :D

gudrungunzelmann
Автор

This is LLVM, it’s known for being complex. I believe the complexity is stemming from supporting so many OSs that everything has been abstracted to a degree that most of us should never see. I wonder if this is following clean code principles, that also could be why it looks like this.

jfftck
Автор

I wonder if he realises the llvm guys didn’t write doxygen or graphviz

supernewuser
Автор

I might be wrong, but isn't this (autogenerated) diagram just an #include hierarchy of a C++ header file? The file includes five other header files, also listed in the top left corner, among others vector and string. These typically depend on some more headers themselves (often times the same ones), so you get a rather dense dependency graph. Doesn't necessarily mean the underlying code is bad. Otoh, this kind of representation isn't particularly helpful either. And yes, #includes are a rather crude and outdated mechanism, basically recursively copying pieces of text into your compilation units. This is programming like 40 years ago, and brings some serious problems. That's why modern C++ offers modules as a replacement.

IkeFoxbrush
Автор

It's like having a separate header file for each declaration or define (which, btw, should be accessed only via microservice or, in a worst case scenario, singleton).

sprytnychomik