Fronteers — vakvereniging voor front-end developers

The Future is Native by Aral Balkan

Video

Transcript

Aral Balkan: [0:05] First of all, it is so great to be back here on this stage. I realized I was here two years ago for the Kings of Code conference. I love being back in Amsterdam. I love the Netherlands.

[0:20] Today, I'm going to talk to you about "The Future is Native." This is not how I wanted to start the presentation, actually. But I feel I really do want to say a few words before I do start.

[0:37] I don't know if all of you know, but I got a text a few hours ago, when I woke up, saying that Steve Jobs has passed away. I just wanted to say, whether you like what he's built, whether you hate it, I think it's hard to deny that he's touched all of our lives in some way and that he's made quite a difference in the world.

[1:02] As a user experience designer, as someone who makes things that other people use, as someone who wants to make things that make other people happy when they use them, I just want to say "thank you" to Steve Jobs and I personally will miss him.

[applause]

[1:23] And now, on to happier things. OK.

[1:36] So I realize, especially as I was walking around and when I was talking to you guys that if you're going to stand in front of a room of web standards people and web developers and talk to them about how you think the future is native, you can probably choose a better place to do it than the Netherlands.

[1:59] This is why, I illustrated it for you. It's very, very scary. You are big people. I am not. Please, be kind.

[2:11] So web versus native... I'm sure you guys have been hearing about this concept and talking about it. It's all over the blogosphere. People debate it on Twitter, et cetera. Recently, when I did my update conference, Jeremy Keith did a talk and he talked about how the future is definitely the web and we should only be building web applications and everything else is going to go extinct. And everything else is pretty evil, as well. The web is good, it's lovely, and everything else is really evil.

[2:43] So I started thinking, "Oh, my gosh. I've been making iPhone apps for the last few years. Am I a bad person? Is there something here?" Whenever I hear this web talk... And I started very much on the web in 1993 or so. My first application had its backend in C because we didn't have PHP.

[3:06] I love the web, but I was like, "Wow. Am I a bad person? I'm building things for the iPhone." When I hear this talk about the one web and everything should be web, I sometimes start feeling like this.

[music]

[3:19] "Mine..." Instead of mine, it's like, "Web. Web. Web. Web. Web. Web. Web. Web. Web."

[3:28] And then, this one person goes, "Look at my iPhone app. Native?" And it's like, "Web. Web. Web. Web. Web. Web. Web. Web. Web." That's kind of how I feel. So I start thinking, "Am I this really bad person that does native applications? I just want to make things that are beautiful for people."

[3:41] So I started thinking, "Well, who am I? Let me look into who I am." I realized very quickly that I'm a cyborg as are all of you. I know. The cyborg is a person whose natural abilities are enhanced by technology. It doesn't necessarily have to be implanted. But we go beyond our biological capabilities.

[4:05] I actually was talking to a bunch of people a few weeks ago at an augmented reality conference and that's where I told them, "Wow. I'm a cyborg and so are you." Why are we cyborgs? Think about it. Think about the implants that you have, like. . .

[4:17] Oh, and it's so much better to be a cyborg than a robot. Oh, I'm totally going back there. Because the things with robots is, they can't go down stairs. They fall. Have you guys seen RoboCop? It's not going to come up now. But the guy can't walk down the... I fucked that one up. OK.

[4:36] So a watch... Right? A watch extends your capabilities, it gives you the ability to tell time perfectly. That's amazing. That's something that's beyond your capabilities as a biological being.

[4:48] I wear contact lenses and that is an implant. That extends my capabilities. These things that people have built extend my capabilities beyond what I can do.

[4:59] So what else? How about this thing that I carry around with me in my pocket every day, the cell phone? That extends my abilities and my capabilities like nothing else. It lets me know where my friends are at any given time. I can talk to any one of my friends at any given time. That is amazing. This is something we can't do as a human being without this additional bit of technology.

[5:23] It's got things like... It's got a GPS. I know exactly where I am in the world at any given time. That extends my biological capabilities, that makes me into this amazing cyborg where I'm like, "Yes, I know where I am. I can't get lost," even though I do still.

[5:38] It has an accelerometer inside of it, so it can tell which direction it's facing. That's really cool. It's got a gyroscope inside of it. So in addition to telling where it's facing, you can actually tell where in the world it's looking, and you've got six degrees of freedom.

[5:56] Wow! This little thing you're carrying with you not only knows where it is, it also knows where it's looking. That's crazy. It's got a magnetometer inside of it, so it can measure the magnetic field around it and act like a compass. This thing that we're carrying has a camera to see the world with like eyes, and it's got all of these sensors. It's almost like this little being that you carry with you that knows everything.

[6:21] And the things that we can do with it are amazing, things like... We can fucking put cows on paper apparently. It's amazing what we can do. Look at his eyes. He loves that cow. He's like, "This is amazing."

[laughter]

[6:37] No, of course we can do much more with these devices than just this sort of thing. For example, I came across this and I thought, "Wow. This is a really cool use." It's for people who can't see and can just...

Automated voice: [6:49] One dollar. One dollar.

Aral: [6:50] You just aim it at a piece of money...

Automated voice: [6:51] Five dollars. Five dollars.

Aral: [6:53] ...And it reads it.

Automated voice: [6:54] $10. $10.

Aral: [6:55] That's kind of cool, moving beyond markers...

Automated voice: [6:57] $20. $20.

Aral: [6:59] ...With that to actually understanding objects.

Automated voice: [7:00] $50. $50.

Aral: [7:01] And there are other applications where you can just like aim your phone and you can see a film if it was shot there. That's really cool. It hasn't come out yet, but that's really cool. And I was recently in Sweden about two weeks ago, and I got this little app, and it was mostly to show off how it didn't work well. But when it does work, it's cool.

[7:19] You can aim it at the sky and you can see where the planes are that are flying and where they're going. That's kind of cool. That's makes me a cyborg. I suddenly... It's not just a plane. It's a plane going from San Francisco to London. Wow! I know exactly which plane. This is so exciting.

[7:40] And these are kind of... Not just the augmented reality stuff, but these are all native applications. It's kind of what I start to think about, "Well, what can we do with these devices?" But what is native? We're all like, "Native, bad. Web, good." But what is native? So during this talk at certain points there are going to be some dramatic, dramatic revelations. This is one of them.

[music]

[7:58] Native is just the absence or presence of electricity. And when we're really talking about native, if we want to get really native, we're talking about binary that actually says the absence or presence of electricity in binary ASCII code. But that's what we're talking about at the very core. Right? If we want to get really native, that's it. You have electricity. You don't. That's how computers work.

[8:29] But of course, that's not what we mean when we talk about native. Right? And when I was looking at this, I also found this image, which is amazing. It's a binary candle. How cool is that? It's the only candle you will ever need because it can go up to 127. For those of you were are wondering what the fuck I'm on about, check this out. OK? So these are the candles, and if you want know age you are, you just do some binary addition. So there's 32 and 2, and then you add those together, and you're 34. Awesome!

[laughter]

[9:03] It's got nothing to do with the talk whatsoever, but I thought that was really cool.

[applause]

[9:08] And of course, there was a time when this was how computers were programmed. This was native, right? In the old days we flipped switches. I didn't, but people flipped switches, and I'm like, "Blows my mind. How did you do it?" But when I talk about native, I'm not really talking about all of these layers that we have, binary, machine code, assembler code, C. Because we're building. Right? That's how we work. We build layers upon layers upon layers.

[9:36] What I talk about when I mean native is much more about the experience. In my view, native is the level of abstraction for a given device where we can use the core user interface components. And why is that important? Why is it important to be able to talk in the native language of a device?

[9:56] Well, because it is a language. Native is a language. It's the words, the gestures, the culture that we use for when we're building apps to communicate with users on a given platform. Native is the level where we can meet conventions and consistencies on a device. And this is important to see native, not as Objective-C Cocoa Touch, or C++, or whatever, but to see it as a cultural thing, as a language. In other words, native is about the experience.

[10:31] So let's just take a look at it. Let's take a look at this experience. If you think about how computers work and applications work, it's like an onion. Right? At the very core we've got the OS. And on top of the OS, we've got native applications. Right? So these could be iPhone apps, for example, that you buy from the Apps Store. It could be an app that runs on your Mac like Mail, or Numbers, or Pages, or iMovie, or whatever.

[10:59] These are native applications. They conform to the consistencies and the conventions of the platform. Here comes another dramatic moment.

[music]

[11:08] The browser! I love that dog. The browser is a native application. Right? So if we really hate native apps, we're going to hate browsers. That's not a good place to go, because browsers are beautiful things. Right? So we have native apps, of which we have a browser, and then we can start layering on top of this. Right? So we can have a Web app on top of that, and then we can have other layers inside the browser as well, things like Flash. Right? It's just another layer on top of what we're building. In this case, Flash is a layer on top of the Web, on top of Web applications.

[11:49] So if we just take that down, let's just take a look at the first three. We've got the operating system, we've got the browser, and we've got the Web app. So what is native versus Web? What's the big difference here? The big difference is that bit in the middle, the browser. If we just remove that from the equation, now you can see the core issues that people have with Web applications.

[12:13] Do you see that black bit, the disconnect between the OS and the Web app? So they can try and inter-operate and we have things where we can try to get information about the OS and the device, but there is that gap between it. And that gap also exists somewhere else.

[12:29] Let's just take a look at some of the other layers again. Let's look at browser Web app and Flash. OK? Let's look at that relationship. Again, Flash in this case, when you compare it to the browser is removed by one layer of abstraction. Right? If we remove that layer, the Web app, you can see that there's that area, that black area, the disconnect between the browser and Flash.

[12:54] So if we compare these two relationships... So the relationship that, say, Flash has to a browser, and the relationship that a Web app has to an OS... I think some of you might be seeing where I'm going with this. OK?

[music]

[13:10] The Web is a plug-in. This is where I expect tomatoes. OK? The Web is to the operating system what Flash is to the Web. It's not native. That's not so say it's not good. That's not to say you can't create great user experiences. It's just to say there's a layer of abstraction between them. Right?

[13:40] And the main reason... A lot of people are like, "Well, the Web has succeeded because it's open." Yes. Yes. But you know what? The Web has also succeeded because it provides a better user experience for certain use cases. It didn't just succeed because it's open. It succeeded because it does certain things better. Right?

[14:09] And we always talk about the web catching up to native. Guess what? Native is trying very hard to catch up to the web in certain ways. And native is catching up, but the web does provide a better user experience for two groups of people.

[14:21] For developers, what is the "Hello, world" of the web? This. That is the "Hello, world" example of the web. That is simple. You put that into a file, put an HTML extension on it, put it up on the web. And guess what? People will be able to see it. It's not valid HTML. No, but it will render. It's simple.

[14:46] You can fuck up HTML. And people do, my God, and it still works. We hate that and we're like "Oh, no, no, no. That's not how it should be." But it does work. It's simple. Anyone with an editor can create this stuff. That's awesome, especially if we are talking about getting people excited and involved.

[15:05] This was my first computer. When I started out, there was no web, but there was this thing that it came with. My dad brought me this computer and said, "Here, there is a basic manual, you can't break it," not the manual the computer. And I proved him wrong later, you can apparently break them. I blew it up. It was awesome. I put a chip in it you are not supposed to put, and then I blamed him. He doesn't know.

[15:32] So he gave me this Basic manual and the first program I ever wrote was this, it was "10 print hello" and then "20 go to 10." And then you run it. And you know what happens, right? It's like "hello, hello-o-o-o-o." And you are like, "I made this. This is so cool. How the fuck do you stop it?"

[laughter]

[15:56] But magic, right?

[16:01] We're all here, you are here because something must have been magical for you. That's why you do what you do. This was magical for me. And it's a very small step from there to then discovering Screen 13 and then being able to create stars.

[16:19] When you are seven years old like I was, when you can create stars like that, you are creating a universe, that's magical. That stays with you your whole life. And the web is so awesome in many ways because it is so simple. It can have that element of magic. And not only that, I couldn't share these with people. I had to bring them to my house.

[16:34] With the web, you can share it with the world and that is amazing. That is so amazing. But not just for developers. So it's great for developers, it's also great for users. It has user experience advantages over native on certain platforms, on certain platforms where we don't take advantage of conventions, where we don't have consistencies or we have really bad ones.

[17:02] When you think about the difference between the whole process of getting an application, installing it on Windows, maybe having your virus checker kick in and say, "Ah," and then trying to find that application. These are things we take for granted, but not everyone takes these for granted.

[17:17] When you download an app, where does it go? Where is it? How do I install it? When I have installed it, does it need something else to install as well to work? I just want to get my mail. I want to tweet somebody. What's going on? How much simpler is it to go into a browser, put it in URL and, boom, there is your app, everything is working.

[17:38] That's a user experience advantage to the web, but those advantages are a bit less on certain other platforms. And why, what's the difference? What's the difference between these platforms? The difference is that one has focus on user experience.

[17:55] So if you go to my blog, you will see a proclamation that the age of features is dead and the age of user experience is what we are living in. The products that we make don't compete on features anymore. Very few of them do. If you have an amazing feature that nobody else has, great maybe, but it's commodities, all of these things are commodities now.

[18:16] So really, we are competing on user experience. So getting back to this layer, the web, the browser, the OS... The problem is on systems where there is a focus on user experience, that additional layer that we have that removes the web app from the OS is a problem when you try to optimize the user experience.

[18:40] It means that you can never compete in exactly the same terms as a native app unless we do this. We remove the browser and then you don't have that additional layer. You have the web app running on the OS. The web app becomes native, and this already exists in Chrome OS. Right? The web app is the native layer.

[19:08] We have said that the operating system conventions for Chrome OS, native is the web. And then we are starting to talk about a difference in web as platform and web as applications and technologies. And there are computers that ship with this now, like the Chromebooks that I am hopefully going to get very soon.

[19:29] So when I say the future is native, I am not talking about the platform, but I am talking about the technologies. So web technologies might win, I don't know. Objective-C and Cocoa Touch might win, C++ might win, I don't know. But the one thing I do know is that the experience is going to be native. So don't confuse technologies like HTML, CSS and JavaScript with the web as a deployment platform. Those are very different things.

[20:05] And today, you don't have any apps almost that don't use the Internet. Nearly every app uses the Internet in some way. You have some apps that consume the Web. We call them hybrid apps. And even moving beyond that, we are seeing applications that use the continuous clients where the client is split among devices.

[20:26] If I start on my computer, I can continue on my phone and then I can go back home and I can start on my, maybe, TV screen and I am accessing the same data. So there is a convergence happening. We are blurring the lines a little bit. And if you looked at Apple's CRE announcement... Who saw the Apple keynote? Just three of you. OK, four, everyone... They are like, "We won't admit it, it's a web conference. Nobody watched it. Nobody watched it." CRE, where you can talk to it and you can say, "Do this for me," and it does it for you...

[20:57] So we're rethinking UI's as well. Does it have to be visual? Does it even have to have a UI? One of the best applications, I was recently... I think I was in London, and I was mentoring a design jam, and one of the teams came up with an idea for a mobile application that you just keep in your pocket.

[21:16] And as you're walking through town, maybe a city that you don't know, if you start coming towards an area of the city where there's danger, it just starts vibrating. It says, "Don't walk in that direction." So you go, "Oh, OK. I'll walk back. Oh, all right. I should probably walk that way." Great.

[21:33] No UI, whatsoever. So these concepts of component UI's, everything is up for grabs, and sometimes the best UI is no UI. And there's also another misconception. Native does not mean good user experience, and I touched on this before. Right? You look at systems like Windows. You look at systems like Linux, which I love. I love Linux as a concept. I'm all about open source, but in terms of user experience there are issues, but it doesn't mean just because it's native it's going to be better.

[22:04] Here's an example. That's an iPhone app. It's called iFart, and it's amazing. It's amazing. It farts. Who's seen this? Who has it? Anyone have it? No one will admit to that, right? I just love this UI though. I mean, look at that, social farts. That's so cool. Security farts, record a fart. It's amazing. You could be fart buds. It's just amazing. What else is there? Gosh, fart a friend... This is just great. Horrible in terms of, "Wow, what is this UI?" Take a look at that. I love the fact that they used primary additive colors to such great effect.

[22:46] And the best bit is that they have an iFart store. That's so cool. I mean, you can buy different farts. That is just awesome. OK. Forget about the farts. Look at the kitten. Look at the kitten. It's OK. As I was saying, web apps have user experience advantages, at least historically have had major ones. But native is catching up. What are those? Easy deployment. Right? You put it up on the web, and the thing is, it has a URL, and anyone can reach it. Right? Awesome.

[23:21] And if you have, say, a company with a hundred thousand people working for you. You don't have to install it on a hundred thousand computers. That's huge, right? That's like, you know for people in those kind of jobs... I hate enterprises... But they love that shit. They're like, "Ah, awesome." Right? But native is catching up. App stores, we hate them. They're evil. They're really, really evil, but part of the reason why we hate them is because they're catching up.

[23:46] They're making it almost as easy as typing in a URL. In fact, you can type in a URL and go to your app store if you want to, but they're making the process very easy to reach that application. Again, it's all about user experience. Updates, everything on the web is always the current version. Right? You reach it again and it's the latest version. Awesome, you don't have to install updates. When is the last time you noticed Chrome update? It seamlessly updates in the background.

[24:17] As far as you're concerned, as far as the experience is concerned, it's catching up. This was a huge advanced of the web. Now we're catching up in native. And the whole concept of version numbers... I mean, come on, version numbers are outdated. In this day and age, 2011, version numbers make no sense whatsoever. Everything is always continuous. Right?

[24:39] Call it what you will, perpetual beta, whatever. I even Tweeted about this. I basically said my websites will only support the latest versions of the major browsers and it's their job to get people to upgrade. Because version numbers make no sense on the web, they make no sense on the world of the Internet. Right?

[24:58] And the other big thing is universal access, not just for people with disabilities, but also access from any device, that you could access the web from any device. So Tim Berners-Lee, when he talks about this, he says, "Independent of hardware platform, software O/S, application software." People should be able to access the web and your application, which is great, which is awesome as a concept. And especially, when Tim talks about it, he talks about documents and data, and that's the core of the web.

[25:27] That's how it began, documents and data. Awesome. And now we're talking about linked data, and we realize that the semantics of that data is very important. But there's also another element of the user experience, which is behavior, which we're not really talking about, how these things behave. If we think about it, all applications fall on this continuum, documents on one hand and applications on the other. The difference is the amount of interactivity between them.

[26:01] When we talk about the responsive web, for example, it makes perfect sense when we're talking about documents. I have a document. It has three columns. If I re-size my window it comes down to one column, if I re-size it again, it becomes three columns. Great for a document. What happens when you have Photoshop and you re-size it and it becomes one column? What does that mean? I don't know. I don't know. It could maybe adapt, or maybe it changes so much that the behaviors have to change. The way that we use it has to change.

[26:36] So this concept of write once, run anywhere, that's always been a myth. It's a great thing to hear. Right? And you guys all do web development so you know it's a myth. And the key thing here is not just to get it out to as many people as possible, but to get a beautiful experience out to as many people as possible. So it's about quality, not quantity.

[26:58] And the problem, of course, is because there are so many devices, and it's great. The concept of progressive enhancements, I love it. But make sure you understand while you're doing that, that that's going to add dev time. It's not just going to mean, "Hey, I've created my web app. It's going to work beautifully on all of these devices." It's not.

[27:19] You're actually going to have to test on these things. Right? You're going to have to get them and test on them to create these beautiful experiences. So write once, run anywhere, it's a myth. If you care about user experience, what you should be doing is writing once and optimizing everywhere. So I have to say, at this point, you have to remember that every time somebody says to you, "Do not optimize for specific devices," God tears the wings off of a fairy with his teeth, just remember that.

[laughter]

[28:00] Because what are you telling me there? You're telling me, "Don't optimize for specific devices. Think about features." Great. That's great. It's a first step. Yes, I agree.

[28:11] You're telling me, "Use progressive enhancement." Yes. With my budget and time scales allowing, I will do that, because that's awesome.

[28:18] But then you're telling me, "You know that last bit, that last five percent where you can really create that beautiful experience, you can really go forward and make that experience even better just for this one person who's going to use it on that one device? Don't do that."

[28:37] Fuck off. Really? I want to create the best possible experience. I'm going to go that five percent. I'm going to go that extra one percent to make sure that this is beautiful and delightful to use, because it matters, because our lives are a string of experiences, one experience to the next.

[28:58] And the character of these experiences, whether they're delightful, whether they're beautiful, whether they're fun, or whether they're frustrating, whether they're empowering or whether they're enfeebling determines the quality of our lives. And whether these experiences are with people or with animals or with natural things or with man made objects, the quality of these experiences determine the quality of our lives.

[29:26] So don't tell me, "Don't do everything in your power to make that experience as beautiful as possible," because I'm going to do that. If that means optimizing for a device after I've implemented progressive enhancement and I've optimized for features, I'm going to do that because I want that to be beautiful.

[29:45] Remember that, in this current world that we're living in, we're moving away from these multitasking environments to multimodal. So that when you have an app running on a phone it transforms the device into whatever that app does. We've never been good at multitasking, we've been kidding ourselves.

[30:05] But we can transform that device into a multifunction thing by these apps. So I was saying that native is catching up. Another place it's catching up is access, access to data. The web has been amazing at this. You run Gmail on your home computer, you run Gmail at work, and it's all the same data. You don't have to worry about it.

[30:27] It wasn't like that. Do you remember the native days, earlier, before the Internet, before the web? You had to sync stuff. It never worked. Sync still doesn't work. I hate sync. But we've got things like iCloud coming out, which are starting to solve this problem.

[30:42] So it's not always the web catching up. The web is catching up in certain aspects, but native is also catching up to the web. So these things are coming together.

[30:52] I saw this recently, last month was the Brighton Digital Festival and I was on the steering committee for it. I'm very into education. I want to teach kids about this beautiful stuff that we do, this magical stuff that we do.

[31:04] So we had an education track. As part of it me and Anna Debenham with Hackasaurus, we went into local schools and we wanted to show them how to make things. And Anna was showing them how to hack the web. But this is what she said, "The Internet was painfully slow and a lot of pages were blocked at the schools." This happens a lot, it's tragic. "I ended up telling everyone to stop and we did something offline instead."

[31:28] So we do have real issues, one of them is a very basic issue, insufficient infrastructure. This is very big in the U.K.. We are not always connected. That is still a pipe dream. And we need to be if we're going to take advantage of this.

[31:44] But of course, you can say, "Well, they're offline apps. Web apps now support offline." Awesome. Yes. So let's look at what this looks like, native and web when we're talking about offline applications. So it's again, about layers.

[31:59] So we've got the web and there's an OS layer, there's a browser, there's a URL that you type in to get to a resource and that's the app. OK. Great.

[32:12] Let's look at native. Let's look at the flow there. You've got the OS and then you might have an app store where you can find apps. Or, it might be a browser where you find apps. Then you get to the app. Then, traditionally, the app checks for updates and updates itself, hopefully seamlessly.

[32:32] What happens when you have an offline web app? From the app, you basically add to your home screen or your install it offline. Suddenly you're at the same level, you are at the same level as the native app.

[32:45] Then what do you have to do? You need to check for updates, and we've got systems built in with manifests that do that. But at that point, your basically almost a native app. I say almost because you're not a native app, you're still a web app, you look like a native app when you're being launched. There are expectations happening. It's almost the worst of both worlds.

[33:07] Of course, there are other ways to go through this from the OS. You can go the browser, you can get your app - what I'm trying to say is the lines between what we consider web and native are blurring to the point where pretty soon it's going to be very hard to distinguish. To the point where, especially for people who are not in our industry, it's going to be very difficult to tell them apart.

[33:32] Also remember that the web is not the Internet. When we talk about the web we take a lot of credit for things that are the Internet. The web is http and URLs, resources on top of a stack of other technologies. The Internet gives us a lot of the capabilities that we attribute to the web.

[33:49] The web is a beautiful thing and it's come so far. I was there when we had Gopher, before the web. Do you remember Gopher? Yeah? Gosh. Then the web came along and we were like, "What's this? Wow! OK. Hyperlinks, nice!" It's come so far to the point where we have 3D games running in the browser. Wow! That's so cool!

[34:10] But remember in all of this that, just because it's what we do, it doesn't mean that the web is inherently good. It doesn't mean that native is inherently bad. I think viewing this as a confrontation doesn't do anyone any favors. We're all worse off for it. It's almost an artificial separation these days.

[34:33] On the flip side of it as well... There are certain things about native development that I actually really like. I like the fact that I can sell what I make. So people buy it. They're my customers, and then they can use it. I actually like that. There's something old school about it that I like.

[34:52] But it also means that they're my customer because, if you don't sell it, you're not the customer. You're the product. If something is free and you're using it on the Web, you're not the customer. You're the product. And I'm not entirely convinced that that's better.

[35:10] Take a look at Facebook, for example. It's free, right? It uses Web technologies. It uses Web standards, and what are they doing with my data, because I'm not their customer. I'm their user. I'm not their customer. I am the product that they sell to their advertisers. That's how they make their money.

[35:31] So is this inherently good? I don't know, I don't think so. When you have a "Like" button that follows you around the Web even if you don't click it, and gathers your information, I don't know. When you look at something like the Kindle Fire with the Silk browser that's come out where they're going to be basically funneling the Web through their servers at you. Wow. That's scares the shit out of me. Right?

[36:00] And it's not... They're not the first ones to do this. We've had Opera Mini, for example. I mean, Opera is a company that we all love and support, and I don't know if Bruce... Are you in the audience? No? Late night? No? OK. Cool. All right.

[36:14] But they do the same thing with Opera Mini. They funnel the Web through this proprietary closed thing that we don't know about, and we trust them because, in their privacy policy, they say, "Opera does not store your private information. Opera does not do this." But what happens in 20 years time when Bruce isn't there anymore? What happens then? These are really valid concerns.

[36:38] So I think it's hurtful if we come at it thinking Web can't do any wrong. Native is evil. Then we're also going to ignore these issues. Open, on the other hand, is a very different thing. So all I'm trying to say is, guys, beware of fundamentalism. It doesn't do anyone any good." And I have a great story on this.

[36:58] A few years ago I went to an open source conference. So I started out doing Flash as well about 10 years ago. So I've done all the evil stuff. Right? And even in Flash I created open source Flash. It was a movement, OSFlash.org, where we were proponents of open source. I was sharing my code. I've shared tens of thousands, if not hundreds of thousands of lines of code. I believe in open. I believe in open source. And I believe that you can make closed technologies open as well from the inside by working with them.

[37:26] So with Lawrence Lessig, we were at Wizards of OS, this conference in Berlin, and we gave this presentation to a group of people, of open source people. They weren't even open source. They were like free software people. I don't know if you've met free software people. Any in the room? Are you going to throw me something? Kind of, someone's like... No, if you're like that, you're not a free software person.

[laughter]

[37:44] You would have been at my throat.

[37:46] And we made this great talk. We were just like... We're trying to open up these companies. For me it was Adobe. I was trying to open them up, trying to get them to share things. And it worked a lot. They opened up the Swift spec. They opened up, they embraced open source a bit.

[38:01] And they had Creative Commons. Lawrence Lessig had created Creative Commons. Creative Commons had done a deal with Microsoft, and they were trying to get Microsoft to use Creative Commons' licenses. Right? On the whole, good things... These are not bad things. Opening things up is always a good thing.

[38:17] So we had this conversation. It was like hippies. It was flowers. It was 1968. We were like, "Let's love each other." And after the talk this guy comes up to me, and the first thing he says to me is, "I hate Flash, and I don't want you to have a job." And I was like, "Were you even listening to what we were saying? We're all about open."

[38:39] So fundamentalism doesn't really help. And so that's why I'm really glad to see things like Future Friendly. So Jeremy is a very good friend of mine. We both... Jeremy Keith... We both live in Brighton. And at my conference he was deliberately confrontational. He was deliberately taking the hard-line stance, you know. He called native developers "fucking peasants," and they're like, "Come on and open up."

[39:01] But really, when they went away and thought about it, they came up with Future Friendly, and I think that is actually a very nice... This is a very nice summary of it, you know, that the disruption is only accelerating. Things are changing. And the Web... And anything that's standards based, not the Web, but standards, will always be behind, disrupt innovation, and things that are changing.

[39:22] And that's OK. That's fine. We still need that. That's really still very, very important, right? And, of course, native solutions, because they're catching up now, and because they're taking on the advantages of Web applications, they are going to dominate. Right? But it's really important to keep going with the standards process and with standards in general.

[39:42] And the Web will fall behind, but there are also things that it will do to try and catch up, and where I really see it is they're coming together. They are actually merging. And they also say, "We can't be all things on all devices." I would go further and say, "Don't even try. Pick. Focus." UX is about focus.

[40:03] And remember, open and user experience are not enemies. Right? Open has to compete on UX if it's going to be relevant. You look at Linux, you look at computers... Linux is competing with OS X. And it has to compete on user experience. It can't just compete on the fact that it's open. It's great. It's being... It's powering the Internet, all these servers. But on the consumer side it has to compete on UX.

[40:30] So the real enemy is not native. We do have enemies. We have common enemies. We have enemies like closed data, things being closed. Right? That holds us back. That holds us back from creating and making things. So open data - wow, yes.

[40:50] Software patents for fuck's sake. Seriously? What a hypocritical concept. Right? If software patents existed at the birth of the Web, we wouldn't have had the birth of the Web. Right? If they existed at the beginning of computing, we would all be writing on notepads right now with paper. Right? Because the really fundamentally amazing things that have led us all to be here and to create these things have always been open. Software patents are the enemy there.

[41:13] But my major concern is user experience. User experience is also one of the things that we have to really, really, really, embrace. Why? Because if we don't, if we drop the ball on user experience, shit like this happens. That's from my Samsung phone that somebody gave me. When I first turned it on it says, "No SIM card, or phone is turned off..."

[41:37] You're fucking kidding me, right? Really? Somebody wrote this, some intelligent being with probably like a computer science degree, definitely with a computer science degree, wrote this, went "No SIM card." What else could... Oh, or "Phone is turned off." Right? Fucking think for a moment, really, how do these things happen?

[42:01] These things happen very easily if you worry about the wrong thing, and what's the wrong thing to worry about? If you worry about your needs and not the user's needs. What we do is we make things for people to use, things that hopefully will make them happy. We can't do that by worrying about our own needs. What do I mean by worrying about our own needs?

[42:21] If the first thing you do when you start an application and when you're starting on your next project is think, what's my database schema going to look like? What technologies am I going to use? You're worrying about the wrong thing. You're worrying about your needs, not the user's needs and your needs don't matter. If you worry about the user's needs, then it will make your jobs harder and that's OK.

[42:43] What do I mean about worrying about the right thing? If you're saying I will create a web application... Because I hear this a lot... Because I want the greatest number of people in the world to be able to see my application. Yes, isn't the web beautiful? Fuck off. How arrogant. Really? No, it's not about you. It's not about you showing the world your thing. If it was we'd all stand in front of open windows and show everyone our naked bodies and be like yes. Nobody wants to see that, right? It's about showing them something beautiful.

[43:17] It's about showing them something and giving them an experience that's beautiful. And if we don't do this, and the norm is that we don't do this, we get into very interesting situations. I was in Lithuania recently, and I saw this. Does anyone know what this is? All right. Someone seen part of my older talk, I think. It is the control panel for an elevator, OK?

[43:44] Those of you who didn't realize what it was, it's because they usually look like this. They have buttons on them that look like buttons. They have affordances. You can press them. They look like they're pressable. They say, "Press me. I'm a button. I really want to be pressed." And this guy doesn't say that. He looks like a Cylon. He's like something out of Battlestar Gallactica. I'm like, "Whoa, hi, do you talk?"

[44:12] And look at its surface. What does this remind you of? You can't really see it there, but it's beautiful. It's shiny. It just says, "Touch me," you know, like my iPhone. I love touching it. It's so beautiful. So I thought, hey, I'm going to use this. I need to touch it. I need to tap it gently, ever so gently. So I did and this is what happened. Yeah, just want to tap. I can't fucking tap. Why can't I tap? Oh, I need to press it, because it doesn't look like a fucking button but it's a button. OK. That's fine. That's fine. Breathe. Great. I'm at least up in my room. Right? That's good. Things are fine. Things are fine.

[44:55] And then I want to come downstairs, and I'm like, "Shit, what do I do, zero?" So I press it... "Error!" You're fucking kidding me. Error? We took something that fundamentally does not have an error condition and we added one. And we call this common sense. I mean, it was Schindler's List, so I don't know. I know, it doesn't always go down well, but I didn't even think about that pun. But anyway...

[45:31] We took something that has a beautiful natural affordance where the positions of the buttons tell you exactly where you're going. Right? It all makes sense. And we did something to it, right? What I'm trying to say is even with something as simple as the control panel for an elevator, it's very possible to cock it up. OK. All right, look at the kitten. Forget the cock. Look at the kitten, OK? And that's not even the worst thing. That's not the worst thing.

[46:05] The worst thing about that is that's the alarm button. That's not the ground floor. That's the alarm button right there. And these are the norms. This is what happens if you don't have a focus on user experience. If you think it's common sense, if you worry about your own needs, these are the things that happen. We want the shiny, beautiful thing that doesn't work, and also the reason for these happening is because user experience is actually very difficult. Why? Why is it difficult?

[46:37] Think about it. Think about how difficult it is for two human beings to understand each other. If they're standing in the room, they've been human beings all their lives. Right? They have a shared culture. They have a shared language. They're talking to each other, and how many times do we misunderstand each other? OK. Let's remove some of those queues that we have that we can use to understand each other.

[47:00] What if we're on the phone? What if we're talking to each other on the phone? How much easier is it to misunderstand each other, because we don't have this anymore. Right? We've lost all these visual queues. We only have the voice to talk to, to understand each other from. Now, remove the voice so that you're on a computer, you're typing. Right? How much easier is it to misunderstand each other? How many times do you have flame wars on email or on news groups, or Twitter? My gosh... Right? It just kind of goes up. "I hate you." "I hate you more," and suddenly it's gone.

[47:36] Now, to understand how difficult it is to create beautiful user experiences, take away one of the humans altogether and try to make a thing that communicates to a human being, and you'll start to realize how difficult it is to do this because we've lost visual queues. We've lost oral queues. We've lost a bit of humanity. So what we do when we design experiences is, we don't make things pretty. We don't draw straight lines. We don't pixel push.

[48:12] We don't prettify things. I hate that word. How many times do you say, "Oh, yes, I've created the app. We just need someone to prettify it." It's not how it works. It doesn't work that way, right? No.

[48:23] What we do has a lot to do with psychology, with neuroscience, linguistic sociology, with sociology and philosophy with humans, with understanding human beings so that we can design for human beings, so that we can design for these creatures that come into this world completely helpless, completely reliant on other people to take care of them, completely unable to change and affect the world around them, but who also see people that are different.

[49:02] They're bigger. They can do things. They can change things. They're like super people, right? And somewhere, somewhere between adolescence and puberty and extreme old age we've become those people. We've become those people that we looked up to and said, "Wow, you can do things. You can change this world." Right? "You can affect things." Wow.

[49:30] We've become those people, and then what happens? Fucking Windows crashes. And suddenly, you are back to being that little baby, ineffectual, enfeebled, unable to change the world around you. Right? And it's not just Windows crashing. You have an emotional reaction. Who gets angry at things that don't work? Who? Which one of you get angry... Yes. Right? Yeah. I do. I'm like, "Ah..."

[49:56] Things like this. Oh, my gosh. Do you know what this is?

[laughter]

[49:59] I didn't either when I first saw it. I was like, "Holy shit. OK. All right." This is the machine that you use in Sweden -- at least it was last year, they've changed them now -- to buy a ticket to the airport. That's the only thing it does, but boy does it do it in a lot of ways. It's got instructions all over it. If you see instructions all over things you're doing something wrong. Right?

[50:27] It's got... They wrote a book. It tells you about everything they could possibly tell, it tells you about all the cards that they take. It even tells you cards that they don't take, right? So tell me about everything. Be a fucking Wikipedia of ticket machines. All right? That's what I want. And then it's got a screen in addition to all the dials and things. And you know what? The people who designed this, they knew it was shit because they put a telephone...

[laughter]

[50:55] ...A fucking telephone in it, and you can call for help. OK? And there's some poor sod in a basement somewhere, in a dark basement, who gets phone calls from drunk people, at every hour of the day. Right? "I don't know how to use this thing." And you're back to being this enfeebled little baby that can't change things. Right?

[51:26] These things that we make are very powerful. They can change people's lives through their experiences. So this is what it's like in Sweden. Has anyone seen the ones in Oslo? Anyone? That's what it looks like. Same thing. This is how you use it. You swipe your credit card and then you walk through. That's it. Swipe and you walk. And then you get on your train. And it feels so good because suddenly, you know, you're like, "Wow."

[52:05] And there's no UI. There's no UI whatsoever. Here's a guy using it. Doesn't he look happy?

[laughter]

[52:10] And the only thing I would change about that is I would move it a bit out, so that you didn't even have to... He had to kind of go to the side a little bit to do it, so you could just go like this. And then you walk in. And then you're through the gate. And all you do when you're coming out from the other side is just swipe your card and you're out. You know?

[52:34] And this, this amazing thing that makes you feel so good, it makes you feel like Superman, right? It makes you feel like this guy or maybe this guy. I don't know. But the most beautifully designed things, the most beautifully designed experiences make you feel like super people. Right? I call this the "Superman effect." And this is what we should all be aiming for, whether we're making Web applications or native applications.

[52:59] These are just technologies. There are problems. Right? We use these tools, these technologies to solve problems for other people, not only to solve problems, but to create experiences. Right? And the best designed ones make you feel like Superman. So going from something like this, which makes you feel like a little child, to something like this, which makes you feel like Superman, that is such a huge difference.

[53:29] We create experiences. Our lives are just a string of experiences. The experiences that you create have the power to make people happy, have the power to make people have fun, to empower them, to inform them, to change their lives, to make them feel like super people.

[53:55] And that's why it's so important that we concentrate on them and not us. And that's why I feel that the future is native. It doesn't matter whether it's Web technologies. It doesn't matter whether it's native technologies as we see them today. The future is about making beautiful, delightful, thrilling, magical experiences for people and making their lives better. Thank you.

[applause]

[54:24] Thank you. And I just want to say... Don't take my slides away. I'm a very big fan of Creative Commons, and this presentation would not have been possible if people hadn't shared their images on Flickr via Creative Commons. If you're not aware of Creative Commons, you're all content producers, you're all content consumers, so please make an effort to find out about it.

[55:00] These are the images that I used, and I just want to thank the people who shared them for making this presentation possible. And please, in your own lives as well, consider sharing what you do. It's the only reason I'm standing up here in front of you today, because I did share what I made, and I kept sharing, and I really believe that there is a real potential to change the world if we do share, so thank you.

[applause]

Post a comment