← Back to context

Comment by uecker

1 day ago

I do not understand what you are tying to say, but it seems to be some hostile rambling.

Never meant to be hostile (if I indeed were, I would have question every single word), but sorry for that.

I mean to say that best practices do help much but learning those best practices take much time as well. So short compilation time is easily offseted by learning time, and C was not even designed to optimize compilation time anyway (C headers can take a lot to parse and discard even when unused!). Your other points do make much more sense and it's unfortunate that first points are destructively interfering each other, hence my comment.

  • Sorry, maybe I misread your comment. There are certainly languages easier to learn than C, but I would not say C++ or Rust fall into this category. At the same time, I find C compilation extremely fast exactly because of headers. In C you can split interface and implementation cleanly between header and c-file and this enables efficient incremental builds. In C++ most of the implementation is in headers, and all the template processing is order of magnitude more expensive than parsing C headers. Rust also does not seem to have proper separate compilation.

    • > I find C compilation extremely fast exactly because of headers.

      The header model is one of the parts that makes compiling C slower than it could be. This doesn't mean that it is slow, but it's fast in spite of headers, not because of them.

      > In C you can split interface and implementation cleanly between header and c-file and this enables efficient incremental builds.

      That's not what does, it is the ability to produce individual translation units as intermediary files.

      > Rust also does not seem to have proper separate compilation.

      Rust does separate compilation, and also has efficient incremental builds. Header files are not a hard requirement for this.

      3 replies →