History of Visual Basic
Many people do not remember when MS did not write Applications but rather was exclusively a language and OS company. A few short years before a cushy IBM deal, Microsoft only made languages. I remember -- I was around for all of this.
Apple (Steve Jobs) knew that the Mac needed Software to be commercially viable and Jobs learned that Microsoft was trying to break into the Application market. In 1982 (or so) Apple came to MS with an offer -- Apple was making a cool new computer (called the Macintosh) and wanted some Developers to write Applications for it. If MS was going to try to break into the Application Market then the Mac was the perfect opportunity to do so. Gates loved the idea and were very excited about Macs.
Microsoft created Word, Multiplan (Excel), and File (forerunner of Access) for the Mac and then later (much) ported them back to the PC. This became the foundation of Microsoft's Application Empire -- all enabled because of the Mac. Most PC people do not know where their beloved Apps came from; many are Mac Ports (with a lot of time and changes under their belt).
Then about two years after the deal was struck (1984), just as the Mac was about to be released, Gates changed the deal on Apple. This was not an unusual pattern; agree to one thing then change it later when you feel like it (or once you get the upper hand). There was an old saying: "Those who got into bed with Microsoft woke up the next morning feeling screwed". Even if I was the guy who originally said that there were plenty of Microsoft's partners who agreed with that saying.
Gates had decided that he was going to use a little muscle. Gates wanted the Mac and felt that Apple needed the Apps he'd written more than he needed the Mac. Because Apple had trusted them they hadn't solicited (or succeeded) at getting as many Applications from other sources as they should have. Also, the Lisa had flopped because it had only Apple's Applications, so Microsoft Apps were critical to the successful launch of the Mac (and demonstrating that it was "Open"). Gates threatened Jobs, Scully, and Apple that he would pull those Applications and never release them if Apple didn't license some of the Mac UI for MS-Applications on the PC.
Apple understood that Microsoft wanted to leverage its Mac Application code on the PCs. Since they didn't have an Operating System (GUI) and Apple had excluded it for that purpose, this all wasn't going to give away the family jewels; or so they thought. This Application suite they'd license later grew into Windows 1.0. Originally it was just going to be an Office suite but Microsoft once again had stretched the terms and started extending what the licenses had meant on their own. So Apple sued. It turned out that Microsoft lawyers had pulled another fast one. Vagaries in the contract didn't exclude future derived works and they argued in court that Windows was just another Application (an Operating Environment, not an Operating System). This confused things enough and is the issue that weakened Apple's case on "Look and Feel" and it's why Apple lost. People thought that Apple lost the case on merit but the truth was it was due to a technicality of contract law. But there was more that started back then as well.
Apple (Donn Denman) had been working on a BASIC Language for the Mac, appropriately named "MacBASIC". The Mac was designed with Object-Oriented design concepts and Pascal. The Lisa (the forerunner to the Mac) was designed around Pascal and had an Object Oriented Framework called "Clascal" that later grew and migrated into Object Pascal and MacApp Framework (done 10+ years before Microsoft's MFC which was another rip-off -- but that's a different story).
Apple was so inspired on OOD (in the early 80's) that they worked with Nicholas Wirth (the creator of Pascal) to create "Object Pascal". So it was no surprise that Apple's BASIC also had many Object Oriented concepts. It was a really neat extension to BASIC, done in a very Object Oriented way, with many visual elements and ways to control a GUI from BASIC. I loved it, and thought it was the coolest extensions to BASIC I'd ever seen. Back then I'd done a ton with BASIC, including modifying Microsoft's interpreter to add my own commands and fix some of theirs.
Bill Gates and Company were busily working on MS-BASIC for Mac. He got wind of MacBASIC (when Apple pre-released the manual) and realized that the competition just blew his product away. This was quite an ego slap for Gates who has an uncontrollable urge to win at any cost and BASIC was still the crown jewel of Microsoft. He did not want to win fairly (by producing the best product); he wanted to WIN [period]. He had one of those tantrums he was famous for and went to Apple and resorted to muscle. Again. If Apple didn't drop MacBASIC immediately then MS would pull all MS products from the Mac market for good. Most importantly, the License for Microsoft BASIC on the Apple II was coming due and he would pull that license as well. He was likely bluffing since this was significant business to Microsoft, but since the Apple II was still the cash cow of Apple, and Gates was known for tantrums, Apple didn't want to take the chance for a programming language.
Apple had no choice and decided that BASIC and "non-professional" programming was not that important for an Appliance-Computer like the Mac. Even though books had gone to press and the product had leaked out in late betas (and even early release versions), MacBASIC had not quite had its big roll-out yet. So Apple pulled the product to appease Bill Gates and caved to extortion again.
Apple had Pascal and Assembly, and Microsoft promised to step up efforts on their own BASIC to make up for the hole they were going to leave in the market. So they once again trusted Microsoft. (Did I mention that's a really stupid thing to do?)
Bill Gates had won, and that was all he cared about -- but his BASIC was underwhelming (to say the least) and was never that good (on the Mac or elsewhere). He lost interest in the product once he had achieved complete market domination and accordingly he let support for it dwindle. A couple of years later he pulled the Mac version MS-BASIC off the market completely, which wasn't being supported well anyway, and left the Mac without an introductory language for users. This was part of where the Mac got the reputation as being "hard to program"; there was no usable BASIC for it. Thanks, Uncle Bill.
One of Apple's top Mac programmers (Bill Atkinson) was annoyed with the lack of BASIC Programming (because of the situation with Microsoft). So he decided to make his own solution. Many months of hard work later he had created Hypercard (or WildCard for those who remember old code-names).
It was visual, Object Oriented, easy to use, and more graphically oriented than most other languages. Apple still had legal agreements with MS and Atkinson didn't want to create a tool that violated that by using BASIC. He'd also wanted to make something that was even easier. Along with his partner, Dan Winkler, he tinkered with the Syntax to make the language used much looser and more English-like (trying to make it easier to program). The result was their own scripting language called HyperTalk.
Atkinson used Hypertext in his "Hypercard" in one of the first commercial uses of hypertext that I know of. Hypertext is now the primary conceptual basis of the World Wide Web and HTML (the file format of the Web). HTML means Hyper-Text Markup Language. Atkinson (and Apple) used Hypertext concepts 10 years before the web took off; but the concepts were the same. You clicked on links and buttons and they took you to other places in your document (or program, or another "HyperCard").
Hypercard met a need perfectly and is still a cool introductory tool for scripting and control. Some great multi-media presentations can be made with it as well. Sadly, Hypercard needed some upgrading pretty soon after its release to support features Apple was adding to the Mac (like Color). But Apple was only half-heartedly interested in Hypercard. The mentality was still that it was an entry-level programming tool and Apple would market it, but didn't think it was worth much effort. So Apple killed it with neglect and let it die on the vine. Still, it wouldn't die completely; people loved it so much that it kept thriving and reviving despite Apple's lackluster support -- another great opportunity that was never realized because of Apple's incompetence.
VisualBASIC is just MacBASIC and Hypercard
Hypercard may not have had Apple's full attention, but it certainly got Bill Gates'. He saw that Apple had once again found a better way. Bill Gates had turned Microsoft into a business of copying Apple's every move on the Mac and bringing it to the PC as "innovation". Windows 3.0 was their best rip-off yet (still not very good) and they needed something to compete with HyperCard. Lots of animators and people creating multimedia content could do so on the Mac and script something up in a hurry. Bill needed to win.
So Microsoft created VisualBASIC. Actually, they found an obscure third party company that had already started that project and bought them or the product, saying something like "resistance is futile, you will be assimilated". But BASICally (pun intended), VB was just the Object Oriented functionality of MacBASIC combined with some of the visual elements of Hypercard. It was quick to make since MS already had the code for their BASIC.
Bill Gates also decided to punish Apple for competing with him (with Hypercard) and to this day will not release Visual BASIC for the Mac as a slap -- even though it would be beneficial for both markets to do so.
The first versions of Visual BASIC were hacks and cheap rip-offs but Bill Gates was able to market it as "innovation". Not surprisingly the PC crowd loved Apples ideas (with Bill Gates' wrapping) and it became an instant success.
Apple started creating AppleEvents and AppleScript so that Mac users could script any application using a universal scripting language on the Mac. And once again, about 5 years later, Microsoft and Bill Gates decided to borrow Apple's ideas for their own gain. And once again, rather than designing something new and focused to the new job, they borrowed from their own code base (and from BASIC). So Microsoft created VBA (Visual Basic for Applications), which was their scripting and even model. It borrowed almost everything (conceptually) from the idea of AppleEvent and AppleScript; it just used the BASIC syntax instead.
Of course, there were changes. AppleEvents and AppleScript were open and promoted equality for everyone to use. Microsoft, on the other hand, started by making their versions proprietary; only for use with their own Applications for the first few years. They used this "feature" to crush a few more competitors and constrict the PC marketplace into even fewer choices (with MS being the only choice). But later, after the damage to the competition had been done, Microsoft opened up VBA for the entire Operating System (a little...they still use extensions and things they don't share). Many saw Microsoft as being a "good guy" for doing that while ignoring that it was them who closed it off in the first place. Sometimes the brainwashing of the PC crowd just amazes me; they feel they are supposed to thank the abuser when the abuse lessens?
Bill Gates created his empire (and the Microsoft Business model) by ripping off everyone he could, and none more than Apple. But when he copies Apple the result is like Apple's evil twin; he twists every goal and intent just a little to give himself (and his company) more power and further restrict competition in the market. Inside of Microsoft, it was a common "joke" to call Apple "R&D South" because of how many of their ideas they got directly from Apple. The thing that astounds me (and many other people in the know) is how often MS gets credit for things they did not create.
Apple is not flawless but their philosophy is substantially different. Apple was a bunch of temperamental "artists" trying to create something new; their problem was follow-thru and dropping things after they lost interest or not realizing the value of what they had. Microsoft was a bunch of insecure wannabe dictators trying to control the world and WIN (to make up for personal insecurities) through any means necessary. Both companies corporate cultures seem to have had some of their founders' personalities rub off on them.
Microsoft doesn't usually even do a good job of copying other people's ideas (at least in the first few passes). But they aren't stupid either. While Hypertalk is easier for new programmers to use, BASIC was more standard (in Microsoft's proprietary way). Microsoft short-cut the process of doing something new and better and it worked out for them in the end. The same with Apple Events / AppleScript and VBA; Apple created something new and better and more focused on the task at hand while Microsoft borrowed it. But people are lazy and it was easier to understand VBA (initially) with less training. Even if AppleScript was better it was something different and required a paradigm shift. Microsoft played to the lower tendencies and emotions in humanity (sloth, laziness, and love of things cheap and easy). Apple tried to play to the higher ones (doing it right, learning from your past, growth). Microsoft usually won. I think that says a lot about humanity.
Microsoft's repeated theft and destruction of competition (and better ideas) is the main reason why they are such a hated company by so many. If you look historically, they have contributed very little to the PC industry; at least in things that didn't already exist. They succeeded only by driving out competitors (usual ones with superior products) and taking their market using various quasi-legal tricks. The History of Visual BASIC and its success is a microcosm of the microcomputer industry. It represents Microsoft and Apple in their traditional roles: Apple innovates while Microsoft threatens, steals, cheats, and wins. Microsoft gets credit and becomes rich from other people's ideas.