Ever since February 2002, when Microsoft Corp. released its next-generation development language, C# (pronounced C sharp), with the new Visual Studio .NET, naysayers have been predicting the demise of Visual Basic. Though experts believe the future of enterprise development lies with C#, it is also clear that VB is not going away quietly.
In assessing the state of Visual Basic, it's important to note that it is still by far the world's most popular enterprise development language for client-server applications, thanks to its approximately 3 million users worldwide, said Mark Driver, a vice president and research director at Stamford, Conn.-based Gartner Inc.
However, C# has quickly been closing the gap. According to a study conducted last spring by Evans Data Corp., 12% of all North American software developers were then using C#. The research group expected that number to double within a year.
"We expect C# to establish itself as the leading language, if only by 10% or 15%" over VB within the next five years, Driver said.
What does C# have that the newest version of VB -- Visual Basic .NET -- doesn't have? That point is debatable, but according to Tom Barnaby, lead instructor with Eagan, Minn.-based training firm Intertech Inc., C# takes object-oriented (OO) programming to the next level.
In a nutshell, object-oriented development is an entirely different paradigm for building programs. Unlike VB, which was designed to build procedural programs that take in data, process it, and output new data, the object-oriented philosophy revolves around manipulating objects and the data they contain, instead of focusing on the logic required to manipulate them.
Barnaby, who is also the author of the upcoming book Applied .NET Attributes, said that object-oriented programming concepts have been slowly introduced into VB over time, but C# was specifically designed for object-oriented development.
"[C#] is a much cleaner, much more powerful language," Gartner's Driver said. "VB has been carrying legacy baggage from earlier versions, and the language has become somewhat muddled. There are a lot of inconsistencies in how programs are designed," which can often lead to flaws and the need for increased program maintenance.
Uttam Narsu, a vice president with Forrester Research, in Cambridge, Mass., said that Visual Studio .NET encourages developers to use both VB and C# for everyday programming tasks like Web site building, but that future development of complex applications will be done with C#, driving users away from VB .NET.
"[Microsoft] forced developers to make the leap into the object-oriented paradigm, and the minute you expect that of developers, they ask if VB is the best language to do OO development. And generally the answer is no," Narsu said.
This has caused some Microsoft-based shops to wonder whether they should invest now in training developers and recoding applications for C# or hold off as long as possible.
While the cost of switching depends on a company's size and the number of applications and their complexity, Driver said, developers' existing skill sets will be the key factor in determining transition costs. Since object-oriented programming knowledge is essential, those without object-oriented experience will need at least four to six month of training.
"That's not saying [a developer] is not going to be useful for six months. You're going to find a ramp-up in productivity around the halfway point of the learning curve. But it takes an apprenticeship program to be able to deliver mission-critical quality code," Driver said.
As far as the applications themselves are concerned, Driver estimated that, in a worst-case scenario, migrating VB applications to C# can cost up to 60% of the original development costs, because as much as 80% of the original code may need to be rewritten.
Intertech's Barnaby said that demand for C# training started to increase significantly about six months ago. He said that some companies send small groups for initial training in an effort to launch pilot projects, while other firms send all their developers simultaneously for complete training.
Even though it is widely believed that Microsoft botched its initial marketing push for Visual Studio .NET by attaching the .NET moniker to too many products, Forrester's Narsu said that Microsoft's enterprise development program is still strong. He said some shops that use VB but are not Microsoft centric may migrate to Java, but most Microsoft shops will be better off with C#.
If there is one reassuring message for companies using VB, it is that it will likely take many years before C# completely replaces VB. Driver said he sees Microsoft providing VB support for at least the next four or five years, meaning that companies have time to move to C# gradually. In fact, he said, if Microsoft is smart, it will simplify VB and attempt to satisfy its developer community.
"[Microsoft] will do a better job of hiding the OO requirements of VB -- better than they do today -- in an attempt to push VB back downstream," Driver said.
Narsu said developers can produce programs faster with VB than with C#. However, he said, if Microsoft makes a big push regarding rapid application development capabilities for C#, it will be the first sign that VB's end is in sight.
FOR MORE INFORMATION: