Serious question: Is “Directed Acyclical Graph” really an unknown term for people? The author harped on it pretty hard, but what it is…is pretty apparent, no? I mean, I’ve encountered the term often, but I don’t think I had any need to look it up…
I’m a computer engineer with more than a decade of development experience with embedded systems… I use C/C++/python everyday and “Directed Acyclical Graph” is never mentioned by name, no one in my experience says make me a DAG. Hell, I had to look it up when I read your comment and went “oh that’s what those are called”. I use em to show relationships between states or to descide a system that is best diagramed using a DAG. Do I or anyone I’ve talked to in my career call them DAG… lol no.
Just like you don’t have to understand what a DAG is to use Git, you don’t need to understand a DAG to use Gradle. The author is blowing smoke about nothing.
It’s very well-known and common knowledge. It’s certainly something that I will talk about without feeling the need to define terms or something. I would assume anyone unfamiliar with it either didn’t pay attention in school or never went to school to begin with.
It’s never too late to learn about them. They’re super common in practice so it’s very helpful to know about them. A lot of things are a DAG, like tree data structures and dependency graphs. Having no cycles in a directed graph has a lot of nice properties too, like allowing one to use efficient graph traversal algorithms, topological sorting, or its transitive closure. It’s come up multiple times in my career so it’s definitely worth knowing imo.
They probably know what it is, but it’s a bad point if they’re trying to paint DAGs as esoteric CS stuff for the average programmer. I needed to use a topological sort for work coding 2 weeks ago, and any time you’re using a build system, even as simple as Make, you’re using DAGs. Acting like it’s a tough concept makes me wonder why I should accept the rest of the argument.
Can’t say I have a strong feeling about Gradle though 🤷♀️
Agreed. Why would a person need to look it up when the name literally describes it. Directed? Means connections are in a single direction. Acyclic? A-cyclic = non-cyclical, doesn’t have cycles. Graph is… well a graph.
Which part does the author think an average programmer should struggle with?
Serious question: Is “Directed Acyclical Graph” really an unknown term for people? The author harped on it pretty hard, but what it is…is pretty apparent, no? I mean, I’ve encountered the term often, but I don’t think I had any need to look it up…
I’m a computer engineer with more than a decade of development experience with embedded systems… I use C/C++/python everyday and “Directed Acyclical Graph” is never mentioned by name, no one in my experience says make me a DAG. Hell, I had to look it up when I read your comment and went “oh that’s what those are called”. I use em to show relationships between states or to descide a system that is best diagramed using a DAG. Do I or anyone I’ve talked to in my career call them DAG… lol no.
You also use Git everyday (most likely) and that mentions Directed Acyclic Graph (DAG) all over the place. https://git-scm.com/docs/user-manual#the-object-database
Just like you don’t have to understand what a DAG is to use Git, you don’t need to understand a DAG to use Gradle. The author is blowing smoke about nothing.
I thought this was basic CS 101, part of DSA
It’s very well-known and common knowledge. It’s certainly something that I will talk about without feeling the need to define terms or something. I would assume anyone unfamiliar with it either didn’t pay attention in school or never went to school to begin with.
I’m guessing I didn’t know what it is by name because I never went for a compsci degree so you’re probably right
It’s never too late to learn about them. They’re super common in practice so it’s very helpful to know about them. A lot of things are a DAG, like tree data structures and dependency graphs. Having no cycles in a directed graph has a lot of nice properties too, like allowing one to use efficient graph traversal algorithms, topological sorting, or its transitive closure. It’s come up multiple times in my career so it’s definitely worth knowing imo.
Yeah, I’d be pretty wary of a dev who needed clarification on DAGs…
I dont think the Dev who has the blog is unaware of DAG, he usually deal with CS stuff, i believe he was trying to make a point.
But who knows what he knows or doesn’t know, i am not his lawyer. In any case, there are a few valid points.
I never understood the hype behind gradle.
They probably know what it is, but it’s a bad point if they’re trying to paint DAGs as esoteric CS stuff for the average programmer. I needed to use a topological sort for work coding 2 weeks ago, and any time you’re using a build system, even as simple as Make, you’re using DAGs. Acting like it’s a tough concept makes me wonder why I should accept the rest of the argument.
Can’t say I have a strong feeling about Gradle though 🤷♀️
Agreed. Why would a person need to look it up when the name literally describes it. Directed? Means connections are in a single direction. Acyclic? A-cyclic = non-cyclical, doesn’t have cycles. Graph is… well a graph.
Which part does the author think an average programmer should struggle with?
Not by name at any rate
Programmer/devops here. Without looking it up, I don’t know what a DAG is. However, I’m guessing if I saw one, I’d recognize it.
…looked it up…
Immediately a dependency chart comes to mind