A reader survey conducted this summer identified some trends among Microsoft developers: Visual Basic 6 remains the language of choice, a growing number consider themselves to be Web developers, and many frequently change hats throughout the software development life cycle.
Driving these trends to a large part, according to readers who spoke with SearchVB.com, are budget constraints and plain old practicality.
Bruce Neiger, like 68% of this year's survey respondents, still codes in VB 6. And he will continue to do so "until there's a reason not to," he said. Neiger is an environmental engineer who does some programming in the transportation group of Parsons Corp., a multinational infrastructural engineering firm based in Pasadena, Calif.
"I still use VB 6 because there's so much out there," he said. "A lot of it is extending existing applications, or someone refuses to do .NET." In addition, he said, time and money play a huge part in this issue. "Whenever something is written in VB 6 there's rarely budget or impetus to rewrite it. What drives this industry is a sense of budget and schedule. If you have something that works and you can patch in, you save time because it's there, it's tested, it works."
As for Elliott Ward, an application developer at JPMorgan Chase, in Columbus, Ohio, he will be coding in VB 6 "as long as there is a need by business for it to be maintained. It's a great language; it does a lot, and there's a lot of legacy code out there."
The challenges of moving to VB.NET
While VB 6 remains the top language for Microsoft developers, the SearchVB survey found more than 62% of this year's respondents are using VB.NET, followed by 34% using C#. Both percentages are up from a year ago.
However, developers are up against both organizational and cultural obstacles in the move to VB.NET.
Patrick Wenzel, an independent developer in the Washington, D.C., area, does a lot of government work, and said some government sites aren't moving to the .NET Framework. "It's happening all over the Department of Transportation. A number of my clients are government contractors, and for some reason the .NET Framework is not a direction they're moving in."
Resistance to change, and the learning curve of VB.NET, can also be obstacles, said Neiger. One recent project he was working on needed to have some objects written, and he insisted it was important to write the main program in VB.NET. "It was like pulling teeth to get the guys doing VB 6 [to work in VB.NET]. Once they started with VB.NET, they said 'OK, this is fine,' but getting over the hump was awful. There's a huge hurdle against moving. Some developers are not sophisticated in working in the object-oriented world, so I had to stop and explain a lot of class-oriented issues."
While most programmers are adaptable, time-to-market pressure plays a part in how willing they are to learn something new, he said. "Most people are decent programmers and love learning new things -- as long as they don't have to learn it in an hour."
Neiger said VB 6 never should have died because "it's a near-perfect beginner's language." However, he is also a big fan of VB.NET. "It's not as easy for beginners, but with the exception of multiple inheritance, it's perfect and getting better. It's got enough to make it a good adult mature language."
Ward, of JPMorgan Chase, also praises VB.NET and said he plans to use it more over time. "The development cycle is much more rapid, and it scales very well. Applications written in VB 6 are usually designed for a certain size. To get larger and to do more can be time consuming and difficult. This is not as pronounced with VB.NET. You can put it on the Web, the desktop, it doesn't make that much difference."
The good and the bad of C# development
He is not a fan of C#, however, or the way Microsoft has packaged it. "They put C# and VB in same package, so you've got divisions inside the company of those who do C# and those who do VB," Ward said. "They should've picked one and stuck with it."
Ward noted that the functional differences between C# and VB.NET syntaxes are very small. But he said the packaging alienated the VB programmers. "Once again they gave the C# guys all the glory. All the examples are in C#. It was more mature right out of box than VB.NET."
Neiger, meanwhile, said he feels C# and VB.NET are comparable, but he'll choose C# for some tasks "to keep my coding skills alive."
For Wenzel, the independent developer, C# goes back to his roots. "I was a C programmer. It's a cleaner language than VB -- it alway was," he said. "I probably won't go to VB.NET; I'll just start porting things to C#. Even if the government goes to .NET, there are certain things you can't do in VB.NET."
Moving to the Web -- and to Ajax
Wenzel especially likes C# for developing Web services applications -- a growing task among SearchVB survey respondents. This year, nearly 16% called themselves Web developers, compared with less than 8% last year.
"I'm currently doing a lot more Web-based applications than before, and using Web services with a VBscript front end talking to the Web service developed in C#. It's really cool stuff," he said.
Ward, too, said he expects to do more Web development over time, and expects to bump into the need for Ajax. For now, though, he said security remains a concern with Web applications, and most of his work today is desktop-oriented.
Working alone, wearing many hats
For all three developers, work often spans the entire software development life cycle, and often work alone or in small teams, which is reflective of the SearchVB survey results. And for the most part, they prefer this way of working. However, they agree that larger applications often require larger teams and more specialization.
"I primarily work alone," Wenzel said. "The more people you add to the team, productivity drops because of the communication that has to go on. I prefer to work by myself, but occasionally a project is too large to do so, but even there I'll do the core system."
According to Ward, "It has a lot to do with the size of the application you're dealing with. The smaller the application, being involved in the wider breadth of the lifecycle allows for a greater understanding of what you want and what you did. But with a larger application that's not possible, so all you can do is your part, and you have to trust what you're being told is what's going to happen."
But being involved throughout the lifecycle "keeps it more interesting," Wenzel said. "It gives you variety."
And, Ward added, "Once you do a soup-to-nuts piece it's hard to go back into ignorance and just do your piece and be satisfied it's going to work out."