March 11th, 2005
First VB gets the axe. What's next COBOL?
Perhaps the moral of this story is that you can’t teach a dog new tricks. Particularly these old dogs, who, like my old dog, bite back if you don’t handle them just right. After all, you can’t read Matthew Broersma’s report about how more than 100 Microsoft Most Valuable Professional (MVP) developers are asking the Redmond-based company to reconsider its plans to end support for the pre-.Net form of Visual Basic without concluding that going from the old VB to the new VB is, for all intents and purposes, a new trick.
How much of the older generation VB is out there in numbers of lines of source code is unknown. But according to the report, 45 percent of all North American developers (including yours truly) continue to use the non-.Net versions of VB. The footnote is that 34 percent have used the .Net version. But that says nothing of how many lines of code either group is responsible for. So putting our fingers on just how much of that legacy code out there can’t cross the gap to VB.Net isn’t clear. But the "experts" seem to think it’s significant.
According to Evans Data analyst Albion Butters, "One of the main issues keeping VB6 and earlier developers from making the migration to VB.Net is the steepness of the learning curve….The difficulty in moving existing VB6 apps to VB.Net is, in some cases, insurmountable."
Broersma’s report quotes developer and author Rich Levin as saying "The .Net version of Visual Basic is Visual Basic in name only….Any organization with an investment in Visual Basic code–consultants, ISVs, IT departments, businesses, schools, governments–are forced to freeze development of their existing VB code base, or reinvest virtually all the time, effort, intellectual property, and expense to rewrite their applications from scratch."
Cries from the MVPs haven’t gone unnoticed. Paul Vick, Microsoft’s technical lead for Visual Basic .Net wrote an empassioned response in his blog, offering details of how the two architectures are so different, that it’s technically impossible to keep the old VB going without maintaining an entirely separate (from Visual Studio .Net) development solution. In addition, the company is throwing its weight behind managed code solutions like Visual Studio .Net versus the unmanaged nature of the older VB.
In their petition, the MVPs asked that, in the same fashion that Microsoft continues to support C++ while also evolving C# as a part of the .Net family, that the same should be done for VB and VB.Net. Wrote Vick in his blog, "… the architectures are totally different and, in many ways, incompatible. Heck, we spent four years getting VB .NET integrated into the Visual Studio shell and we were writing it from scratch (and therefore could design a compatible architecture)!" After talking about how any extension of the old VB’s life is just inviting a more painful conversion down the line, Vick adds: "So, while I can be sympathetic to where the petitioners are coming from, I can’t ultimately support their stated goals."
As I attempted to follow the saga around the Web, I couldn’t help but wonder why COBOL wasn’t killed off years ago. One reason is the sheer number of lines of legacy code still in use. (But wait a minute, we have that in VB too!) Another reason is standards. Perhaps reaffirming the risks of deploying non-standard technologies, COBOL is an international standard. No vendor can decide to kill it like Microsoft can with VB6. This may also explain why Microsoft isn’t doing to C++ what it’s doing to the old VB. Like COBOL, C++ is also an ISO standard. Microsoft can’t so easily turn its back on that.
Honestly, given .Net’s native capability to handle Web services, the fact that I can share some core code across platforms like Windows and PocketPC, and the way the plug-in style of the Visual Studio IDE allows me to draw other languages that might be more appropriate for certain tasks (for example PERL for regular expressions) into an application, I actually want to move onto .Net from the old VB and get some of those advantages sooner rather than later. I’m moving.
But if you’re really steamed and thinking that maybe it’s time for a change, perhaps you should consider Realbasic from Real Software, which not only supports Web services standards, it also creates software that runs on Mac and Linux. On top of that, it’s that company’s bread and butter, which means Real Software has more to lose if it decides to teach you old dogs new tricks. Finally, every time I write about Visual Basic, they write to me to say something like "How come you never mention us when you write about VB? Are we chopped liver or something? You should really give us a look." OK, all that harrassment paid off.
And if you really want a change, there’s always Java, which, if you believe what IBM’s senior vice president Steve Mills said this week, is just as bad as VB because of the control that one vendor (Sun) has over it. But every time IBM complains about this, the one thing that’s missing is the damning evidence of how Sun’s majority involvement in the Java Community Process (where all Java standards are set) has deprived customers of something they deserved, stood in the way of Java’s progress, or robbed the vendors (those complying with the Java standards and competing on implementation) of opportunity. Let me know if you know the answer. (I’ve been looking for a while.)










