• jjj@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    1
    ·
    11 hours ago

    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
      link
      fedilink
      arrow-up
      1
      ·
      1 hour 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.