
How Many Passes? (2010) - breck
https://blogs.msdn.microsoft.com/ericlippert/2010/02/04/how-many-passes/
======
skrebbel
I always wondered why the C# team chose to compile directly into assemblies.
One main (accidental?) advantage of Java's way is that each .java file is
compiled into its own .class file, which takes mere milliseconds.

The C# compiler is fast, but not millisecond-fast. You can code Java as if
it's interpreted code but with better editor support and great error messages.
Change the code, run the test or the program, bam, immediate feedback. With C#
it's always been change the code, wait a little, ok well just a little longer,
yay feedback. Those 5 seconds there really make a difference.

I assume there's a performance (or VM simplicity?) reason behind preferring
assemblies - after all, you can statically link method calls without needing
the JIT to do it for you. But it really hurts developer productivity. I wish
they had done both - .class files in debug mode and entire optimized
assemblies in release mode. Or something like that.

~~~
Guvante
Java puts strict naming standards on your files to pull that off, although to
be fair they are standards you should normally be following anyway.

IMO the fast performing code is best in the IDE's compiler, since that is even
faster than a build in most cases.

Overall I think the .NET whole assembly building is at very least an
interesting industry level example of something different that the common per-
file build model used.

