Looking at what æscling and Bumby are talking about and thinking "wow, JavaScript is a big mess", but also, that's probably inevitable for anything that has been actively developed for more than 20 years...
I'm sure that there are corners of C that are also a big mess? Not sure what exactly they would be, though...
@wallhackio @vaporeon_ well namepsace pollution is purrevented by #ifndef guards but the compiler still has to read the entire header file, even if the entirety of the content is guarded as therefur won't be inlined because it's being read a second or third or tenth time. now imagine deeply nested include chains repeatedly inlining the same header files over and over again
@wallhackio @vaporeon_ in the early days of go the development team credited their fast compile times to the fact that they had entirely banned importing a dependency twice
@aescling @vaporeon_ in C++ land you avoid this sort of thing with namespaces
In my work's C++ code everything, and I mean everything, was namespaced like nebula::ffph::doAlgo so that there were no namespace collisions
@aescling @vaporeon_ it was a pain in the ass to write and read but this is what industry standard c++ looks like
@aescling @wallhackio Just to make sure I understand you correctly: The preprocessor reads it again, removes all the parts between
#ifndefand#endif, but the pre-processor re-reading the file is still costly enough that a deeply nested chain is slow?