Continuation-Passing Style

There are some technical words that cause quite a stir even amongst geeks.  When someone says the word "continuation", people’s eyes glaze over and they seek the first opportunity to change the subject.  The stir is caused because most people don’t understand what a continuation is or why someone would want to use one.  This…

9

Musings on Software Testing

It was spring 2003, I had just finished a weekend camping in the southern Arizona desert.  I was dusty and physically exhausted from hours of playing paintball.  For those who have never been in those parts, imagine long straight roads with dry sage brush, painful cactus, and jagged mountains.  I needed a book to pass…

16

Volta and You

Yesterday, Volta was made publicly available for the first time.  It is an experimental project in the early stages of development.  The team decided to release an early technology preview so that developers everywhere can help guide the project through experience and feedback.  We want your feedback. The first release provides the basic feature set…

19

Volta: Redefining Web Development

Anyone who writes web applications knows that web development is not easy.  Developers wrangle with a soup of technologies distributed across multiple tiers.  We live in a world where programmers accept the fact that they need to know four or five different languages, tools, and environments just to get a site up and running.  In…

26

More on Partial Methods

Thank you everyone for the feedback.  If you have any more to say then please do express your opinion (and yes it is valued ;).  I think there has been a bit of misunderstanding about what partial methods really are.  So let’s set the matter straight.  Here is the current spec (quoting from here on…

16

In Case You Haven’t Heard

It has been a while since I have posted.  We have been working hard to get Orcas beta 1 and beta 2 done.  So I apologize for the long interlude between posts but I hope that you are enjoying beta 1 and that you are looking forward to beta 2. Now that beta 1 is out there,…

93

All About Iterators

Design patterns have been all of the rage for a number of years now.  We have design patterns for concurrency, user interfaces, data access, object creation, and so many other things.  The seminal work on the topic is the Gang of Four‘s book, Design Patterns.  When used appropriately they are a fantastic way to codify…

17

Performance Engineering

Recently, many people have asked me about the performance of Linq.  The questions have ranged from the broad, “How can I analyze the performance of code using Linq?”, to the very specific, “Why is the performance of this code sample not what I expected?” I want to address these questions.  So before I dive into some…

8

Extending the World

When people think of C# 3.0 and Linq, they commonly think of queries and databases.  The phenomenal work of the Linq to SQL guys provides ample reason to think of it this way; nevertheless, C# 3.0 and Linq are really much much more.  I have discussed a number of things that can be done with lambdas,…

26

Immutability, Purity, and Referential Transparency

How often do you write code that just works?  It seems to happen so rarely that I find myself suspicious if code does just work.  When was the last time that you wrote a non-trivial program that had no compile errors on the first try and then ran fine as well?  If it happened recently then congratulations.  If…

32