Visual Basic a Casualty of Processor War
The announcement last week from Microsoft’s Macintosh Business Unit (MacBU) that Virtual PC for Mac will be discontinued, and that future versions of Microsoft Office for Mac will lack support for Visual Basic macros, has sparked one of those rumor wildfires over which, as usual, cooler heads must prevail.
Virtual PC was always a desperate half-measure at best, sufficient (say) to test a cross-platform application built with REALbasic slowly, but not for serious Windows-based work. Personally, I won’t miss it, and I look forward to acquiring an Intel-based Mac and running Parallels Desktop so I can try Dragon Naturally Speaking at last.
As for Visual Basic, the news seems to me almost entirely good. Visual Basic support in the Mac version of Office was always a crusty hack (just how crusty is made clear by Erik Schwiebert in his blog and by Rick Schaut in his), and was never on a par with the Windows version anyway; its removal will be, if anything, liberating.
The real take-home message here is that Mac Office has at last been completely migrated into Xcode. This means that a universal binary build of the Office applications is now more than a theoretical possibility. In effect, the MacBU has managed to squeeze a camel through the eye of a needle; the fact that in the process one of its humps fell off (Visual Basic support) doesn’t detract from the achievement. Plus, remember, a Microsoft Office that can’t run Visual Basic will close one of the largest security holes on most people’s Macs today, namely the danger of receiving a Word document infected with a macro virus. Finally, you’ll still be able to automate Office through AppleScript, support for which became downright excellent in Office 2004, and which will surely be even better with the underlying Visual Basic scaffolding removed and no longer dictating how an AppleScript command is formed.
And what if you need Visual Basic compatibility in order to cooperate with Windows users? I guess you’ll just keep on using Office 2004 (under Rosetta, if you’ve migrated to Intel); that will be a pity if it means missing out on subsequent Office improvements, but to call it a hardship would be a bit strong.
The real unanswered question, it seems to me, is how Excel users will write custom functions (as opposed to macros). AppleScript’s math would not be up to this, even if Excel could somehow call back into it, so the MacBU must either ignore the problem and cripple Excel or come up with a completely innovative solution. Time will tell.