Email or username:

Password:

Forgot your password?
Andrew Kelley

when a C/C++ programmer says "no dependencies" it means they have copied unknown versions of various dependencies into a particular subdirectory of their project.

you can learn a lot about the author's personality by what directory name they choose.

"vendor" -> web developer adjacent
"deps" -> uncomfortably self-aware
"thirdparty" -> unskilled grifter
"common" -> sneaky

24 comments
Andrew Kelley

alternate joke:

what they say: no dependencies
what they mean: over half of the project's line count by volume was written by Sean Barrett

#<SB-PCL:SYSTEM-CLASS SJOLSEN>

@andrewrk alternate alternate joke: the library is a single header containing 300 kB of templates

Kristófer Reykjalín

@andrewrk love the implication that C/C++ developers as a whole are sneaky, self-aware, unskilled web developers :blobcatgiggle:

Redfire

@andrewrk What about third_party (Chromium), not to be confused with thirdparty?

Andrew Kelley

@redfire they don't seem to be in denial about whether they have dependencies

d@nny "disc@" mc²

@andrewrk this is why the us dept of energy has spent over a decade building up @spack! we can't let highly paid scientists in the federal government be held back from their science work by having to solve little microtransactions of DLL hell every time they want to just focus on their own c/++ code for once! higher standards of practice that avoid sequestering expertise are out there!

d@nny "disc@" mc²

@andrewrk we use the clingo ASP logic solver; i believe c/++ ABI compatibility is a much more complex and appropriate use case for a 3rdparty logic solver than smaller ecosystems like pip/npm/cargo, and was looking to translate dependencies across tools/ecosystems

d@nny "disc@" mc²

@andrewrk i have begun some of this investigation with spack-rs, which is used to bootstrap c/++ deps for e.g. re2 and my hyperscan package

📄 Mehdi.doc

@andrewrk you forgot "ext" and "extlibs"

or another sneaky and means harm: "include"

Wanja

@andrewrk Java folks will do this but just put the .jar in there in cold blood.

Canageek

@andrewrk Heh. I'm not a programmer, but the only program I know to make that claim is written in Fortran, and the first version came out in the early 70s (major rewrites in 1997 and 2010), so I believe him, since who's code was he going to copy in the early 70s? It was distributed by mailing boxes of punch cards to you!

Haelwenn /элвэн/ :triskell:
@Canageek @andrewrk Well I'm the kind of person that documents the required toolchains as part of dependencies, so at least one fortran compiler and probably some kind of OS (which typically comes with some libraries but not all of them standard).
grayrattus

@andrewrk well with #C and C++ projects I don't really care. As long as it compiles with one command, has all dependencies and starts without #SegFault feel free to copy/paste whatever you want.

But if you do it with #Rust the crab will hunt you down. Period.

Csepp 🌢

@grayrattus @andrewrk Problem is that C libraries have a habit of having unknown vulnerabilities in them that are eventually discovered. All libraries, really, but C especially.

Howard Chu @ Symas

@andrewrk Sounds more like a C++ thing. They also seem to have a fondness for "header-only, no-install" libraries. I think Boost used to be in this category but now you can't get away without installing some compiled libs anyway.

LMDB is in C and has no other dependencies besides libc.

Jons Mostovojs

@andrewrk I think under these definitions, I'm a straight-up thief?

I have copied Base58 implementation once into a file called "base58". (Obviously, putting a comment that I stole this code into the file, attributing, complying with licenses).

Acid Bong

@andrewrk "vendor" is also used in Android dev, but it refers to firmware

Grigory Shepelev

@andrewrk lawful good, lawful neutral, chaotic neutral, neutral evil

Go Up