Home
Archives
About us...
Advertising
Contacts
Site Map
 

ruby in steel

 

 THE .NET DEBATE

What's it for? Where’s it going? And do you really need it…?

 

Microsoft is absolutely determined to move programming from Win32 to the .NET platform. But a great many programmers are reluctant to make that move. Now that Visual Studio 2005 and the .NET Framework 2.0 have been launched, the time seems right to consider Microsoft’s .NET strategy. Dermot Hogan and Huw Collingbourne chew the fat...

"If C# isn’t any better than the other languages why did Microsoft invent it in the first place?"

Huw: My feeling is that Microsoft’s entire strategy with .NET has been confused an unfocussed. Take the C# language as an example. When .NET was launched, we were led to believe that C# was going to be its ‘native language’. It was a language that had been designed from the ground up to take full advantage of the special features of .NET. But now Microsoft has changed its tune. They claim that Visual Basic, J#, C++ and just about any other language you can think of are all as good as one another - ‘first class citizens’ I think is the trendy marketing term. Well, if C# isn’t any better than the other languages why did Microsoft invent it in the first place? A pretty dumb move to invent a new language that’s no better than all the existing languages, I should have thought!

Dermot: My feeling is that C# was motivated by a number of different reasons. First, Microsoft wanted a Java strategy – more precisely a strategy to stuff Java at least on the desktop. As it turns out, that wasn’t necessary since Java on the desktop is non-existent anyway. But things like a new language have a long gestation period. Once you’ve started something like C#, it’s difficult to turn it off. Secondly, Microsoft realized that it needed a more “systems” approach for .NET than Visual Basic provided. In theory, C# provides better pointers and the like to interface to unmanaged memory. In fact, the whole .NET approach to unmanaged memory is rather shambolic. In my view, they would have been better concentrating on providing VB with the tools required to interface to unmanaged memory properly. The third reason why C# exists is the simple fact that there are a lot of C/C++ programmers around and Microsoft wanted to appeal to them. I think it’s probably failed in this last aim.

Huw: You say you’d have liked some extra features in VB .NET. Personally, I still can’t see where VB is going these days. I know that you’ve been pretty critical yourself of the way that Microsoft just dumped its huge VB6 user base - up a stream without a paddle, so to speak. But one of your recent columns, you seem to have had a change of heart. You talk about all the good stuff that’s coming in VB9. But VB9 isn’t even a beta product yet - it’s just a name. What use is it to all those VB programmers who still haven’t been given any practical means of porting big applications to .NET? Microsoft clearly no longer has any real commitment to VB. Wouldn’t it be better if they just cut short the agony and pulled the plug on the language once and for all?

"People are not going to migrate to VB .NET just because Microsoft says it’s the way to go.."

Dermot: Ah now … we’re getting onto more interesting ground here. Looking at VB7 (VB .NET), I was pretty unimpressed with its usability for the tasks I was trying to do. It didn’t seem to have any advantages over C# - in fact it was worse in handling unmanaged memory. In my view, VB needs to be a really fast flexible programming tool, and VB7 didn’t have that. In the past, where VB really scored was if you had to knock out a program fast, you would find VB helped you do it. Sure, sometimes it got in the way, but not quite as much as C or (God help us) C++. With VB9, I think that Microsoft has finally grasped that it’s got make VB easier to use than any other programming tool around. People are not going to migrate to VB .NET just because Microsoft says it’s the way to go. But on the transition from VB6 to VB7, I think that Microsoft has possibly made a major misstep.

Huw: And talking of missteps… What about Microsoft’s ‘Internet strategy’. MS might have been able to dominate the desktop but it’s let the Internet slip through its fingers, hasn’t it? There’s a mass of stuff in Visual Studio for programming web applications but, to me, it all seems pretty much irrelevant. I mean, how many Web Form applications have you seen on the Web? Not a whole bundle, I’m willing to bet. The fact of the matter is that the programming language of the Web is called PHP and it’s Open Source. You’ll see PHP applications everywhere. Most of the blogs, Wikis and discussion forums are written in PHP - and they are run on Linux. Microsoft is still trying to fight a battle that they’ve already lost.

"Microsoft hasn’t come to terms with the fact of Linux running the Internet..."

Dermot: Yes – I’d agree here. The problem with Microsoft software is that it all works well inside Microsoft’s magical ‘walled garden’. If you have Internet Information Server running on Windows Server 2003 and so on, it’s wonderful. It all works (more or less) and it’s relatively easy to manage. However, once you step outside into the big wide world, you are in trouble – at least if you try and run Microsoft stuff. The real problem is that Microsoft hasn’t come to terms with the fact of Linux running the Internet, and so doesn’t have a realistic strategy here. I’ll believe Microsoft is serious about the internet when it starts funding Mono in the same way that IBM funds Linux.

However, there’s one other important aspect of Visual Studio 2005 that’s often overlooked - namely, the ‘enterprise’ bits. Yes, yes, I know that this ‘enterprise’ stuff is usually vastly overhyped, but I think Microsoft really has started to address this properly now. There is – at long last – a half decent source control system that comes with the ‘Team’ editions. And the Project portal looks quite nice, though it remains to be seen how useful it is.

Huw: But doesn’t that assume that enterprise developers are all going to be prepared to switch to Visual Studio .NET in the first place? What about all those teams of programmers working on big Win32 projects - especially those committed to VB6. They’re plain stuck, aren’t they?

Dermot: Now let’s not to go overboard in moaning about Microsoft’s language strategy. The usability of Visual Studio is really very good; I enjoy programming in VS 2005 more than in VS 2003. There’s a whole raft of small new features which you don’t really notice until you start using them. Overall, I think Visual Studio must be one of the best programming tools around. I’m looking forward to getting my hands on the Visual Studio ‘toolkit’ which should be available next year. I’m hoping to link in the Microchip compilers and linkers (which I use on a daily basis) if I can. If you’ve never used a software toolkit from a hardware vendor (such as Microchip), you might tend to underestimate just how good Visual Studio really is!

Huw: I agree with you to a large extent - the editing and debugging environment of Visual Studio is excellent. The debugging tools in particular are much better even than those in my beloved Delphi. However, speaking of Delphi… I wonder if Borland now has a realistic opportunity to offer competition to Microsoft? With the new release of the Borland Developer Studio, you’ll have the option of coding in C++ for Win32, C# for .NET and Delphi for .NET (Win Forms). Moreover, Borland has a powerful class library (VCL) that works pretty well on both Win32 and .NET. That’s why some VB developers are looking to Delphi as a serious alternative. Unlike VB, which commits you either to Win32 (VB6 and its predecessors) or .NET (VB .NET), a Delphi Win32 VCL application can be recompiled for .NET with few (or if you are careful, with no) modifications to the source code. In principle it seems to me that Borland’s .NET solution is essentially better than Microsoft’s.

"Microsoft has received two big shocks of late: the first is Google and the second is the slow take up of .NET..."

Dermot: I wouldn’t go as far as saying that Borland’s .NET strategy is better than Microsoft’s. After all, Microsoft invented .NET and so can really determine which direction it will go. But I do think that Microsoft has seriously underestimated the ‘stickiness’  of Win32. I really think that Microsoft thought that it could wrap up and hide the Win32 bits, that the brave new world would be all .NET and all new development would be in .NET languages.

It’s a bit reminiscent of Sun with Java initially. It took a few years for Java to settle down as a server language – and in the meantime we were bombarded by misleading (and sometimes downright incorrect) information from all sides. Microsoft has seen something of the error if its ways with Visual Studio 2005's version of C++ - which is what you need to support Win32 and make it work with .NET. Interestingly, Microsoft itself doesn’t seem to use very much of the ‘++’ bits of C++; it’s more like C with a few classes added (and with good reason). So I suppose, Microsoft’s C++ is rather like Borland’s Delphi…

Huw: (muffled choking sound…)

Dermot: …and I think it’s, as usual, down to whether you prefer C or Pascal syntax. Unless you’re a VB6 shop of course. Then you are well and truly up the creek without the proverbial paddle.

Microsoft has received two big shocks of late. The first is Google – that really does seem to be causing sleepless nights in Redmond – and the second is the slow take up of .NET. Microsoft may control the desktop, but it sure doesn’t control the Internet or which languages people use to develop software. For example, the GNU C++ compiler is arguably better than Microsoft’s version. And you can always use Java. Or Delphi. They’ll all get the job done. Microsoft is trying to get developers to use .NET  (and so use and lock into other Microsoft products such as Internet Information Server, etc.) by making Visual Studio as good as it can be for developers to use. And Visual Studio 2005 is very good, no doubt about that. Whether it will work is a different question. Visual Studio just doesn’t address non-Microsoft web development and, as you say, that is where a large chunk of development effort is now going.

For more information on Visual Studio 2005, visit the Microsoft Visual Studio Developer Center. You can download free copies of the Visual Studio Express Editions for VB, C#, C++, J#, SQL Server and Web (ASP .NET) Development.

 



Huw Collingbourne has programmed in Delphi since Delphi was launched. Now, in spite of some aesthetic objections to all those curly brackets, he is reasonably contented with C#.   Dermot Hogan programs in C, C++, Assembly Language, Visual Basic (of both the 'classic' and .NET varieties) - and relaxes with lovingly hand-crafted microcode.

December 2005

 


Home | Archives | Contacts

Copyright © 2006 Dark Neon Ltd. :: not to be reproduced without permission