a16z Podcast - a16z Podcast: The Promise (and Nightmare) of Cross-Platform Software

Episode Date: June 6, 2014

The announcement by Apple of its new programming language Swift is prompting developers to consider yet again how to tailor their efforts in the battle between iOS and Android. Benedict Evans and Stev...en Sinofsky discuss the questionable history of cross-platform software, and strategies for startups building apps today. How developers can build great apps on both of the largest mobile platforms. This platform question is one Sinofsky has been grappling with for a very long time, and which he also details in this post: http://blog.learningbyshipping.com/2013/07/08/juggling-multiple-platforms-and-the-bumpy-road-ahead/

Transcript
Discussion (0)
Starting point is 00:00:00 Hello and welcome to the A16Z podcast. This is Benedict Evans. I'm here today with Steve Sinovsky. We're going to spend a little bit more time thinking about what Apple announced yesterday at WWDC in the context of some of the challenges that our portfolio companies face around development and particularly cross-platform development. So Steve, I was at WWDC yesterday. I kind of experienced a moment where Apple started talking about a new programming language and half of them went completely quiet and the other half went, wow, that's really,
Starting point is 00:00:30 really cool and I was in the half that was going completely quiet, I have no idea what these people are talking about. But coming away from it, one of the things that you and I were talking about is that Apple's doing quite a lot of stuff in one way, and Google is doing quite a lot of stuff in another that doesn't really have an analogue on the other platform. So if you were to look at, you know, Windows and Mac, you have a file picker, you have Windows, you have scroll, you have a bunch of tools that basically have direct analogs on the other platform. Whereas, as Apple does more, on the one hand, more and more stuff that's about the hardware and Google does more and more stuff that's about the cloud, and Apple starts doing its own SDKs
Starting point is 00:01:09 that address the harder in particular ways and does iBeacon and so on, it feels like you might be building an app that takes advantage of stuff that does, that Apple gives you, that actually doesn't exist on Android, or vice versa. So you can't really do an app that does the same thing on both. What do you think about that? Well, I mean, I think that first, good morning, everybody. But I think that that's actually sort of this core challenge. You know, at the heart, the goal of developing a platform, you know, has the side effect,
Starting point is 00:01:37 whether you think it's intended or otherwise, of making cross-platform development harder. I mean, developers don't come into work every day thinking, how can we advantage our platform or not? They actually come to work to develop new scenarios, new capabilities. And what's fascinating, if you just look at the iOS and Android, you know, which is only two of the many platforms, including web or Windows phone or Chrome that people are targeting, you know, they just have very different perspectives on the architecture, on where to solve things.
Starting point is 00:02:07 You have Google very, very focused on cloud services and Apple because of the nature of hardware. You know, they focus on that seam between hardware and software. And so that's just going to lead to a whole bunch of different features. And so then you sit down to write an app, and you're sort of like right away asking yourself these questions about what to use where. Yeah, historically, it's really super interesting because cross-platform sort of follows a very tried and true, well-understood pattern, which is early in the evolution of sort of what I would call like a meta-platform, like the new thing.
Starting point is 00:02:41 The new thing, whether it's the mainframe or the wearable or the mobile phone or the PC, all the platforms that are competing to win tend to look kind of the same. so early in the PC era most of the PC-ish platforms I don't mean PC like DOS I mean PC like thing with a microprocessor Yeah they all had a box and a keyboard and a command line And a command line and the APIs were about
Starting point is 00:03:07 Drawing on a screen and black and white And reading writing to a disc And so they all have those And all the vendors are trying to make those things And then one day they all sort of make them And then they start going Well we have to do stuff that we want to do and then they look to differentiate their products,
Starting point is 00:03:24 and then they look to, you know, what's their view of the future? And then pretty quickly, they all just start diverging. And so then everybody was really comfortable. Like, if you wanted to write a thing that worked across all the early PCs, abstracting out, like, basic graphics, they're only like eight APIs to begin with.
Starting point is 00:03:40 And then file systems that were another eight. And so it was pretty easy to come up with your own sort of abstraction. And then all of a sudden, like, the graphic system turns into, like, a bitmap raster graphic system. And then this whole platform thing starts all over again. Everybody's like, okay, if we just use set pixel, then we can be cross-platform across all the raster systems. And then all of a sudden, everybody starts doing their own visuals, their own controls, their own metaphors for windowing.
Starting point is 00:04:06 And then that kind of breaks down. And then like really big abstract concepts happen, like networking or cross-application sharing. And, you know, that all of a sudden it breaks down. And we saw the same thing with the web. You know, like the web had hopes of being. cross-platform for everybody. And you looked at HTML and you said, oh, cool, I have to just write a rendering engine for these 40 HTML tags. And that worked. And then all of a sudden, people started adding other tags. And it got harder and harder and harder. And then there were
Starting point is 00:04:33 compatibility tests. And then the committee got together and said, we're going to do HTML 5. But then right when that happened, the vendors started sort of saying, eh, we have other ideas. Like Google had a very different idea because they were trying to build your entire computing experience into the browser, not just the browser part of it. And so this, pattern just keeps happening and i mean i think you can see that that inflection point very clearly now with with um with smartphones because it feels like what happened is the original vision of seven years ago has got built out and all the stuff that kind of should have been in that vision like you know notifications and multitasking and so on has got done and it's all there and it's all been kind of
Starting point is 00:05:09 iterated through three or four versions and now you're kind of getting to the point we think yes okay so we've got that platform and we've done like the stuff that should have been there but what do we actually think about what they should look like in another first five years time. I think the thing that was very striking about WWDC is this whole meme that Apple doesn't get the cloud. And all the stuff that they were doing was about the cloud. All the new features were about the cloud, but it was the cloud as a sort of invisible bit of plumbing that drives a rich native app. Whereas, of course, for Google, it's exactly the other way around. And so the thing I said on Twitter was that for Google, all hardware is just kind of dumb glass that links
Starting point is 00:05:45 back to their cloud. Whereas for Apple, the cloud is kind of dumb storage that supports their platform. But the consequence of that is you have very, very different philosophies about what it is that an app's supposed to be doing or how it's supposed to go about connecting to things or using resources. Right. Absolutely. And then, of course, people come along and they think, like, you know, when we talk to portfolio companies, they think about where they are today, and then they look at all the work that's being done across the two, and they go, okay, well, we can find the 90% that is okay, but it's actually the last 10% that makes the difference in a quality app experience on those platforms or a quality, you know, back end and cloud experience. And so it's,
Starting point is 00:06:20 It's actually not so straightforward to even carve out like what's common anymore because what's common is essentially what the market is already defined as commoditized. You know, like your basics of making calls and sending messages or even the basics of an app are all sort of commoditized. And so as a startup or as a new app, what you have to do is you have to really, really focus on what your differentiation is going to be. I mean, like, I take something like really as, as it could be either as thin or less relevant as you want it to be or it could be a huge thing, like home care. So, you know, first, there's nothing like it on the Android platform. So right away, if you make a device like light switches or whatever, and you're looking, you know, you probably already think, I'm going to build an app and it's going to have a big, you know, on off toggle, and I'm going to have rooms and a layout of my house and all this other stuff. And then, you know, that looks great on Android and it looks great on iOS right this minute. But then on iOS, you can say to Siri, hey, I'm going to bed.
Starting point is 00:07:13 Right. Or you just, there's a whole app infrastructure for doing that, which then takes over some of. of your UI. So if you're an established player, you're just going to stiff arm that whole thing and hope it goes away. But while you're doing that, all of these new players are thinking, this is such relief because now we don't have to hire a whole software team. We could go and make Apple certified devices. We can build on the retail presence that Apple has to drive the devices. We'll be in their stores. We'll be online. We'll be in their commercials. Like, there are actual tangible benefits to building on the platform, like to you as a company. And so you're, you're
Starting point is 00:07:50 sort of squeezed if you think you're just going to ignore it, especially if Apple goes and continues to double down and does more work and makes the experience better, integrates it with Siri, integrates it at the Mac and does like a bigger, cooler dashboard. Who knows what they're going to do? And that's just one of the things. I mean, you mentioned photos. So now there's a way to integrate with photos in an even deeper way. So, you know, normal developers go, oh, no big deal. I'm just going to build my own photo picker. I'll ask for permissions to the library and I'll do my own thumbnails and enumerate the photos. Well, except now your app doesn't look like Android or iOS,
Starting point is 00:08:24 and you could maybe try to copy them a little, but they're moving targets. So I remember using Lotus Notes in a miserable period of my life. And this was a period when it was kind of a poster boy for kind of questionable UI choices. And one of the big drivers was you had the same Lotus Notes UI on every device you might own. And the result was, A, it didn't look right on anything. But B, just because the developer knows that it looks the same on every device, the users don't know it looks the same on every device. Yeah. Well, that's the whole thing.
Starting point is 00:08:58 I mean, cross-platform has always been this like dream of programmers, an empty promise from our industry, you know, and a nightmare for customers. Because even today, like little things that you notice, like, you know, the fact that on iOS, the really marquee social apps are all just better than they are on Android. Things like copy paste of images and sharing and integration with contacts all are much smoother and more seamless, even though Android is more extensible and open by some accounts. And it's because that's where the focus has been on building a really great job. And, you know, if you look back historically, like Lotus Notes was just one example. Actually, my own first, my very first coding work at Microsoft back in the 80s, basically, was building cross platform. And, you know, people have actually recently told me that some of that. code still lives in the iPad OS iOS apps for Microsoft because it's this Mac.
Starting point is 00:09:52 And why did we do that library? Well, because at the time, going back to your original thesis, you know, what what differentiated Windows from the Mac was kind of not very much. Like Windows were the sort of the same. And what was weird is the feedback from Mac customers back during like that sort of mid-90s era was that the Microsoft Mac apps were starting to diverge too much from the the Mac platform. In fact, even very, very early on, the Microsoft Mac programs all had keyboard shortcuts. Back when Mac software was not supposed to have keyboard shortcuts, that was a very
Starting point is 00:10:26 big quasi-religious debate about right-click and keyboard shortcuts. But Microsoft not only thought they were just a better idea, we wanted to have them across all of the platforms consistently because that was the value proposition, much like your Lotus Notes one. But then one day you realize that cross-platform is a developer thing because no one person is cross-platform. Yeah. I mean, it's a little bit different with mobile devices because you are much more likely to go from an Android to an Android to an Android, but only every two years. Well, every two years. Not every day. Yeah. And that still is likely to be an edge case, although actually Apple was talking yesterday about all the people moving, which really gets
Starting point is 00:11:06 to the heart and soul of your decision framework from a business perspective as a, as a as a startup or building a new app. You know, because up until, like, just the past six months or so, I think a lot of, and, you know, your expert on this, but I think a lot of developers had a tendency to be developers and look at these sort of broad aggregate numbers and have big debates over aggregate share or run rate or even fragmentation, when in fact you have to sort of drill down
Starting point is 00:11:31 when you're making a business choice. Yeah, so, I mean, Apple, I'm guilty of this as anyone else. I mean, they put up a chart yesterday where they said, well, 80% of, 50% of Macs are running the latest version of Mac OS and a much smaller proportion of PCs are running Windows 8. But you think, okay, what is the absolute number of PCs that are running Windows 8? I bet it's a awful lot more than the 80 million Macs that are out there. So you have to kind of sit and think about your target market.
Starting point is 00:12:00 I mean, one can have a whole other conversation about this, but it's one thing to say that there are, you know, as it might be a billion Android's, Google androids as opposed to Chinese Androids as it might be a billion Androids in use at the moment And there's maybe 400 million iPhones 500 million iPhones something like that But then San Francisco is 60% iPhone
Starting point is 00:12:19 The USA is 50-50 iPhone now Japan is over 50% iPhone now And the rate of that chain And that's swimming Apple is gaining share in those markets And then when you think Okay Apple are only selling $600 devices And Android is selling at a range of prices
Starting point is 00:12:34 So what is the deal? distribution within those smartphone owners of people who really, really care about apps. You know, the people who bought Galaxy S4 care about apps, but most of the Android's being sold and not those devices, they're the devices you get when you go into the store and don't care. So, you know, if you go to India or Indonesia or Vietnam or China, you will get a load of really aggressive, highly engaged users on Android. You go to San Francisco, you won't. You go to the USA, you're probably going to find the two-thirds of the aggressive engaged users or an iPhone. So those aggregate market share numbers
Starting point is 00:13:06 tell you, they tell you relatively little because what they're really just telling you is, look, everybody on earth is going to have a smartphone. And some of those people are going to be worse more than others and some of them are going to be in different places. So when you make those platform decisions, yes, there is that API, but it's, how does that API relate to the customers that you want to use? Yeah. How do those development choices relate to the addressable market? I mean, like, even if you're doing, you know, something, you know, high-end retail oriented, you know, if you're doing an app for a high-end retail brand, it's sort of in the U.S. market,
Starting point is 00:13:41 it's sort of a crazy idea to think you need the Android one first or best when you already know the demographics of the iOS customer. But conversely, you're doing a communication app that you're likely to release in Western Europe or China first. You'd sort of be crazy to do it on iOS first. Yeah, so I have a slide with a kind of a pyramid and an inverted pyramid, and the pyramid is, you know, you've got a small portion of the population that thinks, wow, I can't wait to see what new I-Beacon apps are coming out.
Starting point is 00:14:09 You know, I can't wait to see what new intents and what cool new stuff is going to be done on Android. You've got a big chunk of people in the middle who don't really care, and then you've got another big chunk of people at the bottom. And then when you look at the new technologies, the really new cutting-edge stuff applies to a relatively small portion of the base. So you've got to kind of make that decision, well, you know, if you are Tiffany's, then I-Beacon is really exciting.
Starting point is 00:14:34 if you're McDonald's, maybe not, and that applies to cross all of this stuff. So, you know, the cutting edge, you know, in a sense, if you're going for the lowest common denominator of customers, the lowest common denominator of development tools and of APIs and of technologies is probably going to be the best as well. If you're going for those specific segments, then focusing on one platform or one platform's tool is going to work better. Yeah, I definitely think that, you know, just sort of to wrap up, but like, you know, certainly if I were thinking about this now, I'd be very focused on figuring out who are
Starting point is 00:15:04 customers are as the driver for this, as opposed to sort of aggregate market data or geographic data that could really confuse you into things. But I would also say, like, we're only at the very beginning. This really is almost at a tipping point of these platforms. And so it's very likely that things are going to get more difficult and diverge even more, probably even more quickly. Like, we don't even know, you know, Android's up next. Yeah, I mean, we have no idea what Android's going to be in five years time. And, you know, my feeling yesterday was this is almost like iOS 2. you know there's just such a big change in philosophy and you know and this is one where I kind of
Starting point is 00:15:38 want to just you know this is not a new pattern you know developers love patterns and this is not a new pattern we have seen this movie before so just encourage everybody to really think hard about you know this least common denominator or trying to thread the needle because historically it's put you at a disadvantage over time to your domain specific competitors and so if you've got the opportunity to either focus on one platform or treat it almost like you're building two products and really, really focus your energy on being great on both. And I think that's just going to be the sustainable competitive advantage for any company building mobile apps right now.
Starting point is 00:16:13 Yep. So, Steve, thank you very much. That was really interesting. We're going to carry on trying to work out what we think about this. Sure. And also follow this one on Twitter because I bet there are some strong opinions. And we'll also post a link to a pretty long blog post I had a while back on cross-platform development. Thanks a lot.
Starting point is 00:16:29 Great.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.