Friday, September 01, 2006

Threading support from Microsoft

I just read an introductionary article about LINQ. There are some things that I like and there are some things that I don't like. Big deal, you would say: get on with your life! I will post some of my thoughts on LINQ, DLINQ and XLINQ in the near future.

The thing that bothers me the most about LINQ is why Microsoft is putting so much effort in something that is not that innovative. I mean, we already have NHibernate. If I want to use an O/R mapper today, than this would be it. I know, I know, the LINQ initiative is more than just an O/R mapper. I agree. On the other hand, if I wanted to use an O/R mapper then I will not wait until LINQ is released (somewhere next year I believe).

What I would like to see from Microsoft in the not too distant future, is some better support for multithreaded applications. I mean, the dual-core processor is a fact. Quad-core processors are released somewhat near the end of this year. As a developer, I would like to keep developing killer applications. In order for me to do that, I need a way to target all the processors of the production machine using multiple threads.

Jeffrey Richter (who is the multithreading guru) always advised programmers to only use multiple threads when there is absolutely no other way to solve the problem. This is very much true on single processor systems.  But now, you have to recognize, that in order to write applications with great performance, multithreading has to come to the masses.

Those of you who have read CLR via C# know that the System.Threading namespace is a disaster, especially the ReaderWriterLock. This is why that Jeffrey has created his excellent Power Threading library.

But hey, don't I read MSDN Magazine. Yeah, I read MSDN magazine and I especially like the Concurrent Affairs column. Wouldn't miss it for the world. The latest edition of Concurrent Affairs describes the Concurrency and Coordination Runtime. I like the CCR's architecture and object model. Nonetheless, I'm displeased that it is nicely tucked away in Microsoft Robotics Studio. This stuff must be released in the next major .NET release. Advice to Microsoft: give the guys who invented the CCR a huge raise an put them in charge of the System.Threading namespace as soon as possible.

The thing I'm now looking at is the Threading Building Blocks from Intel. I know, they are the ones who will benefit from a quick adoption of the multi-core processors. This library from Intel is a C++ Runtime library. Can you imagine that I have to go back to C++. I wouldn't mind actually, I love C++. But I'm just hoping that Microsoft is going take some initiatives on this matter very soon.

I would like to hear some other thoughts and by this I mean your thoughts. So, comment away.

2 comments:

Bl4ck 4ngel said...

It's strange not so long ago, you hated to type bug reports in English and now you are posting your blog in a fluent English. Did you took some course?

Jan Van Ryswyck said...

Some people get wiser and more pragmatic when they grow older. I just love the spelling checker of Windows Live Writer ;-).

PS: I still write my bug reports in dutch.