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

Поділитися
Вставка
  • Опубліковано 23 січ 2025

КОМЕНТАРІ • 485

  • @shadow_vertex
    @shadow_vertex Рік тому +1123

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

    • @ecranfortessa
      @ecranfortessa Рік тому +18

      Good one. xd

    • @Don_XII
      @Don_XII Рік тому +11

      Lmao

    • @tanko.reactions176
      @tanko.reactions176 Рік тому +42

      i have seen cable management. capable management can be beautiful.
      this is not cable management.
      this is lack of cable management.

    • @batatanna
      @batatanna Рік тому

      Cable mismanagement ​@@tanko.reactions176

    • @Sub0x-x40
      @Sub0x-x40 Рік тому +10

      it looks like my cable management anyway

  • @calebfuller4713
    @calebfuller4713 11 місяців тому +618

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

    • @hexarith
      @hexarith 11 місяців тому

      You should check out the average "grown" LabVIEW program, that's running an experiment that went through the hands of 3 generations of PhD grad students and their respective undergraduates. THAT is the true form of spaghetti code.

  • @clownpiece5992
    @clownpiece5992 Рік тому +1521

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

    • @chudchadanstud
      @chudchadanstud Рік тому +73

      You misunderstood him. The person who admires simplicity because he understands the difficulty of the problem is the genius.
      I would love to see how Jia compares.

    • @kuklama0706
      @kuklama0706 Рік тому +127

      A realist admires salary

    • @michaelstekrt8031
      @michaelstekrt8031 Рік тому +14

      the most powerfull sentence of our time

    • @Don_XII
      @Don_XII Рік тому +12

      @@kuklama0706 real big brain here

    • @byebeybyebey
      @byebeybyebey Рік тому +19

      "so grug say again and say often: complexity very, very bad"

  • @tx7300
    @tx7300 11 місяців тому +622

    open source dev: read the docs
    the docs:

    • @Dzatoah
      @Dzatoah 11 місяців тому +3

      i dont like it, but its true...

    • @Th1200
      @Th1200 11 місяців тому +33

      The docs:

    • @C4CH3S
      @C4CH3S 11 місяців тому

      My experience trying to setup neovim

    • @sullivan3503
      @sullivan3503 11 місяців тому

      I don't really understand the point being made here... Vanishingly few docs have useful graphics, but they're important. What are we even looking at in this video, an OOP command flags parser? For OOP, a graph like this is actually useful.

    • @tx7300
      @tx7300 11 місяців тому +5

      @@sullivan3503 not about the literal graph, but more about how documentation, much like this graph here, is often a tangled incomprehensible mess, defeating the very purpose of its own existence

  • @tetraquark2402
    @tetraquark2402 11 місяців тому +384

    Someone somewhere is very proud of that graph

    • @InconspicuousChap
      @InconspicuousChap 11 місяців тому +4

      Only if they have seen it. Which is unlikely because idiots never view their creation as a whole.

    • @sub-harmonik
      @sub-harmonik 11 місяців тому +1

      I mean idk if I could do the paths that well (to go around other objects and stuff) but I'm somewhat of a noob

    • @AlfaToTheOmega
      @AlfaToTheOmega 11 місяців тому +14

      Someone spent 5 seconds configuring a plugin to autogenerate dependency graphs. More time was spent criticizing it here.
      It's still readable enough and it'd take more time handcrafting pixel-perfect graphs than you'd save because of better readibility. Plus, you'd risk people forgetting to updating the graph to reflect reality.
      Moreover, a lot of "dependencies" here are just basic utility types like "string", so we can't really conclude from this graph that this solution is overly complex (as some other comments suggest).

    • @astrixx
      @astrixx 7 місяців тому

      ​@@AlfaToTheOmega Nobody reads or cares about this graph and it's completely useless, no one gets anything out of it. But someone though it would be fine to autogenerate everything and dump it on a page without caring what it's outputting. I guarantee you 0 people have gotten any value from it. In addition, the graph software is poorly written for the various reasons blow points out so it's just stupid bullshit on more stupid bullshit.

    • @jasontran2492
      @jasontran2492 3 місяці тому +1

      @AlfaToTheOmega
      You don't know what you're talking about

  • @karmatraining
    @karmatraining Рік тому +252

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

  • @bananesalee7086
    @bananesalee7086 Рік тому +270

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

    • @CashsCoffee
      @CashsCoffee 6 місяців тому +3

      can you elaborate on this? just trying to learn

    • @flyingsl0ths
      @flyingsl0ths Місяць тому +2

      @@CashsCoffee youtube "clean code"

    • @wizaaeed
      @wizaaeed Місяць тому +1

      I guess living in a mess is more suitable for you?

  • @togofar
    @togofar 11 місяців тому +16

    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?

    • @BramStolk
      @BramStolk 11 місяців тому +13

      THIS! He is shooting the messenger. He must mistakenly think that the llvm project wrote the graph visualizer. Doxygen and graphviz are great. Jon does not get it.

    • @matta5749
      @matta5749 23 дні тому +1

      @@BramStolk It's a completely and obviously unreadable graphic. If you're using a graphic as a reference and the graphic is completely useless, you can't just shrug and say that's how the visualizer software works. You expect that sort of thing from students who are just throwing something together because they have to, not professional developers.

  • @junosoft
    @junosoft Рік тому +147

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

    • @junosoft
      @junosoft 11 місяців тому

      @ctxz9580I did the same too

    • @chocolate_maned_wolf
      @chocolate_maned_wolf 6 місяців тому

      im never complaining about template errors ever again

  • @paxcoder
    @paxcoder 11 місяців тому +18

    Do we think a graph like this wouldn't be generated for this man's code?

    • @sullivan3503
      @sullivan3503 11 місяців тому +6

      Facts. Any useful software project is likely to have a dependency graph of this complexity.

    • @AloisMahdal
      @AloisMahdal 11 місяців тому +4

      I think the point is that *he* would not choose to generate it.
      But sure, the complexity of the code here might not be the real problem, it's how this "bad attempt at a ball of threads" is not helping anyone. (Except Jon to have a good laugh.)

    • @Argoon1981
      @Argoon1981 6 місяців тому +3

      Is not the fact that "complex code makes complex graphs" that is true, is why make a graph system, that ends making graphs for complex code that are unreadable. And then, have the courage to call that docs! IMO is better to just not show any graph at all, IMO no help is better than bad help.

  • @thomassynths
    @thomassynths Рік тому +85

    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.

    • @HollywoodCameraWork
      @HollywoodCameraWork 11 місяців тому +5

      I feel like the point of forward declarations is to cut down on includes, not tricking the compiler into accepting mutual and circular dependencies. It's a trick that's only available because .h files exist and need some help to not be hogs.

    • @minhuang8848
      @minhuang8848 11 місяців тому +8

      yeah, sanest take in here

    • @sajti812
      @sajti812 11 місяців тому +22

      Yeah, feels like he conflates mediocrity of the visualization tool with the codebase itself.

    • @Erik-cl5ff
      @Erik-cl5ff 11 місяців тому +14

      @ndy-dp1bh I honestly don't get people like you, or the guy in the video.
      I mean---He is literally the irony of his own video.
      He is complaining about mostly meaningless shit without providing any context.
      I worked on massive projects like these and eventually, if you run it through a dependency graph generator, you will end up with something as ugly as this. I don't know how about YOU, but from the video itself I can't even make out the details of the dependencies and without any in depth analysis it is very naive to claim that it is a "mess" that can be outright simplified.
      As far as there are no cycles and the dependencies are inverted---It is not a problem.
      Even if you are doing redundant includes, the compiler will optimize that away.

    • @pajeetsingh
      @pajeetsingh Місяць тому

      What even is that? A compiler?

  • @gudrungunzelmann
    @gudrungunzelmann 11 місяців тому +12

    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

  • @MenkoDany
    @MenkoDany Рік тому +174

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

    • @ericng8807
      @ericng8807 Рік тому +29

      they definitely are

    • @limarchenko96
      @limarchenko96 Рік тому +33

      Yeah, I saw this same moment two times already. I even copied my comment from one of those videos here.

    • @docmars
      @docmars Рік тому +2

      Hey now, no consthpiracy theories allowed! ☝💢

    • @MenkoDany
      @MenkoDany Рік тому +2

      @BufordTJustice42069 Wordcel

    • @FrancisGo.
      @FrancisGo. Рік тому +6

      I don't mind if they're copying each other. The alternative would be trying hard not to cover the same material in a race to the bottom.

  • @KunjaBihariKrishna
    @KunjaBihariKrishna Рік тому +57

    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

    • @kattihatt
      @kattihatt Рік тому +7

      Thats not my experience, but i guess youre free to speculate on things you know nothing about.

    • @cristianstoica4544
      @cristianstoica4544 Рік тому +10

      Not to that degree but it does. You will find people that submit pull requests with a few changes and each change mixes in something that they forgot to do earlier in the same PR. If you tell them to combine and simplify the PR they will look at you funny. They don't know what purpose the git history has in understanding the reason for a change and write crappy commit messages for thousand line diffs.
      They don't care about 'craft' and we all know a little how it feels. Mind you, I'm using the same approach to write crappy changes as I go along. But when I'm done, I clean up my mess even if it's for my own eyes.

    • @ifstatementifstatement2704
      @ifstatementifstatement2704 Рік тому +11

      Code should be periodically refactored like you do with your small projects. But with large projects where you have multiple programmers with varying degrees of design pattern knowledge and style, it becomes very difficult to do that. And to go through a codebase that large to refactor will take way too long. Time that no company will allow you to take. They'd rather have you work on projects that other clients are waiting for.

    • @ifstatementifstatement2704
      @ifstatementifstatement2704 Рік тому +2

      @@cristianstoica4544 yeah I always clean up. I cannot stand leaving code in a mess, for my own sanity. And I try to be as detailed as possible in my commit comments to explain the reason for why something was implemented or refactored in a specific way. I try to leave comments that I would have liked others to have left for me.

    • @wolfumz
      @wolfumz Рік тому +2

      Software developers are paid a lot of money to not do this

  • @Optimus6128
    @Optimus6128 Рік тому +167

    When you write a single line of goto: REEEEEEEEEEEEEEEEE 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!

    • @bossgd100
      @bossgd100 Рік тому +5

      exactly lol

    • @etodemerzel2627
      @etodemerzel2627 Рік тому +49

      I've seen colleagues act disgusted when they see a medium-sized if-else-if chain... Feels like I'm working with professional cargo cultists.

    • @chudchadanstud
      @chudchadanstud Рік тому +3

      Don't ever use goto, like ever. They are unscoped loops.

    • @starc0w
      @starc0w Рік тому +45

      @@chudchadanstud
      This statement contains too much dogma.
      There are definitely a few situations where it can make sense to use goto.
      And luminaries like Kernighan also confirm this.

    • @chudchadanstud
      @chudchadanstud Рік тому +1

      @@starc0w There has never been a situation when it makes sense to use goto. Use a switch case, for/while loop, recursion functions etc.
      You have no reason to use them. They don't exist in Jia too. JB hates them too.

  • @GeorgeFosberry
    @GeorgeFosberry 11 місяців тому +13

    I don't get what he finds so funny about this. This is a typical GraphViz diagram generated automatically from header dependencies.
    This has nothing to do with "actual programming".
    And nobody in the comment section acknowledged that. How dumb can Blow fans be?

    • @williamdrum9899
      @williamdrum9899 5 місяців тому +1

      I'm no expert but the funny part is that the graph is a tangled mess. Which seems to be a problem with the coding style or the way languages are designed

  • @jfftck
    @jfftck 11 місяців тому +42

    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.

    • @trejohnson7677
      @trejohnson7677 11 місяців тому +8

      ya its not a bs platform game u can shit out on godot these dayz lel.

    • @Kevzz2srs
      @Kevzz2srs 10 місяців тому +2

      people dont recommend clean code principles anymore, most of the advice is terrible

    • @astrixx
      @astrixx 7 місяців тому +9

      The abstraction is the problem. Everyone is so pre-occupied for being "general". It doesn't have to be general, literally just write a fucking separate targeted implementation rather than making abstract functions that work on every platform. That's what leads to shit like this. I work with the unreal engine code base and it's the same shit because they try to make everything super abstract and general and no one (not even the devs by the comments in the code) understands wtf it's doing.

    • @jfftck
      @jfftck 7 місяців тому

      @@astrixx If abstraction is your issue, then you should consider writing your code in Assembly, which is very platform dependent. All programming languages are written as abstractions and you can’t really remove that if you want to port them to different platforms, the problem will always be present at some point - even if it is just a bunch of functions, someone will turn those into an abstraction layer for their project, but now there isn’t any team that is tasked to maintaining the integrity of that code and the likelihood that many individual abstractions will fail is higher. So, it’s better to take the lesser of two evils, or maybe do the Python approach, where the low level code is available, but it’s recommended to use the higher level abstraction in most projects - you can look at the the packages in the os library as one of the best examples, this could be taken all the way down in a library for writing programming languages.
      Just remember that every language is a trade off between simplicity and deep control of the hardware, so most are extremely abstract and the complexity in undoing those abstractions will be messy.

    • @g13n4
      @g13n4 6 місяців тому

      @@astrixx I completely agree. The desire to abstract everything and utilise generics as much as possible leads to a code that's both unreadable and unmaintainable

  • @alexandersuvorov2002
    @alexandersuvorov2002 Рік тому +67

    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.

    • @dumbfailurekms
      @dumbfailurekms Рік тому +7

      relax buddy you were what? 4 yrs old during the old days

    • @Muzzleflash1990
      @Muzzleflash1990 Рік тому +8

      There is nothing obscuring about it. In fact, people are accusing it of the opposite, of showing an include dependency graph - giving more details they don't feel they need or is useless. If you go read the auto-generated reference documentation then don't be surprised you find reference documentation. Which almost always implies that only parts of it will be useful because usually you only to the reference looking for specifics.
      Admittedly this is not a pretty (auto-generated) graph, but for any C++ developer it obvious what it is (since it says next to it). If one is perusing the *reference documentation* and *not* looking for an include graph then one wouldn't bother spending time on it. Blow spent more time laughing on this than there most likely ever was spent CPU time on generating the page.
      I don't know the context from this clip. But if the idea was to learn how to use this Command Line API, then one does not go the reference documentation, but rather documentation actually meant to teach usage, like llvm.org/docs/CommandLine.html#quick-start-guide .. (okay, probably not command line, but codegen flags, but then reference doc is generally the last and not first place to go).

    • @thewhitefalcon8539
      @thewhitefalcon8539 Рік тому +7

      This documentation was produced by people whose job is to make documentation look impressive.

    • @alexandersuvorov2002
      @alexandersuvorov2002 Рік тому +3

      @@dumbfailurekms That “new school” of programming started like 10 years ago or something. Most of it is just extreme hype over some basic concept or idea. And obviously documentation is not there when you want to do something complex beyond glorified demos. I figured out just to do things my own way with barebones programming language - it’s faster and stress-free. Shitty libraries and documentation is not my problem.

    • @alexandersuvorov2002
      @alexandersuvorov2002 Рік тому +2

      @@thewhitefalcon8539 There is so, so many shitty production code out there just because dev’s were not able to figure out how to use certain platform ans just “patched” things together and released just to get this shit off their shoulders. This is modern day programming, nobody cares about quality, the code is barely operational.

  • @SurrogateActivities
    @SurrogateActivities Рік тому +32

    rare jblow laughing moment

    • @insidiousmaximus
      @insidiousmaximus 7 місяців тому +1

      He is literally always laughing in every video

  • @IkeFoxbrush
    @IkeFoxbrush 11 місяців тому +17

    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.

    • @MightyAlex200
      @MightyAlex200 11 місяців тому +6

      yeah, and the url is clearly visible in the video. im not sure why more people didnt check. its a stupid graph but it doesnt speak at all of the code quality. maybe people are just looking for a reason to get mad

    • @sullivan3503
      @sullivan3503 11 місяців тому

      @@MightyAlex200 How is it even a stupid graph? Because the indegree of some of the nodes is a bit high? Many graphs of such complexity that they are actually useful is bound to have an indegree like that!

    • @Erik-cl5ff
      @Erik-cl5ff 11 місяців тому

      100% agree with you.
      This video is an irony of the exact thing he is complaining about. Holy hell.

    • @Erik-cl5ff
      @Erik-cl5ff 11 місяців тому

      @@TootNZ Fully agree with you.

    • @chromosundrift
      @chromosundrift 9 місяців тому

      I check the URL but the graph does not automatically show. How do I get that graph to appear?

  • @zhulikkulik
    @zhulikkulik Рік тому +41

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

  • @sprytnychomik
    @sprytnychomik Рік тому +22

    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).

    • @oren2234
      @oren2234 11 місяців тому +1

      microservices and singletons, found the OOP corporate slave

  • @alexvitkov
    @alexvitkov Місяць тому +4

    I'm still waiting for someone to write better codegen than LLVM :)

  • @salim444
    @salim444 9 місяців тому +3

    "a picture is worth a thousand words" well a messy diagram is worth a thousand spaghetti sauce

  • @stephenkentperez7705
    @stephenkentperez7705 11 місяців тому +3

    Knees weak, arms are heavy...

  • @zuma206
    @zuma206 6 місяців тому +4

    smallest javascript dependency graph

  • @Powerofthepickle
    @Powerofthepickle Рік тому +15

    lol did they delete it after this? I don't see it on the page

    • @Casgen
      @Casgen Рік тому +4

      I think so, i dont see it too. You can see it in the wayback machine though

    • @BlowFan
      @BlowFan  Рік тому +7

      I actually had to use Wayback Machine in order to find it. I wanted to use it for the thumbnail. It's those blue lines in the thumbnail.

  • @shroomer3867
    @shroomer3867 11 місяців тому +5

    "AI will replace us!"
    What AI code will look if it were unchained without little to no programmers:

    • @lepidoptera9337
      @lepidoptera9337 9 місяців тому +1

      AI code will look much, much worse. AI will, for instance, constantly invent new communication protocols. Instead of standardizing, it will constantly obfuscate.

    • @Titere05
      @Titere05 5 місяців тому

      @@lepidoptera9337 Not to mention it'll constantly do stupid shit no one asked for because it's an effing prediction machine not an intelligence

    • @waltwhite8126
      @waltwhite8126 5 місяців тому

      @@lepidoptera9337 in time AI will code quality might trend downwards, since it will train using public repositories like github and in time more and more AI generated code will be in those repos, so it will feed itself the garbage code it produces.

  • @香烤麻糬球
    @香烤麻糬球 11 місяців тому +5

    Oh Jesus they built a NEURAL NETWOKR!

  • @supernewuser
    @supernewuser Рік тому +51

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

    • @oncetwice6366
      @oncetwice6366 11 місяців тому +9

      Not relevant

    • @seriouscat2231
      @seriouscat2231 9 місяців тому +3

      What makes you think he doesn't?

    • @ZeroPlayerGame
      @ZeroPlayerGame Місяць тому

      They did write the source file for this royally useless graph.

    • @supernewuser
      @supernewuser Місяць тому

      @@ZeroPlayerGame more likely the diagram was generated automatically based off of the project source code

    • @ZeroPlayerGame
      @ZeroPlayerGame Місяць тому

      @@supernewuser yeah but it's still pretty useless (just like your average doxygen). Though I too am puzzled by the intensity of blow's reactions

  • @LargeTurn1p
    @LargeTurn1p Рік тому +1

    2:15 "You do not understand the whatever whatever factorialization of the subclass..."
    eminem been real quiet since this one dropped

  • @chromosundrift
    @chromosundrift 9 місяців тому +1

    Q: Is he critiquing the graph generation logic or the code that is described by that graph?

    • @lepidoptera9337
      @lepidoptera9337 9 місяців тому +1

      Both, hopefully. Code that looks like the above is not manageable. There is no serious problem in the world that requires a convoluted solution like that.

  • @user-hz4tc2pf3x
    @user-hz4tc2pf3x 10 місяців тому +2

    This one really got him 💀

  • @RNMSC
    @RNMSC 11 місяців тому

    It almost looks like they were attempting to represent code as a wiring diagram for a neural net, and forgot to color code the wires.

  • @om3galul989
    @om3galul989 Рік тому +7

    That's horrible cable management.

  • @rexxpowercolt
    @rexxpowercolt 19 днів тому

    LMFAOOOO The map almost looked 3D!! We need three dimensions to untangle this mess

  • @dfx81
    @dfx81 Місяць тому +1

    That's a literal spaghetti code.

  • @alexkuhn5078
    @alexkuhn5078 11 місяців тому +1

    "it would still be unreadable, but it would be less unreadable"

  • @patrykcelinski2413
    @patrykcelinski2413 11 місяців тому +1

    They never heard about Miller rule that humans can focus on 7-10 things at time. For IT/CS people it implies that a single diagram should never have more than 7-10 components or the client or your team or whoever that you explain system to may have problems of understanding it. Always split huge diagram into small ones.

  • @cfffba
    @cfffba 11 місяців тому +3

    Blow could of course refactor the whole LLVM into four or five simple, very easy to understand classes. If he wanted to.

  • @poutineausyropderable7108
    @poutineausyropderable7108 11 місяців тому +2

    Who's THEY.
    WHAT'S THE CONTEXT!

    • @williamdrum9899
      @williamdrum9899 5 місяців тому

      They - computer science professors and experts

  • @hmmmidkkk
    @hmmmidkkk 10 місяців тому +3

    Now this is REAL speghetti code 😂

  • @leshommesdupilly
    @leshommesdupilly 7 місяців тому +2

    I don't understand what's wrong. I'm in biology and I work with graphs like this every day

  • @AbelCableTV
    @AbelCableTV Рік тому +4

    it's drawing time

  • @orbik_fin
    @orbik_fin 5 місяців тому

    Include (or import) dependencies are IMO one of the strongest arguments against using text files as source code. A file is an artificial grouping of symbol definitions and creates lots of unwanted dependency sprawl.

  • @Titere05
    @Titere05 5 місяців тому +8

    It's funny to read the lofty academic debates down here when it's clear most people (myself included) are unsure what exactly Jon is criticising here. The automatic diagram generation? The complexity? The imports? That some dude actually thinks programming is doodling a line with a marker around some boxes? Is this complexity even relevant to anyone? Who knows, but I'll just interpret it however I like it the most and plaster my rant here

    • @olzhas1one755
      @olzhas1one755 4 місяці тому +1

      Welcome to the post-truth society.

    • @ZeroPlayerGame
      @ZeroPlayerGame Місяць тому +2

      I think he's criticising the usefulness of this graph.

  • @p99chan99
    @p99chan99 11 місяців тому +9

    Isn't visual programming a thing? instead of writing code you connect a bunch of nodes together? kind of like Scartch, Unity, or Unreal Engine?

    • @recursiv
      @recursiv 11 місяців тому

      Yes, and some of it is bad, just like some text-based programming is bad. This graph technically contains a lot of information, but none of it use usable for a human.

    • @terryriley6410
      @terryriley6410 11 місяців тому

      When writing code you connect a bunch of characters together. It isn't all that different. The good thing about node based is that syntax errors doesn't exist, the bad thing is that nodes and wires take up a lot of space.
      In the future we will have a middle ground, a code editor where you will be able to write code without the ability to express either syntax or even type errors.

    • @BoardGameMaker4108
      @BoardGameMaker4108 11 місяців тому +1

      Visual programming is a thing but it is normally a very bad idea because it leads to confusing spaghetti like this. The only reason to use visual programming is if you don't understand text. It's generally much quicker to type than it is to draw the same thing (and you can fit more on the page when it's typed). This video isn't about visual programming though, just a diagram of the codebase.

  • @DasHeino2010
    @DasHeino2010 Місяць тому

    The DOM can hurt you!
    The DOM of an Alien browser:

  • @liquidsnake6879
    @liquidsnake6879 10 місяців тому +1

    It's not just "look at the documentation" in this case, it's reserve a whole week, prepare various jugs of coffee, get a notepad and a pen, and plow through this nonsense we've left you

  • @ArtoPekkanen
    @ArtoPekkanen 11 місяців тому +2

    This is why I hate many highly advertised/popular software ... libraries, frameworks, you name it. Many big name doodads have garbage documentation, auto generated mess plus a few "cookbook examples", and when you cannot fucking get productive trying to follow that shit and ask around, you get told you are stupid. Why cannot we have proper documentation that contains actual prose explaining the semantics, and not only list APIs with comments? Maybe too much to ask goddamn.

  • @-Engineering01-
    @-Engineering01- Рік тому +1

    Keep this channel active bro pls !

  • @KunjaBihariKrishna
    @KunjaBihariKrishna Рік тому +2

    The tofudreg of information technology

  • @vladalex9556
    @vladalex9556 Рік тому +10

    his laugh 😂😂😂😂

    • @alejmc
      @alejmc Рік тому +2

      Exactly hahah, I couldn’t help but join in. Legit laugh.

  • @Rotwold
    @Rotwold 24 дні тому

    Why did they not structure it as an operational flowchart? How is this useful? There's must be a loop that you could use to illustrate the relation between each node

  • @juha-petrityrkko3771
    @juha-petrityrkko3771 11 місяців тому +6

    I solve problems like this with my homemade software that creates zoomable, rotatable colour-coded 3D connection models. It has arrow merging, too, if the 3 dimensions are not otherwise sufficient to facilitate legible geometries.

  • @imjustsaiyan7450
    @imjustsaiyan7450 11 місяців тому

    Last time I made something that looks like that my cheap biro was refusing to work.

  • @albingrahn5576
    @albingrahn5576 10 місяців тому +2

    it's just a graph, auto-generated for the reader's convenience. if you don't like this way of displaying the information then just don't look at it lol? there's lists displaying the same information a bit further down

    • @lepidoptera9337
      @lepidoptera9337 9 місяців тому

      What, exactly, can you see in this mess? Absolutely nothing. It violates everything we know about how the brain processes information AND everything we know about how computers should be processing information.

  • @guxershmeg
    @guxershmeg 11 місяців тому +1

    I calculated only about 60 objects. Not so complicated compared to our projects. We have like 7 stages inheritance chains.

  • @bitskit3476
    @bitskit3476 11 місяців тому +15

    John's reaction on the graph reminds me of this discussion I had with my roommates the other day. I'm in electrical engineering, one is in industrial engineering, one is in chemical engineering, and the fourth is in biological engineering. One of them made a joke that if we combined our collective brainpower, we might be able to solve a three-body diagram. I legit went into an almost 10min long fit of laughter.

    • @heliumcalcium396
      @heliumcalcium396 11 місяців тому +4

      It sounds as if you could write a lot of good jokes with that premise. Have the four of you ever gone fishing? Or rock-climbing? Or tried to assemble IKEA furniture?

    • @shroomer3867
      @shroomer3867 11 місяців тому +1

      Please tell us what happens when you four enter a bar

  • @111111222223
    @111111222223 11 місяців тому +2

    I can't tell whether you are making fun of the guys that wrote the code the graphic was generated from or the guys that wrote the graphic generation.

    • @iestynne
      @iestynne 6 місяців тому

      well why choose

  • @fubifwjdfubifwjd5167
    @fubifwjdfubifwjd5167 10 годин тому

    And then we slam AI on top of it ! WA-BAAM ! Problem solved !🤣

  • @AbAb-th5qe
    @AbAb-th5qe 20 днів тому

    FUCKIN' 'ELL! 😂

  • @carriagereturned3974
    @carriagereturned3974 5 місяців тому

    Elon Musk: "Good part is no part"
    Programmers: ...

  • @pvc988
    @pvc988 Рік тому +3

    Graphviz hell. BTW. This is not that bad. Have you seen diagrams generated by Yosys?

  • @jessedejesus6632
    @jessedejesus6632 Місяць тому

    i dont get it. it is probably because i am still learning how to. print(factorial(5)) that is all i know.

  • @usernamesrbacknowthx
    @usernamesrbacknowthx Рік тому +18

    puzzle game developer rants about actually useful and complex software and there are 150 meatriders in the comments who learned how to install linux 2 years ago parroting him like they're L8 engineers from AWS

    • @defeqel6537
      @defeqel6537 Рік тому +9

      Yup, the Dunning-Kruger here is astonishing, especially from commenters, but JoBlow too. I doubt most commenters here have done anything more complex than a CSV parser, or a basic web server.

    • @nerdError0XF
      @nerdError0XF 11 місяців тому +5

      It's funny how you specifically call him "puzzle game developer" to disregard his 30 years of programming experience, including some noticeable achievements (which are hard to underestimate, like making a programming language, and making multiple critically and commercaly acclaimed games (one of which is 3D 1st person open world), from ground up, without any game engine)
      You definetly have some similar amount of experience to talk like that, right?

    • @usernamesrbacknowthx
      @usernamesrbacknowthx 11 місяців тому +9

      @@nerdError0XF Yes.

    • @ribethings
      @ribethings Місяць тому +1

      @@nerdError0XF being a good game designer doesn't make someone a good programmer

  • @killazaawl
    @killazaawl 11 місяців тому

    i don't consider myself a programmer, however, i had to correct code of people that i consider less experienced & knowledgeable. one of the quirks i came across was they constructed loops by goto/jump, and got lost track of.. everything. i'm pretty sure an execution visualization would look something like this.

    • @lepidoptera9337
      @lepidoptera9337 9 місяців тому

      Your computer doesn't have binary instruction codes for "for" and "while". It's all branch instructions, i.e. "goto". If you are still at the level of "OMG, there is a "goto" in the code, so it's all evil", then you don't understand what is really important.

    • @killazaawl
      @killazaawl 9 місяців тому

      we're not writing assembly. i'm complaining about chucklefucks placing code blocks only accessible by jumps at random places then not being able to read and debug their own mystery soup after it's not working. go patronize someone else.

  • @wha182
    @wha182 Місяць тому

    bro theres a fucking spaghetti code

  • @diggerkropkapl
    @diggerkropkapl Місяць тому

    This diagram reminds me of planning your attack in the game defcon to annihilate your enemy with ncbm's

  • @bugothecatplays7864
    @bugothecatplays7864 9 місяців тому

    When Jonathan started laughing manically, I thought of a crossover with Terry from TempleOS for some reason. I'd think of Terry's voice asking "is that programming *slur word*" and "they glow in the dark". There is something about being the outcast criticising the whole software industry on how they do stuff and you doing things in your own way while laughing hysterically on how things have become.

  • @stevecarter8810
    @stevecarter8810 11 місяців тому +1

    This is what happens when you give graph viz dot any kind of complexity to render. Useless for visualising the graph, ironically

  • @RomanKnav
    @RomanKnav 6 місяців тому

    poor spaghetti didn't deserve to be roasted that bad

  • @buoyancydabl
    @buoyancydabl 11 місяців тому

    Spending 5 hours on making the game but something causing stack overflow.
    Trying to find the problem for about 2 years because there is so many lines that it can reach the moon easily.

  • @Apocobat
    @Apocobat Рік тому +1

    Bad documentation has got to be something you get judged for at the pearly gates

    • @nerdError0XF
      @nerdError0XF 11 місяців тому +2

      Bad documentation on what? The programming language he hasnt done yet and which is in closed beta? Yea right, he should definetly focus on docs right now, very important

  • @Mjjn74
    @Mjjn74 9 місяців тому +1

    It looks like the milky way.

  • @BusinessWolf1
    @BusinessWolf1 Місяць тому

    Blueprint work is engineering, programming is engineering, therefore blueprint work is programming.

  • @henrikholst7490
    @henrikholst7490 3 дні тому

    So this is the code that handles Command line arguments.....?

  • @jonathanmoore2139
    @jonathanmoore2139 11 місяців тому +11

    Literal spaghetti code

  • @peezieforestem5078
    @peezieforestem5078 Рік тому

    Where is the end music from?

    • @peezieforestem5078
      @peezieforestem5078 Рік тому

      Nevermind, I found it: It's the Beginner's Guide OST - Lecturing.

  • @Mike.Garcia
    @Mike.Garcia Рік тому +1

    that's what dogmatic belief looks like

  • @The-cyber-imbiber
    @The-cyber-imbiber Рік тому +22

    Maybe these "elitists" don't want you to understand their systems. If you did, then they wouldn't be special anymore.

  • @shortcat
    @shortcat Рік тому +1

    programming is like gaming, but programming

  • @jouby3109
    @jouby3109 16 днів тому

    that shit looks like an infinite craft screenshot

  • @alfonzo6320
    @alfonzo6320 9 місяців тому

    you should link a tutorial on how you would fix that.

  • @MalushJ
    @MalushJ 10 місяців тому +1

    where is the meatballs and the tomato sauce?

  • @fk3239
    @fk3239 Рік тому +1

    I don't know what's going on here, who Blow is, or why this is in my recommendations, but man I do know I could go for some spaghetti right about now.

  • @OJeyjunior
    @OJeyjunior 11 місяців тому

    the thing about that flowchart is either programing is WAY simpler than that OR 100 times harder... depending on your level of detail... they missed both

  • @vosdraug4628
    @vosdraug4628 6 місяців тому

    The definition of spaghetti code.

  • @FizzleStudiosLtd
    @FizzleStudiosLtd 11 місяців тому +1

    Love it or hate it this is how young people are being exposed to programming (i hate it). Programming used to be done by punch cards. It's one positive trait is that it is a decent way to explore concepts with minimal syntax with immediate visual cues. Whether or not this type of programming has merit or not is irrelevant; Young people are using these tools.

  • @robrick9361
    @robrick9361 Рік тому +3

    I guess Jon Blow doesn't like spaghetti.

  • @ReedoTV
    @ReedoTV 5 місяців тому

    I had to read the UML spec and I must justify that

  • @carriagereturned3974
    @carriagereturned3974 5 місяців тому

    nowadays internet is for looking "how not to program"

  • @coderman2754
    @coderman2754 Рік тому +13

    Have you seen any real production system? All of them look like this if they actually achieve something complex. Visualizing like this doesn't make any sense, ofc it looks bad....

    • @mecanuktutorials6476
      @mecanuktutorials6476 Рік тому +3

      This shows how disorganized the management and execution of the project were. The architecture is obviously atrocious if this is the result.

    • @dumbfailurekms
      @dumbfailurekms Рік тому +6

      @@mecanuktutorials6476 I'm sure you're saying that based off your years of experience in state of the art companies like Apple Tesla & Rabbit.tech and not just out of Blow's ass and onto your tongue

    • @usernamesrbacknowthx
      @usernamesrbacknowthx Рік тому +9

      lol obviously they haven't seen any real production system. commenters here haven't programmed anything with more than 100 lines of code because they're too busy hanging out on discord tweaking their vimrc and i3 configs

    • @defeqel6537
      @defeqel6537 Рік тому

      At least all the arrows seem to point down, so probably no circular dependencies here, which is more than I can say for many other projects

  • @alex-u3k4w
    @alex-u3k4w 11 місяців тому

    What even is that? I can see LLVM but the rest is too blurry on my screen

  • @1schwererziehbar1
    @1schwererziehbar1 Рік тому +37

    This is just an automatically generated documentation.
    They put their source code through a program which creates a documentation for it, and part of it is a function call graph, which sometimes is helpful and often not.
    This is still better than writing the documentation manually, because then you forget to update things.

    • @etodemerzel2627
      @etodemerzel2627 Рік тому

      Did you mean to say hellful or helpful? (:

    • @921Ether
      @921Ether Рік тому +12

      what, did you even think one second before you wrote this?

    • @bloody_albatross
      @bloody_albatross Рік тому +3

      I can't imagine when a graph of include files like that would ever be useful, even if it's readable. A list of all direct includes and maybe a second list of all indirect includes is useful, but idgaf about those graph relationships in-between.

    • @semyaza555
      @semyaza555 Рік тому +6

      I don’t think you thought this through big dog.

    • @KunjaBihariKrishna
      @KunjaBihariKrishna Рік тому

      Thanks, I will sleep better now

  • @thedopplereffect00
    @thedopplereffect00 11 місяців тому

    Basically every project I've ever been on :(

  • @jamesclark2663
    @jamesclark2663 11 місяців тому

    Looks like the documentation graph for SAP.... not even joking.

  • @零云-u7e
    @零云-u7e 11 місяців тому

    Not even docs. I'm gonna need you to make one of those wizard step thingies. The manpage is like 4gb

  • @SheelByTorn
    @SheelByTorn 11 місяців тому

    no way! it's LLVM?! 😂😂😂

  • @extantsanity
    @extantsanity 11 місяців тому +8

    I totally get the general sentiment that this spaghetti stuff is unreadable, but his laughing isn't illuminating or productive. Worse, it remains entirely possible (however improbable) that there is a lot of wisdom in the diagram that just hasn't been explained properly through the documentation. This reminds me of a TED talk where Eric Berlow shows how you can drastically simplify a complex food chain in an ecosystem by focusing on "nodes of influence" -- that is, by both grouping similar vectors and then prioritizing the ones which have the most impact. My favorite line is at the end: *"[What we found is] the more you step back and embrace complexity, the better chance you have of finding simple answers -- and it's often different than the simple answer you started with. So, for any problem, the more you can zoom out and embrace complexity, the better chance you have of zooming in on the simple details that matter most."*
    ua-cam.com/video/UB2iYzKeej8/v-deo.htmlsi=kG_Vu6CsEG2sthv0