macintosh
VBA for Macintosh goes away - Joel on Software
Fall 2008: Boston:Business of Software 2008a JOEL ON SOFTWARE conference
Search:
Wanted: C++ Software Developers
at Cooper Power Systems (Quebec, QC / Montreal, QC).
See this and other great job listings at
jobs.joelonsoftware.com.
VBA for Macintosh goes away
This item ran on the Joel on Software homepage on Wednesday, April 25, 2007
The first few versions of Excel (1.0 through 4.0) had a rudimentary macro programming capability using a programming language so embarassing that it never had a name, although it was sometimes called XLM (its file extension).
In 1991, Visual Basic 1.0 had just shipped to rave reviews. Combining a graphical UI builder similar to NeXTSTEP's Interface Builder with a simple Basic programming language that was highly compatible with QuickBasic, it rapidly became the best selling programming language, a position it maintained until droves of developers switched to web development.
Much as professional programmers sneer at the Basic programming language, market research unambiguously showed that about 2/3rds of the kinds of accidental programmers who develop macros preferred Basic to other languages and perceived it to be easy.
Thus, the obvious choice for Excel's next macro language was some version of Visual Basic.
There were a bunch of complicated requirements, though. Excel was cross platform. The Mac version sold very well. To be a good Mac player, Microsoft had to support Apple's cross-application scripting architecture, Apple Events. Rather than implement two object models, the Excel team concluded that the object model for Excel had to be Apple Events compatible. For complicated reasons, the Visual Basic engine wasn't object oriented "enough." In particular, objects could have properties, but those properties couldn't, themselves, be objects. Visual Basic 1.0 didn't support things like "rows(1).cells(2).value" because the row object couldn't contain another object.
The VB team implemented an all-new version, for both Macintosh (System 7 on Motorola 68k) and Windows (3.0 on 16 bit processors). This became Visual Basic for Applications, and, soon thereafter, the standalone version, Visual Basic 4.0.
The whole effort took quite a bit of work. However, it was seen as extremely "strategic." Here's what that meant. Microsoft thought that if people wrote lots and lots of VBA code, they would be locked in to Microsoft Office. They thought that no matter how hard their competitors tried (in those days, they were Borland, Lotus, and, to a far lesser extent, Claris), they would not be able to emulate the VBA programming environment and the gigantic Excel object model perfectly. At some point, any Excel VBA macro they tried to run would get in trouble and crash. This is the same reason apps under Mono, Wine, etc. hardly ever work the first time out of the box: in any large API or programming interface, there are so many subtle, undocumented details of the behavior, which programmers may be depending on without even realizing it, that any emulation environment will inevitably be imperfect. In the brittle world of programming, such imperfections often mean your program crashes long before it does anything useful. You don't get partial credit when you try to emulate an API.
In essence, in addition to giving Excel users a nice programming language, Microsoft was building a highly strategic barrier to entry, and locking in Excel users, especially corporate users who are most likely to build large systems based on macros.
Eventually, all the Office apps came along: Word, Project, Access, Outlook. What was a strategic lock-in for Excel grew to have major strategic value for the whole Office system.
Last August Microsoft decided to drop VBA from the Macintosh versions of Office. Despite complicated technical explanations, every development decision like this is based on a cost/benefit analysis. Mac users are less likely than Windows users to have business-critical macros, simply because Macs are rarer in large business.
But what's really interesting about this story is how Microsoft has managed to hoist itself by its own petard. By locking in users and then not supporting their own lock-in features, they're effectively making it very hard for many Mac Office 2004 users to upgrade to Office 2008, forcing a lot of their customers to reevaluate which desktop applications to use. It's the same story with VB 6 and VB.Net, and it's the same story with Windows XP and Vista. When Microsoft lost the backwards-compatibility religion that had served them so well in the past, they threatened three of their most important businesses (Office, Windows, and Basic), businesses which are highly dependent on upgrade revenues.
PS: in researching this article, I tried to open some of my notes which were written in an old version of Word for Windows. Word 2007 refused to open them for "security" reasons and pointed me on a wild-goose chase of knowledge base articles describing obscure registry settings I would have to set to open old files. It is extremely frustrating how much you have to run in place just to keep where you were before with Microsoft's products, where every recent release requires hacks, workarounds, and patches just to get to where you were before. I have started recommending to my friends that they stick with Windows XP, even on new computers, because the few new features on Vista just don't justify the compatibility problems.
PPS: I was a member of the Excel Program Management team from 1991-1993, where I wrote the spec for VBA for Excel.
Discuss at joel.reddit.com
Students: Fog Creek Software has awesome summer internships in New York City. You get free housing, free lunches, lots of free New York activities, and a chance to write great code with great developers. And a competitive salary. Apply today: we only have four open positions and usually get hundreds of applications, which will be considered on a first-come, first-served basis.
About the Author: I'm your host, Joel Spolsky, a software developer in New York City. Since 2000, I've been writing about software development, management, business, and the Internet on this site. For my day job, I run Fog Creek Software, makers of FogBugz - the smart bug tracking software with the stupid name, and Fog Creek Copilot - the easiest way to provide remote tech support over the Internet, with nothing to install or configure.
Enter your email address to receive a (very occasional) email whenever I write a major new article. You can unsubscribe at any time, of course.
Email:
I'm your host, Joel Spolsky, a software developer in New York City. Since 2000, I've been writing about software development, management, business, and the Internet on this site. More about me.
There's a complete archive of everything going back to 2000. The home page is reserved for minor, ephemeral thoughts, but occasionally I write a longer article. You can sign up to receive email whenever this happens at the bottom of this page. We also have one of those RSS thingamajiggies. If you don't know what that is, consider yourself lucky.
This site has been translated by volunteers around the world into more than thirty languages.
Share links to interesting URLs with other readers at the Joel Reddit (about).
Want to hire great developers? Looking for a job that doesn't suck? Check out the popular job board or the job board for India.
Have feedback? There are several popular discussion boards on this site:Joel on SoftwareBusiness of SoftwareDesign of Software.NET QuestionsTechInterview.orgCityDeskFogBugzFog Creek Copilot
You can also email me directly, although my mailbox is an official disaster area.
For my day job, I'm the CEO of Fog Creek Software, a bootstrapped software company in New York, NY.
We make FogBugz, a bug tracking system that actually works and can be used to manage everything your development does, from bug tracking to customer email to feature management to project scheduling and so much more. Check out the screenshots or the free online trial.
We also make Fog Creek Copilot, which lets you control someone else's computer (with their permission, of course) over the Internet. It's the best way to fix someone's computer problems remotely. There's nothing to install, it's simple as heck, and it works through any kind of firewall, NAT, or proxy situation with zero configuration. More
If you're in college, Fog Creek Software has a very cool paid internship program (last year's interns developed Copilot in one summer). We also run a Software Management Training Program, an intensive three-year program for college graduates to learn about managing high tech that combines a Masters in Technology Management with extensive hands-on experience in a variety of positions.
Wondering what it's like to develop software at Fog Creek? The documentary Aardvark'd covers the story of the development of Copilot. It's available on DVD.
So far, this site has been made into three books: User Interface Design for Programmers, Joel on Software, and Smart and Gets Things Done. All are excellent ways to catch up on years of the drivel that appears here without going blind reading it on a tiny screen. I’m also the editor of The Best Software Writing, a collection of other people's superb essays about software.
Fog Creek co-founder Michael Pryor has his own site on Technical Interview Questions.
The entire contents of this site represent the opinions of one person. This site is built with CityDesk and hosted by Peer 1 Network.
В© 1999-2007 Joel Spolsky. All Rights Reserved. Linking, quoting and reprinting
Home | Email | Bug Tracking Software | Remote Assistance | Complete Archive
разделы
уцененный холодильник
конкурентный стратегия
холодильник zanussi
1с бюджетирование
детский гинеколог
5004.10 (крышка)
кожгалантерея
пвс
капсула миаози
крот-95
бестраншейный облицовка
креатин
вихревой теплогенераторы
restart плита
вытяжка крона
индивидуальный банковский ячейка
вал редуктор поворот
электро лаборатория
ферромолибден
герб вышивка
трехмерный презентация
резка
вышитый герб
напыление ппу
проведение лотерея
предохранитель пкт
набор гинекологический
гильза цилиндр
fag
краска двухкомпонентный
время иваново
бензопила stihl
холодильник оптом
светящийся краска
красный площадь гум
asus p505
ubiquam
герб вышивка
прерывание беременность
fag
плазменный панель настенный
охота бабочка
ночной очки
управление ярославль
детский лагерь пионер
пп-пленка
асбест а7-450
купить букмекерский линия
значок медаль
купить ножовка
альтернативный медицина
мачта флагшток
перевод денег
проходить осмотр гинеколог
изготовление пленка
кулер процессорный
газонокосилка dolmar
отпуск конец
рукавица
колодец канализационный пластиковый
катетер
уничтожение данный
краска ржавчина
дезинфекция белье
охота пиранья
информационный валаам
шелкография
поставка холодильный камера
электропечь dimplex model brayford
штукатурка фасадный
mobihel краска
ванна моечный
светодиодный экран
вечерний платье
гайковерт
гайковерт
международный конкурс
измеритель фаза нуль
купить стиральный
кристофер брэнд
холодильник оптом
акриловый пряжа
надпись кружок
оформление свадеб
свойство краска
решетка
ziplock
braas
5004.10 (крышка)
macintosh