Tag Cloud

CRM 2011 (161) CRM 4.0 (144) C# (116) JScript (109) Plugin (92) Registry (90) Techpedia (77) PyS60 (68) WScript (43) Plugin Message (31) Exploit (27) ShellCode (26) FAQ (22) JavaScript (21) Killer Codes (21) Hax (18) VB 6.0 (17) Commands (16) VBScript (16) Quotes (15) Turbo C++ (13) WMI (13) Security (11) 1337 (10) Tutorials (10) Asp.Net (9) Safe Boot (9) Python (8) Interview Questions (6) video (6) Ajax (5) VC++ (5) WebService (5) Workflow (5) Bat (4) Dorks (4) Sql Server (4) Aptitude (3) Picklist (3) Tweak (3) WCF (3) regex (3) Config (2) LINQ (2) PHP (2) Shell (2) Silverlight (2) TSql (2) flowchart (2) serialize (2) ASHX (1) CRM 4.0 Videos (1) Debug (1) FetchXml (1) GAC (1) General (1) Generics (1) HttpWebRequest (1) InputParameters (1) Lookup (1) Offline Plug-ins (1) OutputParameters (1) Plug-in Constructor (1) Protocol (1) RIA (1) Sharepoint (1) Walkthrough (1) Web.config (1) design patterns (1) generic (1) iframe (1) secure config (1) unsecure config (1) url (1)

Pages

Tuesday, August 09, 2011

Rise and Fall of VisualBasic


Great empires often fall from within. 
The death knell for Visual Basic is premature, but it's true that VB has deviated from its original vision as an "Application Construction Kit" for the masses and has lost significant market share as a result.  
Tim Anderson summed it up best:
It sounds like perfection.  Microsoft had perhaps the largest number of developers in the world hooked on a language which in turn was hooked to Windows.  Yet Microsoft took this asset of incalculable value and apparently tossed it aside.  Back in 2002, Microsoft announced that the language was to be replaced by something new, different and incompatible.  That caused rumblings that continue today.  Developers expressed emotions ranging from frustration to anger.  They felt betrayed.
Much has been written lately about the fall of Visual Basic, triggered by an Evans Data survey indicating that VB use has dropped 35% in the past year, and other language surveys show VB falling behind its brother C# and market leader Java.
The problem is simply that when Visual Basic became VB.NET, it became a "real" programming language for trained developers, no longer the layman's "Application Construction Kit" of its original vision.  As such, there's little to positively distinguish VB from the other .NET programming languages, especially the superior and more popular C#.  The result is an expected drop in market share. 
Perhaps next-generation Web development environments like Popfly and Silverlight will fill the gap left by VB.  And there is a concerted effort including a web petition to convince Microsoft to support and upgrade the last "simple" version of Visual Basic, VB6.  This support is unlikely, however, and VB's reign as "programming language for the masses" is over.

Humble Beginning

Alan Cooper is widely regarded as the father of Visual Basic.  In 1987, Cooper was a director at Coactive Computing Corporation where he developed "Tripod," an improved shell/desktop for the fledgling Windows operating system.  After initial testing, Cooper realized that "every user would need their own personal shell, configured to their own needs and skill levels."  The idea of a "shell construction set" was born.  There would be a palette of tools and controls, which users could drag & drop onto forms to create their custom shell.
Cooper began shopping the product around Silicon Valley seeking a publisher.  There was little interest until March 1988 when Cooper showed a prototype to Microsoft CEO Bill Gates.  Visionary that he is, the 32-year-old billionaire immediately saw Tripod's potential.  Gates declared that Tripod was "cool" and would have significant impact across Microsoft's entire product line.  In a few months the deal was done, Tripod became Microsoft's "Ruby," and Cooper assembled a team of engineers to deliver a commercial product.
The original intention was to ship Ruby with Windows 3.0 as a more powerful shell, but Microsoft instead decided to use the OS/2 shell, which Microsoft owned at the time from its deal with IBM.  Microsoft decided to delay Ruby and convert it from a shell construction set for all users to a visual programming language for professional developers by adding QuickBasic.  At first, Cooper was upset with Microsoft's decision and argued against it.  However, after seeing the power of the eventual product, Cooper soon became an "enthusiastic Visual Basic supporter."

An Empire Rises

Visual Basic 1.0 for Windows was first released on May 20, 1991 at the Windows World convention in Atlanta where Gates described it as "awesome."  InfoWorld Magazine described Visual Basic as a "stunning new miracle" that would "dramatically change the way people feel about and use Windows."  Stewart Alsop wrote in the New York Times that Visual Basic is "the perfect programming environment for the 1990s."
VB version 3 (1993) added database access tools and Object Linking and Embedding (OLE).  Visual Basic for Applications (VBA) was released in 1993 to replace the disparate macro features across Microsoft's product line and has since become the de facto standard for application programming in Microsoft Office and other products. 
VB4 was released in 1995 to support the 32-bit Windows 95 operating system.  VB5 was released in 1997 with significant improvements to the user interface, ability to create true executables and custom controls, and support for Microsoft's Active-X technology.  It also dropped support for the 16-bit Windows 3.x operating system.
VB6 was released in 1998 as part of Visual Studio 6.0 that also included Microsoft's Visual C++ development environment.  VB6 improved database access, added Internet features, language improvements and wizards.  Many organizations still use VB6 today.
Microsoft surveys in the late 1990s showed that nearly two thirds of all business application programming on Windows PCs was done in Visual Basic.  VB's overwhelming success was largely because it made Windows programming much easier.  Prior to VB, Windows programming required mastery of the massive and complex Win32 APIs and took hundreds of lines of code to create even simple screen elements.  VB eliminated the need to write lengthy code for the user interface, allowing developers to focus on business logic and produce usable Windows applications relatively quickly. 
World-renowned Windows programming expert Charles Petzold told the New York Times, "For those of us who make our living explaining the complexities of Windows programming to programmers, Visual Basic poses a real threat to our livelihood."

.NET Pulls Out the Rug

In the late 1990′s as the Internet was exploding, Microsoft had just successfully fought off a full frontal assault on its market dominance by killing the Netscape Web browser with its free Internet Explorer.  But Microsoft was facing a host of new challenges, including serious problems with COM, C++, DLL hell, the Web as a platform, security, and strong competition from Java, which was emerging as the go-to language for Web development. 
Microsoft's response was .NET, an object-oriented development environment and framework that provides a highly-functional abstraction layer between the operating system and programming language.  Microsoft announced .NET to the world in June 2000 and released version 1.0 of Visual Basic .NET and the .NET framework in January 2002.  Microsoft also labeled everything .NET including Office to demonstrate its commitment and dominance on this new thing called the Web. 
Unfortunately for VB6 developers, the .NET object-oriented platform is far different than the procedural VB6 programming language, and so there was no easy way for developers to migrate their legacy VB6 code to VB.NET.  Even though a few automated tools emerged to aid the conversion, due to the subtleties and intricacies of the languages, a significant amount of manual, error-prone labor was required.  For larger projects, one would be better off re-writing the application from scratch in .NET using object-oriented architecture and best practices, than performing a mechanical port of VB6 code to VB.NET.
But starting over from scratch means evaluating all options on the table.  And to most "Mom & Pop" developers, Visual Basic .NET appears to be anenterprise product with an enterprise price tag, with significant overhead required in terms of programming skills and computer resources.  So instead of trying to manage the complicated move from VB6 to VB.NET, many VB6 developers moved their applications to the Web, using Java, JavaScript, Perl and PHP.  As a result, millions of developers have left the Microsoft mothership and are unlikely to return.

Don't worry, be happy, VB fans.  Programming languages never die, they just fade away.  My COBOL/RPG2 programming buddies were working hundred-hour weeks during Y2K!

VB is Not R.I.P.

Much of the negative press lately about VB derives from the Evans Datasurvey indicating that overall use of Visual Basic has dropped 35% in just one year, including a 26% drop for VB.NET specifically.  As a result, Java now leads with 45% market share(developers using Java some of the time), followed by C/C++ at 40%, C# at 32%, and Visual Basic at 21%.
Although a 35% drop in market share is significant, it's too early to write the Visual Basic obituary.  Most companies would love to own 21% of a multi-billion-dollar market, though that may not be good enough for Microsoft.  But combined with C# and managed C++, the Microsoft .NET family still commands half the software development market.
What is clear is that Visual Basic is no longer the programming language for the masses of its original vision.  As a result, VB.NET will have to compete with the other .NET and Web languages on its own merits.  With its wordy syntax and second-class status relative to big brother C#, it's unlikely the Visual Basic empire will rise once again.  But Visual Basic will continue to be an effective Windows development platform for many years to come.

No comments: