it is not so different, each module is compiled into its own obj file, which is then joined together, that IIRC is no different from the C / C ++ process
the main difference is that the import is symbolic and not the whole #include file, which eliminates the need for header files (although the option for .di header files exists for the closed-source API)
templates really should be included in files available for the compiler (for example, they should be in the header for C ++)
source share