Ever since it was introduced in 1993 with Excel 5.0, VBA hesitantly played in between two fields: Microsoft’s Office applications scripting language for automation on one end, and a full-fledged programming language for business applications on the other end. It’s strong design to work tightly with the MS-Office application’s object models, easy and quick entry effort required and “built-in” with all of MS-Office applications out-of-the-box delivery way, made it highly popular among business users, but mainly for office-oriented tasks. In 1999, with the release of VBA 6.0, Microsoft opened up the option to call external services using the COM interface, a hint of its possible future as a more open and general programming language, albeit favorable to the Microsoft world only, in most cases.
Today, VBA allows accessing the Internet, calling COM and DLL function libraries, working against standard databases, and naturally, easily addressing the MS-Office applications’ objects, a plate that could have entitle VBA a place of honor in the mainstream programming languages sphere. The masses did not come. Why?
In my mind, the prominent reason is Microsoft’s policy to promote its .NET stack and leave VBA as the little kid for its Office suite. The success of any technology platform, was always the ability to build an Eco-system around it: nurture the developers’ community to adopt the platform of choice. Best is to give the developers the platform and education for free, and capitalize on the consumption of its produce. Examples for that abound. One of the clear reasons Java became so popular (however not the only reason) is the fact that it was free for developers to learn and start coding. Being a free language, it was adopted by many universities as a language of choice, and the rest is history. Microsoft’s technologies are no different.
Want an opposite example? Magic was a revolutionary business applications development environment, in which you could plan your database, design a business flow, users’ interface and reports – without writing a single line of code! Magic was popular in the late 1980’s into the 1990’s, but instead of becoming hot for every business, it died. Magic were so keen on protecting their platform so that you could not develop, or learn Magic, without a physical dongle plugged in the back of your computer where the printer was hooked. The dongle came with the license you purchased. Magic programmers were a handful. There was no knowledge and skill-set market developed. Magic lost the grip, despite too little, too late attempts to open their platform for free development in their last years.
This is why companies such as Microsoft, SAP, Cisco and others offer universities their technologies for free for education purposes. Build a large community around your platform – and you win the market!
Microsoft never really promoted VBA to be a mainstream development platform. It never proactively encouraged a community to form around it. They didn’t want VBA to become a popular development environment, as their hesitant history with VBA shows. They dropped VBA support in their Office suite for Mac in 2008 (only to restore it back in 2011, in a much more compatible way to the Windows version). They stopped offering distribution VBA licenses back in 2007, in what seemed to be an attempt to kill VBA and replace it with their more strategic technologies, around .NET. Still, Microsoft did acknowledge VBA is too entrenched in tens of millions of office applications around the world, that it is simply impossible to let it go. By dominating the desktop with the MS-Office suite, they inadvertently widely rooted VBA. In 2008, Diego Oppenheimer of Microsoft wrote in his famous “Clarification on VBA Support” blog post: “We understand that VBA is a critical capability for large numbers of our customers; accordingly, there is no plan to remove VBA from future versions of Excel”.
We now ended up with a technology that is definitely capable, however not up-to-date along the recent lines of computer programming trends, to be used for business applications on one hand, but not so popular for that purpose on the other hand. Now, you can just turn your back on VBA, or see an opportunity. If most developers turn to other technologies, you may not have too much of a competition if you become a true professional business applications developer using VBA.
In the next blog post I’ll try to run down a more detailed pros and cons for VBA to be chosen as a programming language to master. This will be followed by a post about the skills required, in my opinion, to become a successful VBA business applications developer, stay tuned…
Join today to the Excel VBA Inner Circle with Mor Sagmon.
The first to enroll as founding members will enjoy exceptional, life-long benefits and prices.
Click the button below to learn more and join.
Founding Members enrollment closes on December 12 at Midnight.