Spolsky: ...almost everybody I know is not yet using Google Chrome 'cause they're waiting for AdBlock. Like they just need to be able to write a plugin for Chrome that can block ads. Ahh and as soon as that... or... and, and, and that's the most popular plugin but there are a lot of other smaller plugins that people are relying on in Firefox and they won't switch to Chrome or switch back to IE or certainly not Safari or Opera because those plugins aren't there on that, on that other platform.
Atwood: Oh, the lock-in. Sure that's...
Atwood: ...a great example.
Spolsky: So, the classic example I'll give was the first thing in my career was that Lotus 1-2-3 had Lotus macros and Lotus macros the way they worked was you went into a cell and you just entered a bunch of letters from your keyboard, you know, like /C, M or whatever. And then ahh... and then you could tell it to run that cell and what it would do is actually generate those keystrokes that you had typed into that cell. Umm, and so... umm, you could thus automate Lotus 1-2-3 in certain rudimentary ways. And people started writing these and they got very, very sophisticated and they had these very,very complicated spreadsheets that had lots and lots of crap in the cells. Umm, that was macros that they depended upon to run their business and when they were trying to convert to Excel, you know, all the data in the spreadsheet opened fine and the actual calculations were fine but for the longest time it couldn't run those macros. And so people would not convert from Lotus to Excel. So what, what the Excel team eventually had to do was build a complete emulator of Lotus 1-2-3 that emulated the complete Lotus 1-2-3 user interface. Umm, so for a long time in Excel - it's not turned on now - but if you hit / a Lotus menu would pop up. And er, it would have all the same things that Lotus 1-2-3 had in it. Umm, and that's still there behind the scenes - you just have to sort of enable it. And, umm, that took an enormous amount of work. So if you've got a, a product, and you make a plug-in API... or some kind of an add-in API of some sort or a macro language... ahh, the burden then... and then you actually get people to depend on these plugins then anybody that wants to displace you is going to have to reproduce all the behaviour of your API perfectly. Which can be very, very, very hard, right? In the case of Excel, it's never been done, right? There's a huge surface area to that API.
Atwood: edit me!
Spolsky: I have a request of our listeners if you're listening to this show. We're trying to organize these stack overflow dev days and I've found alot of good speakers on alot of good topics but what I really want is some Python speakers. People to do a python tutorial in each of the ten cities and I don't have any Python speakers lined up at all and I don't really know who the good Python teachers and Python tutors are. So if you've ever gotten a Python tutorial in person or you've heard somebody speaking on Python who you thought was absolutely brilliant and fun to listen to and taught you alot in an hour. Which is what we want to happen at the stack overflow dev days. Could you please tell me who they are? and what their name is and even where they live? and do that by emailing that to email@example.com which is our standard dev days address for any kind of dev days question about dev days.