Tuesday, 15 January 2008

LINQ query versus compiled LINQ query

Rico Mariani changed his position a few months ago but he still manages to provide his Performance Quizzes from time to time. Today he explains the difference between LINQ queries and compiled LINQ queries. It's obvious that one should cache as much as possible because in most cases is better to pay a high price once then a slightly reduced one many times. But the interesting part of the post is the way how Microsoft came up with their current implementation of compiled LINQ queries. Nearly every good performance solution is a matter of realizing that being very generic doesn't pay off. Crazy about performance topics? Go and solve Rico latest quiz. Once you are done check if you are right.

Friday, 4 January 2008

Ireland is not a hero?

It looks like there will not be a launch event of Visual Studio 2008, Windows Server 2008 and SQL Server 2008 in Dublin. The registration page does not list Ireland and I suppose that this years is someone else turn.

Thursday, 13 December 2007

Extensibility, extensibility and once again extensibility

It looks like the new MVC framework from Microsoft is very extensible which is great. I hate frameworks that have no built-in extensibility points and basically force you to do things their way. WCF is a perfect example that proves that extensibility can be very powerful and to be honest this particular feature has saved my life :) a few times.

Friday, 30 November 2007

ASPNIX thanks for bringing my web site down

My blog was down for nearly 72 hours. No response from the support and they phone is "temporary out of service". The name of the company that still hosts my web site is ASPNIX.  I suppose no more comments needed. I need to find a better hosting company soon enough. I will describe the whole issue later on.

Wednesday, 28 November 2007

LINQ and its diverse incarnations

LINQ as a concept is highly extensible and every now and then a new LINQ to WhatEverYouWant gets announced. Just a few examples to show how fast people are adopting this technology: LINQ to LLBLGEN, LINQ to NHibernate, LINQ to Filckr, LINQ to Amazon, etc. Within a few days I've come across 3 more projects:
  • SyncLinq - it returns collections that implement INotifyCollectionChanged which lets you track changes
  • PLinq - it lets you specify that a given LINQ statement should be executed concurrently and it's up to the runtime to decide how many CPUs will be used
  • DryadLinq - the same as PLinq, just replace CPU with PC, basically it lets you specify that your query should be executed on many machines
It looks like LINQ is a powerful platform itself. It has enabled people to create many different levels of abstractions that are based on nearly the same syntax. It's amazing because if I want to stay close to bare metal I can go for Linq, if I want to get some additional services like change tracking I can go for SyncLinq. If I want to take advantage of my N > 1 cores without messing with threads I can go for PLinq and finally if I have N > 1 machines that nobody uses :) I would definitely go for DryadLinq. Diversity in its best shape.

Tuesday, 20 November 2007

I can use Microsoft Surface but I can not nest directories as deep as I want

Microsoft Research is surprising us nearly every month. Just to name a few of their great products: PhotoSynth and Microsoft Surface. But you know what every day I hit the #$%@ limitation on the length of the path. 260 characters and that's all I can get in the .NET framework. Guys, can we back up a bit and solve the basic problems?
Resharper - click on the picture to see the details:



MsBuild - click on the picture to see the details:



Monday, 12 November 2007

Irish Java Technology Conference launch from .NET engineer perspective

After the Joel Spolsky presentation that launched IJTC there was a panel discussion which meant to explore all the future directions that Java as a platform might take. The participants were talking about the future in a kind of sad way and the discussion toured out to be mainly a never-ending stream of complaints. Basically people were concerned about:
  • Java 6 is not implemented on Leopard
  • mobile phone specs on the vendors web sites don't list Java as a feature, something like Java ready sticker
  • lack of tools
  • diversity of frameworks and their life-span uncertainty
  • growing complexity of the language itself
  • dynamic languages that from their perspective are taking over Java current and future believers
  • etc.
One of the listeners asked how to anticipate the life-span of a given framework. The answer was that it's impossible, that's fine, and that his company needs to be more agile. Excuse me? If you build a house you don't want to change its foundation too often. As far as I know Microsoft provides 10 years of support for every framework they release. The next interesting statement was that Java is developing itself quickly because it's community driven. I think that this is not true and the best example is C#. The first version of it was way behind Java at that time it was released. Nowadays C# is way ahead of Java and the main reason is that there are a few smart guys at Microsoft who listen to developers but at the same time they are able to make quick decisions when it's needed. I love diversity but it looks like Java is going in so many different directions that even its believers are kind of lost. What is more, exploring (too)many directions at the same time always affects your velocity and you always have to find the right balance. I can not recall a single statement which would mention a framework/solution/approach which is a breakthrough and it will make the developers life much easier.
I might be wrong because I don't follow the Java world on daily basis but my overall impression was that both audience and guests were not really happy what they came up with. But there is a good chance that they weren't actually upset but simply tired :) because of the fact that the discussion finished around 10 pm. I hope that a few pints after the launch let them recharge the batteries because the conference itself looks interesting.