« January 2005 | Main | March 2005 »

February 28, 2005

Catastrophic Success

If any company spent 5 years developing a browser, and only managed to capture 5% of the market, I think the industry would be analyzine what went wrong.  Firefox, enjoy the honeymoon...

Posted on February 28, 2005 at 08:50 PM | Permalink | Comments (4)

February 25, 2005

This is a multiple choice test, choose only one of the following:

From the comments:

> I’m proudly one of them. VB.NET is my favorite language.

I agree with you, but unfortunately VB.NET is not *Microsoft's* favorite language, and it shows.

Guess how many lines of Enterprise Library code were written in VB.NET? Zero. If Microsoft doesn't think VB.NET is a worthy Enterprise language, who am I to disagree?

I hear this a lot "Microsoft writes everything in C#", "The framework is written in C#", "Enterprise Library is in C#", etc. Actually, Microsoft (to this day), writes most of it's stuff in C++. Using this logic, one would have to conclude that Microsoft doesn't think C# or VB.NET are worthy languages.

But their choice of language makes perfect sense. In fact, I strongly suggest that other companies emulate it.

1. If you're building operating systems, or 98+% of your code is currently in C++, plan on continuing to do a lot of C++ development.

2. If your developers are mainly C++ or Java developers, and you want to do stuff in .NET, then the most logical language for them to move to is C#. It's syntactically the most similar to C++, and it's conceptually very similar to Java. For the same reasons that VB6 developers are up and running faster in VB.NET, C++ and Java developers are up and running faster in C#.

3. If your developers are mainly VB, then VB.NET is the most logical choice. Microsoft has never been a company of mainly VB developers. However, many of Microsofts own internal IT systems were developed in VB. Guess what? Those developers moved to VB.NET, and many of those systems have been rewritten in VB.NET.

So what does Occam's razor say? (this is a multiple choice test, choose only one of the following:)

1. Microsoft is using .NET as a big, multi-billion dollar hoax, and will one day (likely on April fools) say "Ha ha, we've been using C++ all along. Suckers!"

2. The most logical language for the worlds most hard-core C++ developers to migrate to would have been VB.NET, and the fact that they didn't is proof that Microsoft doesn't believe in the VB.NET language.

3. C++ developers tend to move to C#, VB developers tend to move to VB.NET, and Microsoft had a crap load more C++ developers than VB developers on staff because Microsoft writes things like IIS, Windows, Office, and many other things to which VB6 wasn't well suited at all.

Oh, and what about Enterprise Library? Poll the architects and developers who worked on it. I'm guessing that they are all former C++ developers. You can tell by how it's completely over-engineered and way too hard to use for the functionality it provides. A VB developer would have never built it that way...

Posted on February 25, 2005 at 09:25 PM | Permalink | Comments (14)

Love the MSDN Product Feedback Center

I recently came across a bug where if you specify an instance name for a performance counter that's longer than 64 characters, the performance counter class truncates it to 64 characters, and then throws an exception because it can't find the instance. In seconds, I found out that this has already been reported, fixed, and the fix will be in Beta 2.

Posted on February 25, 2005 at 09:18 PM | Permalink | Comments (0)

February 24, 2005

Grumpy Grimes

Richard Grimes steps down, and has some things to say about .NET.

They say you forget the pain of childbirth. Apparently, you also forget the pain of pre-.NET development. I haven’t forgotten the insane amount of work it was to build a Web site with tables that let you sort and page data. I haven’t forgotten how much work it was to write client-side and server side code to validate form fields. I haven’t forgotten all the cross browser testing that you had to do.

I also haven’t forgotten the pains of VB6. How just adding a reference to a DLL locked it while the IDE was open, making recompiles difficult. I remember how small the available class library was, and how far to often you had to Declare that you wanted to use something in the Win32 API, and how writing multi-threaded VB code was essentially impossible. People called it the glass ceiling. It felt more like titanium, and “Hardcore Visual Basic” existed to drill holes through so that you could glimpse the heavens beyond.

I’m sorry for those who hate .NET because it’s not perfect, but for anyone who says it’s not an order of magnitude better, well, I just don’t know what you’re on. I honestly do wish I had a nickel for everyone who I’ve heard mutter “If I have to go back to VB6/ASP, I swear I’ll quit my job.”

Recently, I have been doing a lot of work in VB6, focusing on VB6 - VB.NET interoperability, because I believe that interoperability, not migration, is the sweet spot. As I move between the languages, I realize what a beautiful thing VB.NET is. It feels like a turbo-charged VB. It’s just a lot of little things. I love that fact that I get this:

Dim x as New SomeObject(Arg1, Arg2)

Instead of the klunky:
Dim x as SomeObject
Set x = new SomeObject
x.Init Arg1, Arg2

The language has been cleaned up like this in just countless places. Maybe it takes a while to get in the groove, but when I’m in VB.NET, I feel like the code is just flying into the IDE. VB6 bonks at me if I type what it considers syntax error, and don’t fix it right this instant! And with what’s coming in Visual Studio 2005, VB6 really starts to feel like it has a hand-crank on the front.

Grimes argues that VB.NET isn’t VB. He’s right in that it’s not VB6, but it’s definitely the next species on the evolutionary tree. I’m working on an article that includes VB6 and VB.NET code, and I realized that it was really important to clearly label the code listings as VB6 or VB.NET, because otherwise you have to stare at the listing for a long time trying to figure out which one you’re looking at. Some people think it’s fun to call VB.NET “VB Fred”, claiming that it’s just not at all the same language as VB6. If that’s the case, then there sure is one hell of a family resemblance.

Grimes also makes the argument that if you’ve going to .NET, you might as well learn C#. Unfortunately, I come into the game with a lot of experience teaching developers who are moving over to .NET. Any other trainers out there, feel free to chime in with your own findings, but I find the experience to be universal. VB6 developers get productive with VB.NET much faster than C#. Honestly, you can get a very long way in VB.NET without learning OO, threading, delegates, casting, etc. With C#, you have case sensitivity, you have to cast everything (which just doesn’t make sense coming from VB6), event wiring in C# is just plain clunky compared to “Handles”. I could go on and on, but if someone says that a VB6 developer will learn C# just as easy as VB.NET, all I have to say is, you’re wrong. I spend a considerable amount of my time on exactly this, and VB6 developers are just up and running a lot faster if they start with VB.NET instead of C#.

In the end, it doesn’t appear that Grimes had one good thing to say about .NET. Nothing good about .NET today, nothing good about where it’s going. Apparently millions of developers (and growing every day) are wrong, they’re deluding themselves, tricking themselves into thinking they like .NET because Microsoft tells them they should, unable to think for themselves. I’m proudly one of them. VB.NET is my favorite language.

Posted on February 24, 2005 at 09:22 AM | Permalink | Comments (94)

February 21, 2005

Performance Counter Blues...

The "PhysicalDisk\% Disk Time" performance counter doesn't work in Microsoft .NET v1.0, v1.1, or (apparently) v2.0. It's a known bug:


Since it's know, you'd think it would get fixed, but it's not fixed in the latest Whidbey bits. Bummer (and this isn't a terribly uncommon counter to want to read). You have to resort to WMI to read this counter.

Posted on February 21, 2005 at 05:01 PM | Permalink | Comments (2)

February 12, 2005

Every vote (might) count

Paradoxically, I think the best way to get VB6 developers over to VB.NET is to continue support for VB6. I think by Microsoft dropping support for VB6, they're unintentionally saying "move to .NET, and we'll care about you again."

So, I've filed a bug. Go vote to keep VB6 alive.

Posted on February 12, 2005 at 11:20 AM | Permalink | Comments (2)

February 06, 2005

"Cell" chip

Developed by IBM, Sony, and Toshiba, the "Cell (microprocessor) is understood to have at least four cores and be significantly faster than Intel and AMD chips." (via FT.com)

True multi-threaded programming is going to become more and more expected in application development as processing speed increases by adding cores, not GHz. Who's going to make this kind of development really easy to do?

Posted on February 6, 2005 at 04:29 PM | Permalink | Comments (0)

February 04, 2005

VS Live

Anyone going to VS Live next week, and interested in getting together to talk about the future of technology? Drop me a line. ([email protected]) Chances are, I've always wanted to meet you in person...

Posted on February 4, 2005 at 08:13 PM | Permalink | Comments (0)

Monkey Porn

Just plain goofy. I'd comment more, but I'm not sure where to begin.

Posted on February 4, 2005 at 05:01 PM | Permalink | Comments (0)

Is Visual Studio Team System "Smart"?

Is there any portion of VSTS that's being developed as a Smart Client? Can I edit work items off-line and sync my changes? Enter bugs or mark them as resolved?

Posted on February 4, 2005 at 01:41 PM | Permalink | Comments (0)