I think the open source stack alternative is getting a bad rap here mostly because of MySQL, which has historically not scaled well on multi-CPU systems.
C# is certainly faster than a Python or Ruby but you pay a price in development speed (or perhaps Joel would argue not - if you're a C# expert but Ruby newb you'll probably go faster with what you know).
But you could use Clojure or Java if that's a concern.
Writing C# is pretty darned pleasant. In fact, some things - like sequence filtering and aggregations (which a lot of plumbing code boils down to) - are much more pleasant in C# than they are in Python. Lots of sugar in C# keep you from missing things like language integrated dicts and lists, too. C# brings home a lot of concepts from the world of static functional languages that give me the warm fuzzies, and drops a lot of concepts from the world of Java that made me feel icky and gross.
Due to the easy, abundant libs, I would still go to Python for hacking something together. I would probably seriously consider C#, though, for something more substantial.
C# is faster than Python, no question, however how much time do you really spend in your Python code? I don't think I've ever written a view that took more than a few ms to execute, with database queries being the slowest part by far.
If you're executing jobs that calculate things or other batch processes, you can compile them to C/C++ pretty trivially and have a 50x speedup, depending on your loads. Plus, PyPy is getting really, really good.
However, I am as biased as it gets, so take this with a grain of salt.
It'd be great if someone could explain to me why python with WSGI is "slower" than C# - I know C# is compiled to bytecode, but from what I've seen, websites are slow because of their I/O and database access, as opposed to the actual language processing things. Especially when some WSGI servers have insane performance in raw request handling (and can be proxied to via nginx). Where is it that C# can actually draw the advantages?
Python and Ruby code would likely win more beauty contest (which is actually kind of important to me) but, with the advent of C# 3 and 4, I don't think that there is much difference in expressive power. Not having a REPL still sucks though.
LinqPad[1] seems like a decent alternative to having a REPL. It can run anything from a C# expression to a full program. This is in addition to it's better-advertised use in debugging LINQ queries.
You get a poor man's REPL with the Immediate Window in the debugger. You can't create classes (or statements in general). but you can evaluate expressions.
The compiler rewrite that's meant to enable REPL (along with some cool metaprogramming features, I hope) isn't targeted at 5.0, but a still later release. Though you can get a C# REPL in Mono today.
Really? That sucks. (The post 5.0 thing sucks, not Mono). With REPL and Async (and the other metaprogramming stuff) I was thinking 5.0 was going to be their biggest release yet.
C# is certainly faster than a Python or Ruby but you pay a price in development speed (or perhaps Joel would argue not - if you're a C# expert but Ruby newb you'll probably go faster with what you know).
But you could use Clojure or Java if that's a concern.