this post was submitted on 08 Jun 2026
299 points (98.7% liked)

Programmer Humor

31836 readers
549 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 3 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] andicraft@lemmy.blahaj.zone -4 points 1 week ago (2 children)

nobody should have to use c++ anymore now that rust and zig exists

header files are an invention of the devil

[–] Alvaro@lemmy.blahaj.zone 4 points 1 week ago

Header?? I barely know her!

[–] Valmond@lemmy.dbzer0.com 1 points 1 week ago (2 children)

Header files are a thing of beauty! Languages that can't abstract away definitions suck (or are like script languages, which is fine for scripting).

[–] jjj@lemmy.blahaj.zone 1 points 1 week ago (1 children)

What do you mean by "abstract away", and what about it is exclusive to headers?

Eg most languages have something like a trait or interface wherein you can put a list of definitions (optionally with a default aka "inline" implementation) which are then actually implemented elsewhere. This is considered useful by everyone because it allows multiple implementations to be associated with 1 name. They are generally not desired in cases where only 1 implementation will ever be written.

AFAIK the only use case where headers accomplish the same is if they're treated as documentation for an API that could be implemented by any library.

Admittedly certain programming styles benefit immensely from headers, despite the drawbacks to "design as you go" programming.

[–] Valmond@lemmy.dbzer0.com 1 points 1 week ago

I like c/c++ headers because you can put the "code" in one file, and use the header file in your others where you need access to that code. And you can do that on a compile level. No need to for example compile a c# library that you'll then use.

In c# (for example) you'll include all the code in another file, when you just need one function. In c++ you include only all the definitions, if that makes sense.

In c# it quickly becomes a garbled mess IMO.

Sure, you can make libraries, but make libraries for every file? That's not optimal either.

So I guess I like it as it lets you split up code on a lower level, very convenient IMO.

[–] andicraft@lemmy.blahaj.zone 1 points 1 week ago (1 children)

definitions shouldn't be split into multiple places and i will die on this hill

[–] Valmond@lemmy.dbzer0.com 1 points 6 days ago

What do you mean? For me, a definition is declared once, in its entirety, and that's it.

Declaring it in several places makes no sense of course (for me at least) just include the header and voilà!