Saturday, October 30, 2010

C# 5.0’s async

Jesper:

Isn’t this just Microsoft catching up to computer science? In a way, yes. Not only could you have written this last week in Scheme, you could have written it last week in C#, assuming you’re willing to unravel the structure of your code into what the process requires. The point is that this is the first major language that I’m aware of to actually add support to unfurl your normal iterative code into callbacks using compiler support. In a world where the conventional wisdom posits that Microsoft is perpetually ripping off a Java that can’t even seem to grow some closures, I thought they deserved some credit.

If that’s the conventional wisdom, I think it’s wrong. Microsoft has done some pretty nifty language work over the past decade or so.

2 Comments RSS · Twitter

My point exactly.

For example, LINQ is 'just' Map and Reject writ large... except for the part where they made the metamodel of expressions and translated them into database (or whatever) calls. C# has iterators (see Python's generators) and Java doesn't. C# has mostly competent generics, and Java mostly doesn't. C# has extension methods and Java doesn't.

It's obvious that C# started out as something sewn out of Java-looking cloth. But the tendency to ignoring C# on the premise that it's entirely a poor Java-ripoff with no added bonus, prevalent in some camps but thankfully not everywhere, has got to stop. C# is a fine language.

[…] Previously: Swift: Challenges and Opportunity for Language and Compiler Research, Python 3.5: async and await, C# 5.0’s async. […]

Leave a Comment