Compilation time vs. C++

Thanks for the suggestion, I have thought along these lines as well. That is much boiler plate code and indirections for little gain. With current tooling navigating OOP code is already a challenge sometimes, even if it is kept simple with small and shallow class hierarchies.

On a side node, a few years ago, somebody suggested a two-pass compile step for gfortran. First pass creates mod files and needs to respect dependencies. Second pass really compiles the code and can be done fully parallel. However, with my profiling numbers of gfortran in mind, this might not be that fast, as compiling and code generation was the smaller part in larger projects. Handling the huge symbol tables was what killed the performance, and that would be not much different with such a two-pass approach.

The speed of compilation is essential in my opinion and I have spent a lot of time designing LFortran to be as fast as possible. Things that LFortran can already compile are very encouraging (from the speed of compilation perspective), but we have to see once we bring it from alpha to beta, then we can try it on real codes.

For Fortran, it seems usually the compilation is fast enough. The slow down stuff is in linking.