The Demise of Visual Basic

Perhaps you use or are considering one of several LOS’s that are written in Microsoft’s Visual Basic (“VB” or “VB6”) programming language. If so, there is some very important information you need to know. First, you need to know that Microsoft has discontinued VB and is replacing it with another newer and very different language, called C#. C# is now Microsoft's language of choice for new applications that are to run on Microsoft’s .NET (“dot net”) web services platform. The reason that VB is being phased out is because supporting VB on .NET involved many technical compromises, so Microsoft simply chose not to support VB on .NET.

.NET is Microsoft’s new web services specification, just like the Java Platform, Enterprise Edition (Java EE) is Sun Microsystems’ web services specification. There are two major differences between .NET and Java EE. First, Java EE has been around a lot longer and is much more widely adopted. With the sole exception of Microsoft, every major software company (IBM, Oracle, Novell, HP, SAP, BEA, etc.) participates in the open Java EE specification process and develops Java applications. Second, Java EE applications run on a wide variety of operating systems including Windows, Linux, Mac OS X, and many others. .NET only runs on Windows, locking you into Microsoft dependence and forcing you to accept their upgrades, ongoing license fees, costly support agreements, end-of-life plans, etc. When you choose Java applications, you are better served by the competitive marketplace.

It is very important to note that Microsoft has already terminated “mainstream” support for VB! Critical VB updates are no longer available for free. Free telephone and online incident support is no longer available. And Microsoft support for VB will no longer be available in any way, shape or form after March 2008. For more information straight from Microsoft see: http://support.microsoft.com/lifecycle/?LN=en-us&x=14&y=10&p1=2971

What if your LOS vendor does not rewrite their system? VB applications do continue to run on Windows XP, and Microsoft promises the VB6 run-time components will be included in Windows Vista (fka Longhorn), the next major Windows version. But there are major unanswered questions regarding the compatibility of existing VB applications with Windows Vista, and about their performance. Ultimately your LOS vendor cannot just ignore the migration mandate. VB applications must be migrated or they will eventually die, and maybe sooner than you want. See http://msmvps.com/bill/archive/2005/03/13/38319.aspx for a brief discussion of this issue.

So presuming that your LOS vendor does choose to rewrite its LOS, what hurdles do you and the vendor face? To simplify VB migration, Microsoft does offer a stopgap language called VB.NET. But in practice, the conversion from VB to VB.NET is quite difficult, as VB.NET is object-oriented and VB is not. Plus, VB.NET is hampered by the need to be somewhat backward compatible with classic VB. In fact, most experts agree that VB.NET applications will still have to be completely rewritten. Most VB developers agree that, with everything else equal, applications should be migrated to a language like C# or Java, not VB.NET. Unfortunately for these LOS vendors, rewriting their systems in these languages is a task that is disruptive and very costly, and will force the vendor to suspend its enhancement process, perhaps for years. And LOS’s that involve custom programming (VB or VB Script) will be doubly hard to rewrite. The fact is, the risks of rewriting a complex application like an LOS are enormous and probably not acceptable to most financial institutions.

There are numerous articles that describe the dilemma faced by VB developers:

Study: Developer Use of Visual Basic Plummets (2006-11-29 eWeek) http://www.eweek.com/article2/0,1895,2065392,00.asp
" According to Evans Data's Fall 2006 North American Development Survey, overall, developer use of the Visual Basic family has dropped off by 35 percent since last spring.

"Moreover, Evans said, "As expected, developers are finally leaving VB6 and earlier versions; they're also leaving VB.NET; which is down by 26 percent. This means Java now holds the market penetration lead at 45 percent, followed by C/C++ at 40 percent, and C# at 32 percent."

"Visual Basic.not" (Karl E. Peterson) http://vb.mvps.org/vfred/Trust.asp
Lots of anti-VB6 and anti-MS quotes.

"Support Classic VB..." http://classicvb.org/
VB "Classic" (VB6) advocacy site.

“Should Microsoft be sued for dropping support for VB6?”
(http://visualbasic.about.com/od/imhoinmyhumbleopinion/a/BradJSueMS.htm)
“ What will it cost me to retrain my programmers in VB.NET, and then rewrite applications, one after another, from the ground up, and test all of those hundreds of features? How much business am I going to lose while I do this? How much is going to hurt my business to have Microsoft declaring that the language I wrote all of my software in, with the reasonable expectation that Microsoft would continue to support it, is obsolete and unsupported?”

“Abandoning the Fantasy of VB Migration Wizardry” (http://www.devx.com/vb/article/16822)
“This is not exactly a golden age for Visual Basic 6 developers. If you have a significant VB6 code base that you might like to bring to the .NET platform, the next year to two years promises to bring you a measure of pain the likes of which you've never quite experienced professionally before.”

“Should You Migrate VB6 Apps to .NET?”
(http://www.ftponline.com/vsm/2003_06/online/meader/)
“The fact is, VB6 and VB.NET are not the same language, and there are significant paradigm shifts.”

“Coding Horror: The Slow Brain Death of VB.NET”
(http://www.codinghorror.com/blog/archives/000235.html)
“Either VB developers are choosing not to adopt VB.NET at all, or they're making an opportunistic switch to C#. In droves.”

“Language Candidate: VB.Net” (http://www.softwarereality.com/soapbox/softwarefashion.jsp, scroll down for this article)
"VB.Net programmers will inevitably either move to C#, or give up and go to work on their parent’s farm.”

“Mr. Grimes’ Farewell” (http://www.ddj.com/documents/s=9211/ddj050201dnn/)
"VB.NET is not a language I am comfortable with: I find that whenever I use the language, I tend to swear a lot. It just doesn't work the way I expect it to, and I am not the only one. This is the most common complaint I have heard from people who moved from VB (classic) to VB.NET. The reason for VB.NET was marketing and not technological."

“Skill Market – Languages” (http://mshiltonj.com/sm/categories/languages/)
“The demand for Java programmers today is double that of Visual Basic and three times that of C#. This is reflective of the popularity of Java for the development of new and existing applications. Java is far and away the most popular programming language today.”

“The RBLog” (http://rblevin.blogspot.com/2005/03/microsoft-mvps-revolt.html)
“Now millions of VB developers are language refugees, looking for a new language to call home. This will be to the benefit of language vendors other than Microsoft, which squandered a golden lock on the hearts, minds, and souls of BASIC programmers worldwide--all in the name of something new and allegedly better (read: we need an answer to Java).”

“.NET Rock Star: Paul Vick” (http://www.devsource.com/article2/0,1895,1823861,00.asp)
Big leaps, on the other hand, tend to break things and have difficult upgrades because they're such a big change from what came before. You can't just take what you've got and upgrade. You have to carefully consider what the costs of making the upgrade are going to be, and how much work you're going to have to do to get there. This makes most people very cautious and unwilling to make the leap, unless they see overwhelming justification for doing so, which is an entirely rational response. In the case of VB 6.0 to VB.NET, VB made a very, very big leap.”

“Programming Community Index” (http://www.tiobe.com/tiobe_index/index.htm)
“Java is six times as popular as C# and 20 times as popular as VB.NET. It seems that VB developers are moving in the direction of C# despite how difficult the VB to C# migration is. But Java still retains its vast lead in developer mindshare.”

“10 Steps to Migrate Existing Code to VB.NET” (http://www.aivosto.com/vbtips/vbnetmigration.html)
"Converting existing VB code to Visual Basic .NET is not just a matter of loading it to the new version ... you might decide you didn't want to migrate after all."

"Microsoft and the abandonment of Visual Basic 6" (http://www.itwriting.com/frozenvb6.php)
"Microsoft does of course offer porting tools. Frankly, these have an impossible task. They can help a little, but there are many inherent problems."

When choosing mission-critical software like an LOS, do you really want to invest in software that is already obsolete? ASC understands how daunting it is to rewrite an existing LOS. Our award-winning UNI-FORM Loan Processing System faced a similar dilemma some years ago. The language in which UNI-FORM was written was rapidly losing popularity and support. ASC undertook the difficult task of rewriting UNI-FORM completely from scratch, in Java. The project took three years, during which ASC was unable to market an LOS. Thankfully our PowerSeller Secondary Marketing and Risk Management System was enjoying tremendous market acceptance. Many other LOS vendors don’t have another revenue stream to fall back on. We’re glad to say we are now back in the LOS business and stronger than ever. You can be assured that PowerLender's Java platform will survive the caprices of any single language vendor long into the future. But the pain and anguish we endured during the conversion? We don’t wish that even on our competitors in the LOS world.

Thank you for taking the time to understand the situation faced by companies offering LOS’s written in Visual Basic. We hope the information presented above helps you make an appropriate LOS selection decision.

Copyright © 2007 Associated Software Consultants, Inc. All Rights Reserved