Saturday, 26 May 2007

How to pollute C#

You can call me a purist but from my point of view the most valuable feature of C# is its consistency and explicitness. It seems that there are 2 teams at Microsoft that work on C#. One of them introduces great features like LINQ but the second one seems to support laziness of any kind and keeps introducing features that may(will) confuse software developers. Unfortunately it looks like the 'bad' team is not going to stop its activity. Their last idea which is called partial methods and is dedicated to code generator vendors smells like a C/C++ concept. Why? Because a partial method consist of method declaration(C++ header file) and method implementation(C++ cpp file). If you don't provide an implementation then the C# compiler will remove all calls to that method from your code! This means that your C# code that sits in a.cs file doesn't correspond to the C# code compiler sends to MSIL generator. Maybe it's me but I am not mad about at least half of the features Microsoft ships with Orcas(.NET 3.5).

Saturday, 19 May 2007

Working long hours

I've just finished my 11 hours long Saturday working day. In general it's an exception that I work at a weekend but from time to time there is a need and I don't mind but nothing again comes for free. My brain is burnt and it was really hard to be innovative today which perfectly fits into the first paragraph of Roy's post. Needless to say that the rest of the post is valuable as well.
I know people that work long hours for months and they still claim they are productive. Maybe there is something wrong with me but I do believe that everyone needs to find time to recharge its batteries. And it doesn't matter whether you like/hate/love your job.

Wednesday, 16 May 2007

64 bits doesn't come for free

Nothing comes for free. This is obvious but I still see a lot of people thinking that 64 bits architecture is going to solve all their performance problems which is not true. Maoni is explaining this in terms of .NET.

Sunday, 13 May 2007

SQL Server and lock escalation

A few weeks ago Kevin Kline gave a talk in Dublin about SQL Server performance and how to make the most of it. The talk was very interesting because Kevin touched a few times on SQL Server internals. The most surprising one was related to how SQL Server escalates locks. Kevin mentioned that if SQL Server has acquired around 4000 locks within a table then it escalates them into a table level lock. What is even more more surprising is the fact that this value is hardcoded. I've tried a few time to prevent SQL Server from escalating locks and I've always failed. Now I know why :)

Tuesday, 1 May 2007

My .NET goes to other platforms prediction was right

I was right :). I've just seen a channel 9 video with Scott Guthrie talking about how Microsoft ported nearly the whole .NET to Mac OS X and made it possible to host it inside IE, Firefox and Safari. It's just awesome. At last I will be able to write everywhere using my favourite language which of course is C#. A few snippets just in case you are to lazy to watch it:

The ported .NET framework has but is not limited to following features:

  • CLR runtime which means that VB.NET guys are not out of the game ;)
  • Garbage Collector
  • Threading support
  • Network stack support
  • LINQ
  • A little bit trimmed Base Class Library, for example COM interop is gone which makes perfect sense
  • The same format of binaries as in full .NET framework
  • The same namespaces as in full .NET framwork
  • Cross platform process debugging
  • Based on .NET 3.5

Scott leads a great team of engineers at Microsoft that seems (thank God) to pay no attention to their Marketing department. All I can say is keep doing this !!!!