Windows IT Pro is the leading independent community for IT professionals deploying Microsoft Windows server and client applications and technologies.
  
  
  Advanced Search 


April 01, 2005

Is Chicken Little a VB 6.0 Developer?

RSS
Subscribe to Windows IT Pro | See More Visual Basic (VB) Articles Here | Reprints | Or get the Monthly Online Pass—only $5.95 a month!

Based on some of the messages I’ve seen on message boards and some articles I’ve been reading lately, it seems that many developers feel that the sky is falling because Microsoft has suddenly abandoned Visual Basic 6.0 (VB 6.0). The crisis that has erupted over the past month has been triggered by the “Product Family Life-Cycle Guidelines for Visual Basic 6.0” Web page (http://msdn.microsoft.com/vbasic/support/vb6.aspx) that Microsoft posted several years ago. This page defines the life-cycle schedule for VB 6.0. As it shows, VB 6.0 took its first step toward obsolescence today. Microsoft has moved VB 6.0 from the mainstream phase (i.e., is a fully supported mainstream product) to the extended support phase.

The advantage of the VB 6.0 life-cycle Web page is that it spells out what this transition means in explicit terms. The most important item to note is that this transition doesn’t mean your VB 6.0 applications will cease to work or that Microsoft no longer supports VB 6.0. It only means that VB 6.0, which is a rather old product in the technology arena, is heading for retirement.

Every product produced by Microsoft moves on at some point, as evidenced in another Microsoft Web page: “Product Lifecycle Dates - Developer Tools Family” (http://support.microsoft.com/gp/lifedevtoolfam). This Web page shows the product life cycles for all the developer tools.

I like the developer tools life-cycle Web page better than the VB 6.0 life-cycle Web page because it helps put the VB 6.0 phase change in the proper perspective. For example, Visual C++ 6.0 moved to the extended support phase in September 2004 and Visual Interdev 6.0 (aka Active Server Pages--ASP) moved to this stage back in September 2003. VB 6.0 is, in fact, the last member of the Visual Studio 6.0 family to move from mainstream support to extended support. So, the VB community has little to complain about.

However, some developers claim that, given the substantial changes between VB 6.0 and Visual Basic .NET 2002, there just hasn’t been time to properly migrate their VB 6.0 applications. These same developers seem to forget that ASP and ASP.NET are completely incompatible and there are still Web sites running ASP despite that ASP moved to extended support over a year and a half earlier.

As the grid in the developer tools life-cycle Web page shows, Visual Basic for Applications 6.0 (VBA 6.0)--the engine behind Microsoft Word and Microsoft Excel macros--will continue to have mainstream support through December 2008. This means that much of the underlying VB plumbing will continue to be maintained in the mainstream for another 3 years. And for any VB 6.0 diehards after that time, Paul Thurrott identifies a possible alternative to VB 6.0 in “REAL Software Offers Free Upgrade to Stranded VB Users” (http://www.windowsitpro.com/article/articleid/45775/45775.html).

For those who aren’t aware, I’m a Microsoft Most Valuable Professional (MVP) for VB 6.0. As such, I want to publicly state that I support Microsoft’s decision to phase out VB 6.0’s mainstream support today and phase out all support by 2008. The reason I’m declaring my support is that there’s an effort by some developers, which include some misguided MVPs, to extend the mainstream support for this old product. In my opinion, these developers are crying over spilt milk. To me, this effort is like petitioning to bring back Windows 3.1 and 16-bit programming.

I feel pretty strongly about this issue because of two events that occurred earlier in my career. It probably won’t surprise many of you to learn that I haven’t always used Microsoft developer products. Over a decade ago, I used a language called Massachusetts Utility MultiProgramming System (MUMPS). For those of you who’ve never heard of MUMPS, it was the second language ever standardized (with FORTRAN being the first). If you doubt me, check out the Web page at http://207.192.157.194/mdc/index.htm.

As a young developer, I was attending a MUMPS Development Committee meeting. In these meetings, MUMPS developers discussed how the standards should evolve. It was the height of client/server development prior to the true launch of the Internet. As part of this meeting, a senior developer stood up and said, “I’ve learned MUMPS 20 years ago. Since that time, I haven’t had to learn any new syntax or try to master any new paradigms. I like the current MUMPS implementation and think any changes to support graphical user interfaces should be measured against minimal impact.” Think about this attitude as you consider those developers asking to keep VB 6.0 as their primary development platform.

At the same time, the company for which I worked had a large product based entirely on MUMPS. The company was trying to determine how to bring this product in line with new features like GUIs that were vastly more popular than text-based roll and scroll. As part of this debate, there was a question of whether new development should continue to be based on MUMPS or should move to a SQL-based database and GUI development environment. The senior member of the technical resources department presented a detailed comparison of these technologies. This presentation focused on how MUMPS was a public standard, was supported by a robust technical community, and was a tried-and-true technology. He discussed the fact that the MUMPS technology was at the time supported by multiple vendors and, unlike most SQL implementations and GUI tools of the time, could run on a variety of platforms. He gave this presentation to a senior vice president, who made an acute observation. To paraphrase him, the senior vice president said: “Thank you for your analysis. I don’t doubt your analysis in the least and accept your recommendation that MUMPS is the best alternative today. However, the question isn’t about what you can do today--it’s about where the market is moving. In this case, MUMPS isn’t going to ever take over or even keep up with the technology market and those technologies that do will provide ever-greater capabilities than our users will demand. Thus, we will begin the process of leveraging these technologies.”

Both of these men’s past statements have helped me keep in mind that VB 6.0 and ASP aren’t solutions in and of themselves. They’re tools, and these tools are designed to help us solve specific problems. Just like any tool over time, these tools are not only wearing out but also are being replaced by better tools that allow us to do our job easier or better. Technologies will continue to evolve--and learning how to use the new tools and solve new problems with the most efficient tool suite is the business we’re in.

End of Article



Reader Comments
The rest of the story:
http://classicvb.org

Anonymous User April 01, 2005 (Article Rating: )


See also: <a href="http://classicvb.org">The Rest of the Story</a>!

Anonymous User April 01, 2005 (Article Rating: )


Most of the concern I've heard about in the past is that non-techie's would be orphaned by this move. A lot of the VB 6 user base, from what I've understood, are smart people who never took a programming course. They were self-taught, and wrote their own applications in VB, because it's such an easy language to learn.

The overriding complaint I've heard is that VB.Net is more complicated than VB 6. There are certain things that VB 6 used to do for programmers behind the scenes that VB.Net doesn't do, though it can be made to do them, if the programmer puts in the code to make it do it. Since VB coders were heavy users of COM/ActiveX components, some have had trouble converting projects due to the unique way that VB handled those components. One example I can think of are control arrays. .Net doesn't inherently support them, but there is a way to emulate them. MSDN Online has an article on how to do this (the URL is too long to post here).

In any case, it seems to me that if Microsoft wants to bring along the VB 6'ers to VB.Net, or C#, without losing too many of them to some other platform, they're going to need a lot of support. Make the process easy, not hard.

I agree with William Sheldon that at some point technology needs to move on. I probably wouldn't have stayed with the Microsoft platform if it was just a stick in the mud and chose to just stay with VS 6, without moving the technology forward with .Net. Certainly most of their customers wouldn't have stood for it either.

Several years ago I worked at a place where I developed Unix server software. I kept wanting to move to new technologies so I could use OOP techniques. I tried to convince them to let me use C++ or Java. No dice. They wanted to keep me using C. Eventually I had had enough and I left. What a surprise. Everybody else on the Unix platform was using C++ or Java. I started hearing stories from my old workplace that they were having trouble finding people who would program in C. I suggested they move to something else, like C++. They might find more developers. They did eventually move to something else, which was good for them in the long run. Eventually it just needs to happen.

I have wondered though why Microsoft chose to make such a leap with VB.Net in terms of changing the language. It seems to me they could've offered some sort of transitional environment, one where you could compile your VB 6 project in it, but generate MSIL, and have access to the .Net API. It's certainly possible, given that .Net is pretty language-neutral. They gave this ability to C++ developers, for crying out loud, with their IJW (It Just Works) technology. Even with VS.Net 2002, I could write or migrate an MFC app., using the same technologies I'd used before, and give it access to the .Net API. True, I'd need to write some funky code to get .Net controls to work in MFC, but it would be possible without breaking my project upon conversion.


Anonymous User April 18, 2005 (Article Rating: )


I've seen ads for jobs that want people using VB.Net, specifically. So it's not out of the question to get a job doing that. I agree though that from what I've heard from others at user group meetings, C# is becoming the "lingua Franca" of .Net, though we do get some presenters at our user group meetings who use VB.Net for their demo code.

C# isn't too bad, actually. I say that C# brings together the advantages of C++/Java with the advantages of VB. No more pointers (a la C++), and the code expression is more concise, less wordy. Some people don't like that, but I do.

VB.Net is not a totally worthless language in the .Net world. For example, VB.Net is a VERY practical language to use for writing Office applications, or apps. that use Office components. The reason being that the COM object model in Office was designed with the abilities of VBA in mind. One can write applications for Office in C# but it's made more difficult by the fact that C# doesn't support optional or named parameters in function calls, which Office COM functions use a lot. You basically have to get around this limitation by doing some funky coding. VB.Net however continues to support these language features, making it the logical choice for Office development.

I wrote an application just recently that needed to import an Excel spreadsheet into a database. The app. is written in C#, but I used VB.Net to write the Excel import component, even though I've been using C# for a couple years now. I knew it would be awkward learning VB.Net, since I wasn't familiar with it, but I figured, "Why make this task hard on myself using C#?"

In fact, I'd say that if you're trying to bring over to .Net any COM components that were designed for use with Office or the old ASP platform, it's probably better to use VB.Net with them than C# for the same reason, since ASP 6 used VBScript, and you might run into the same issues.

I heard one MVP say some months back that it's actually best to be "bi-lingual" in the .Net world, to enhance one's marketable skills. Since .Net is a universal API, there's no point in limiting your opportunities by locking yourself into one language or the other. I'd agree with that. It can even be a little fun. Back in the 1980s I used to program in old-style BASIC a lot on 8-bit computers (think GW-BASIC). Doing work in VB.Net brought back fond memories of those days...sans line numbers. :)


Anonymous User April 18, 2005 (Article Rating: )


You must be a registered user or online subscriber to comment on this article. Please log on before posting a comment. Are you a new visitor? Register now




Top Viewed ArticlesView all articles
Confirmed: Battery Life Issues Not Windows 7's Fault

Microsoft on Monday issued a lengthy statement about the recent Windows 7 battery controversy, echoing my assessment from earlier in the day, but backing it up with hard, cold evidence. ...

Battery Life Issues Almost Certainly Not Windows 7's Fault

While Microsoft is still investigating a notebook battery life issue that was supposedly caused by Windows 7, some interesting trends have emerged. ...

Microsoft Warns of Windows Version Expirations

Microsoft warned that this year will see three out-of-date Windows versions slip into retirement. ...


Development Whitepapers Global Trends: Unified SOA Performance Management Matters

The role of Service Level Agreements in Successful SOA Deployments

Related Events Oracle Developer Day Online - EUROPE

Top 11 Reasons Why Oracle Database 11g on Windows is Right For You

Check out our list of Free Email Newsletters!

Related .NET Resources Introducing Left-Brain.com, the online IT bookstore
Looking for books, CDs, toolkits, eBooks? Prime your mind at Left-Brain.com

Discover Windows IT Pro eLearning Series!
Clear & detailed technical information and helpful how-to's, all in our trademark no-nonsense format


Windows IT Pro Home Register FAQ for Windows WinInfo News
Europe Edition About Us Contact Us/Customer Service Media Kit Affiliates / Licensing  
SQL Server Magazine Office & SharePoint Pro DevProConnections IT Job Hound
Left-Brain.com Technology Resource Directory asp.netPRO ITTV Windows SuperSite 
 
 Windows IT Pro is a Division of Penton Media Inc.
 © 2010 Penton Media, Inc. Terms of Use | Privacy Statement