Fog Creek Software
Discussion Board

Welcome! and rules

Joel on Software

How can MS use .net since it's not compliled?

.Net isn't compiled, so it can easily be reverse engineered. It's also not nearly as fast as compiled code.

So... how will Microsoft use .net in it's *own* programs?

(Or will they be accessing .net via c++ : uses the cool new UI features but not the organized name spaces of .net ?)

Mr. Analogy {ISV owner}
Monday, December 27, 2004

They can use this:

I read a while they are doing it to their core foundation classes, but my slashdot memory is notorious unreliable.

Li-fan chen
Monday, December 27, 2004

> It's also not nearly as fast as compiled code.
The code's fast, at times faster than C++/C. There are also optimization once the assembly has been installed and registered. However for one or more reason to tedious to rehash the invocation is expensive (nothing their OS architects can't unwrinkle). As soon as everything becomes DotNet this will change gradually.

Li-fan Chen
Monday, December 27, 2004

.NET *is* compiled. The source code is compiled into MSIL, and MSIL is then compiled (at run-time) into machine language.

You can easily decompile because full type information is embedded in the compiled assemblies. Has nothing to do with compiled or not.

Lastly, when you use C++ from .NET you will generate MSIL code as usual, with all type information and namespaces (what was THAT comment about!?) as usual. You can inject machine language sequences, however, and those aren't as easily decompiled as the .NET code.

Chris Nahr
Tuesday, December 28, 2004

> The code's fast, at times faster than C++/C.

Except when you're on a low-end machine, and it starts swapping due to the hugely increased memory consumption.

Then it's not quite as fast.

Tuesday, December 28, 2004

According to one benchmark, C# *is* slower than C++, although in most cases it's only about 10% slower. In some rare cases, it's about 300% slower (double math)

Mr. Analogy {ISV owner}
Tuesday, December 28, 2004

Yes, those factors agree with my own experience. Also, Python is really as slow as this chart shows... even with Psyco.

Chris Nahr
Wednesday, December 29, 2004

The interesting thing, of course, is how little it matters in some scenarios.

When you envision the multi-tier (physically) web environment, the execution speed of the code on the web site is unbelievably insignificant in the face of the network round-trip to the database. That's why .NET (and Java, and Python, etc.) are wholly appropriate options in the web environment.

Brad Wilson (
Saturday, January 01, 2005


Wouldn't the slow(er) speed mean that a server couldn't handle as many simultaneous users?

Thus your server cost would be higher (per simultaneous user)

Mr. Analogy {ISV owner}
Friday, January 07, 2005

Having written server-side software, my guess is that the answer is that server software costs more than server hardware.

For example:

1) Server software takes 1 person 1 year to write, at a cost of $100K
2) Writing in C# instead of in C++ reduces the development time by 25% (i.e. $25K)

The question then is, if C# software is slower than C++ software, can this slowness be compensated for by spending less than $25K on extra server hardware?

This is more true for server than for client software (the cost of upgrading 1 server hardware instance is less than the cost of upgrading 10000 client hardware instances).

> According to one benchmark, C# *is* slower than C++, although in most cases it's only about 10% slower.

I'd call 10% "negligible".

Christopher Wells
Tuesday, January 11, 2005

A database backed web application will almost always find its bottleneck is the database, not the speed of the code on the web server. That's my point.

Brad Wilson
Friday, January 14, 2005

*  Recent Topics

*  Fog Creek Home