Apparently, the reason I was misinformed about And and Or shortcircuiting is that it was changed during the beta after a lot of people screamed.

A better example would have been the elimination of Set and default properties.

Understand, please, that it’s not that people mind the changes.

Change is good.

Nobody thinks the Set statement was a good thing.

I once spent a whole day in Mark Igra’s office (in 1992 Mark was the program manager for Object Basic which became VBA) begging him to get rid of default properties and the Set statement, kicking and screaming and using every rhetorical device at my disposal, but the Basic team absolutely refused to do anything that would break working code, and in those days, there was a tiny amount of working code from Access 1.0 that already used default properties and the Set statement, and it could not be broken. Mark was right and I was wrong and Set remained. By the way, I’m pretty sure default properties were Adam Bosworth’s fault; I’ll have to ask him this week at the O’Reilly conference. Adam was the designer of Access 1.0. They wanted to be able to say recordset(“fieldname”) to get the value out of a column, not recordset(“fieldname”).value.

But here’s the thing. If you have a million line code base that’s mission critical, as many companies do, and VB suddenly changes, as it did, you have a choice: keep using VB 6 or spend a lot of time (=money) upgrading to VB.NET. If you keep using VB 6, eventually new things will come out that will not be supported  from VB 6, and you’ll be stuck using the yucky old VB 6 IDE until the end of time. Already most of the big component vendors are doing all the new components as .NET components, not OCXes.

If you spend the money to upgrade to VB.NET, well, you just spent a lot of money to stand still. And companies don’t like to spend a lot of money to stand still, so while you’re spending the money, it probably makes sense to consider the alternatives that you can port to that won’t put you at the mercy of a single vendor and won’t be as likely to change arbitrarily in the future. So as soon as people with large code bases start hearing that they’re going to have to work to port their apps from VB to VB.NET with WinForms, and then they start hearing that WinForms isn’t really the future, the future is really this Avalon thing nobody has yet, they start wondering whether it isn’t time to find another development platform.

I’m heading off to California now. Remember, pizza and beer reception on March 18th from 6:00 to 7:30 pm in Berkeley, at the Studio Rasa Gallery, 933 Parker Street.

About the author.

I'm Joel Spolsky, co-founder of Trello and Fog Creek Software, and CEO of Stack Overflow. More about me.