Episode 116 of The SitePoint Podcast is now available! This week Louis Simoneau (@rssaddict) talks with John Allsopp (@johnallsopp) about the use of web technologies in applications on many platforms, the phrase ‘Hybrid Apps’ and the future of all of that.
Listen in Your Browser
Play this episode directly in your browser — just click the orange “play” button below:
Download this Episode
You can download this episode as a standalone MP3 file. Here’s the link:
Louis: Hello and welcome to another episode of the SitePoint Podcast. With me on the show this week we have John Allsopp who is an Australian web developer and co-founder of the Web Directions Conferences, hi John!
John: Hey, how you going?
Louis: I’m going very well, how are you?
John: Well, I’m jetlagged. I think I’m so jetlagged that I may not even be jetlagged anymore.
Louis: Do you just sort of wrap around and hit the same time again?
John: Yes, I hope that, but sadly I spent enough time in the U.S. to not quite acclimatize there, went on to the UK, not quite acclimatized there, then come all the way back this morning, so I think my body clock is somewhere over Milwaukee (laughs) that makes it about 2:00 o’clock in the morning. Hello, Milwaukee!
Louis: (Laughs) what have you been up to?
Louis: Alright. So what’s the focus of that event?
John: So Random Hacks of Kindness, well, it’s put on by the World Bank and a number of the big IT giants, Google and Yahoo and Microsoft amongst others, other sort of global partners, and then there are a number of sort of local partners including folks like Red Hat, some industry association support particularly by the AIIA, and the focus is really about development, so the developing world, obviously one of the focuses is the World Bank, but also responding to natural disasters and crises and so on, so we’ve seen that both in the developing world, earthquakes, floods, fires around the world, the rise of pandemic diseases. So really it’s all about looking at the problems that global interconnectedness kind of creates potentially and also looking to solve problems around crises and so on. So the idea is to bring together people with real expertise around everything from climate change to natural disasters along with kind of hackers and designers and developers to sit down and see how we can address some of these challenges and come up with solutions that might run in a browser or a mobile device to help people, for example, respond to an emerging natural disaster like an earthquake or bush fire or to recover from those or to prepare for those in advance, and also looking at some challenges around development, things like water use and then pollution and sorts of things like that. So the website is RHOK, Random Hacks of Kindness, RHOK.org, and there’s a heap of information about the cities where it’s on, but Melbourne’s been one of the main ones around the world and a lot of information about the sort of problems people will be looking at to solve and the things that people can do, and it’s for everyone for designers to developers interaction experts, user experience experts, project managers, really whatever your skill set around those things there’s a place for you to come and get involved and help make the world a little better place using your skills.
Louis: Yeah, fantastic. For anyone listening who’s maybe not familiar with the concept of a Hack Day can you just explain a little bit how that works and how it plays out in reality?
John: Yeah, right. So basically the events are anywhere between sort of 10 hours and 24 to 36 hours. And the idea basically is that people get together, often people who’ve never met each other before; sometimes people come as a team, and essentially pick up a problem, a challenge, and work on solving that for the allotted period. So basically you have people brainstorming a great way to respond to an emergency situation and perhaps building, designing and developing a mobile application to help people get the word out about a bush fire or something like that. So it’s really all about just bringing a laptop and whatever tools you typically use to solve problems, meeting up and connecting up with other designers, developers, other experts and getting stuck in, rolling up the sleeves and trying to solve a problem. And you’d be surprised at just how much people get done in a relatively short period of time, and the idea is hopefully for people to kind of build something that’s worth going on with, that people are excited about and things that we’re not finishing now we’re going to keep going after this as well.
Louis: Yeah, that sounds great. It’s good to see that these kinds of things are springing up more and more and that people have the opportunity to sort of just get involved and get stuck in and that’s a good way of doing it. If you have this sort of thing as a side project in the back of your mind like oh it’d be cool to do something about like you said bush fire alerts as a side project it can go on for a long time sort of just simmering on the backburner, but if you’ve got an opportunity to spend a couple of days really getting into it and making a strong start with a bunch of other people and some experts in that field, then it can really kick-start a project like that.
John: Yeah, absolutely. And in fact there’s a project that sort of came out of Random Hacks of Kindness event last year called Bush Fire Connect, that’s an ongoing project and those guys will actually be involved down in Melbourne, and that’s a great example of the sort of thing that can start at an event like this and then continue, but often the hardest thing to do is to make a start about one of those ideas you’ve had on the backburner, as you said. And it is a geat opportunity to do that. If you come along with a idea you might have done a bit of work on or a bit of thinking about and pitch it to a few people, you might well get some people saying “that is a cool idea, let’s see what we can do with that over the next 24 hours or so”. So if you’ve got some ideas like that, bring them along, if you want to try and make the world just a little better place plus have a lot of fun, maybe try something a little bit new, really doesn’t matter what you do in your day-to-day job, or as a student, bring those skills along and they’re always in great supply. And I tell you what, visual designers aren’t always in great supply, we tend to get fewer of those type of folks and more of your classic developer type of folks, so if you’re kind of front end design, visual/graphic design kind of person, interaction designer, definitely think about bringing those skills along because they really help make a cool bit of technology a great solution.
Louis: Fantastic. I wanted to shift gears a little bit and talk about some webby geeky stuff. You wrote a piece fairly recently on our new site, Build Mobile, about sort of mobile app development which I gather from what I see from you on Tumblr and on Twitter is sort of a focus of your interests over the last say few years. So do you want to just start off by giving us your position for anyone who’s not been following you, how do you feel about the whole web app versus native app and then this new nomenclature of the potentially hybrid app, what are your thoughts on all of that summarized?
John: So I wrote something in 2007, so quite a few years ago now. Basically at the time when Apple announced that there would be an native SDK for the IOS at the time, iPhone OS and I called it then a great leap backwards for developers, for pretty much everyone except Apple, and while we now have half a million applications in the IOS App Store and a 150,000 plus in Android app store and tens of thousands in other app stores, a word we didn’t even know or use three or four years ago, so you would consider that to be a great leap forward, we have these nearly a million apps I guess floating around on devices like IOS devices, Android, tablet, phones and Smartphones and so on; I still consider that ultimately a pretty huge leap backwards. I think it’s a leap backwards to a pre-Web day in a way, and there’s a lot I could go into great detail about why I think this, I think in particular the challenges are that we give the right or the complete control over our business as a developer to someone like Apple who decides whether or not an application will even be in their store, and once it is there they take it out again, so as a developer I don’t think it’s a fantastic thing at all. We’ve seen a real race to the bottle in pricing. I did some back in the envelope calculations in terms of business models several years ago about just how hard it’s got to be to make money selling applications at one or two dollars each, and since I’ve been selling software online and off for the last 20-odd years it’s something I do know a little about. And sure there have been some success stories, some people have become incredibly rich, but there’s a very long tail of applications that really don’t recover their costs, in fact, on average applications cost a lot more to develop than they’ll ever cover their costs. But beyond even that I think one of the huge challenges, basically shortcomings of applications, is that they don’t include the core of the Web which is linking, you cannot link into an application and to its state, an application running on an iPhone or Android or whatever. So anyway, the heap of reasons why I think it was and continues to be a great leap backwards. Now let’s just fast forward to 2011, it’s clear that as a developer whether it’s about a business of selling applications or make money through your own apps or whether it’s a business of servicing your client’s needs, there are certainly going to be circumstances in which having an application which is obtained through an app store or installed onto a device is inevitable, you just have to be doing that at the moment. I don’t necessarily think that’s going to be the case forever, but one of the reasons why you will have to do something like that is if you want to get access to the underlying API’s, the device API’s, things like the camera is a classic example, but plenty of the API’s of most of these devices are only accessible to native applications. So, where does that leave web developers? Well, one thing is we have whole heap of emerging standards from the W3C which are about exposing device functionality to web pages, we’ve already seen that with things like the geolocation standards, but, there’s the Device API Protocol, or DAP, from the W3C which is about exposing cameras and accelerometers and all these other sorts of device functionality to web browsers, so in the longer term I think the advantage of a native app which has greater access to the hardware and the native API’s of a platform will go away, I mean at the moment you of need to have a native app to access some of these things. However, that doesn’t mean you can’t build your application using web technologies in conjunction with a solution like PhoneGap or Appcelerator and there are a number of others, and then deploy those apps built with web technologies as native applications through app stores directly onto devices. And that approach is typically called a hybrid approach, so we have this idea that we have web applications on the one hand, and they run solely in the browser, and at the moment don’t have necessarily access to the full rich platform capabilities on which that browser is running. That’s not entirely true either, a number of platforms like webOS and the newer Blackberry platforms are exposing more and more of the device functionality directly into the browser. So that’s on the one hand a web app. On the other hand we have this idea of a native app which is packaged up and we get it through an app store and it’s installed on the device, and then we’ve been talking about this hybrid app in the middle. My argument in that particular article is that the concept of a hybrid app is really BS because just as native apps aren’t all developed using the same set of technologies, a lot of basically the way games are developed use very different sets of technologies from your standard kind of list and button-driven iPhone, IOS app. So to me if you build an application using web technologies, you package it up with something like PhoneGap and you deploy it through an app store onto the devices, Android, IOS, whatever other devices you care to, that’s not a hybrid app that’s a native app, and the fact that we shouldn’t really be concerned at all whether it’s developed using Web technologies. So that’s sort of the predominant aspect of that particular article. So that isn’t so much of a summary, that’s a pretty longwinded approach, hopefully that’s very editable or sufficiently interesting that people sat through it.
Louis: Yeah. I do want to quickly talk, so let’s say we’ll accept that as a given, there’s no such thing as a hybrid app, you’ve either got native apps or Web apps and native apps can be built either using native SDK’s or web technologies and then packaged up and then sold through an app store. Given that do you still feel that barring certain outlying situations the web app is generally speaking the way to go, or when you say that there’s no such thing as a hybrid app or hybrid apps are BS, are you saying that doesn’t count, we should be doing real web apps, or are you just saying it’s another kind of native app and native apps are applicable in some situations?
Louis: Sure. I do want to quickly take what you’ve just said and take that argument and try and flip it on its head and maybe play devil’s advocate a little bit. You’re saying, alright, in the relatively near future the way people think about applications and software running on their machine is going to be Web applications, you give Chrome OS as an example of something just boots into a browser and then access any range of Web based applications as if they were native applications. But it remains that right now that’s not the case, right now if I want to access a native application on my device I just open up my app drawer or whatever, click on the icon and boom I’m there, or find it in the app store, install it and there I go. Something in the browser still needs to be accessed by a URL, and a lot of people might make the argument that that is sort of a clunky user interface especially on a small device with a touch-base screen if I have to type in a URL to access this thing, that’s harder than just finding it in an app store.
John: Well, we already have app stores for wholly Web based technologies, so for example Google has an App Store, Apple doesn’t exactly have a Web based app store but it’s got a discovery service there, we’ve also seen with various extensions that you’ve got effectively app stores for extensions for Mozilla browsers or Firefox, for Chrome and for Safari, to name just three, so basically I mean the models there for discovery and installation already, it’s already happening. There’s a lag to some extent around monetization, there are some challenges there, but even that’s not entirely true because with the Google Chrome Web App Store you can basically kind of have apps that people have to pay for as well. So I think that it has to be kept in mind that URL was never designed to be humanly friendly, interestingly enough, it just by default became so, but we can readily imagine user experiences which basically tie together an icon and leaves it a URL but the user only ever sees that if they really want to. At the end of the day when you double click an icon in MacOS 10 on the desktop that is aliasing to an underlying file path on a Unix device, and that’s actually similarly true for an IOS device, I mean at the bottom of IOS you’ve got essentially Unix core, you’ve got a file system that users never see. The difference between a Web file system and the local file system is that it includes remote servers as opposed to simply the local server. So, I actually think sometimes we see our vision of the future as just like a high-powered vision of the present, whereas what I really think is in the same way as when we went from DOS to Windows or DOS to MacOS, whatever they called the operating systems way back then, what did Apple used to call them, just ’06 was it? I used to develop for them, I can’t remember now what they were called, I think they just called them maybe just OS 7 or something like that. Anyway, that jump actually didn’t change a lot of the underlying functionality, we still have sort of the same file systems now that we have had for 30 or 40 years, we just changed the user experience around them. So, and we already have an example of this on the IOS, you can save any Web page as an icon on your IOS homescreen and click that and launch that and if we added the right meta-elements to that page as developers it won’t even appear to be in a browser for our users after they’ve saved it the first time. So, I think from a user experience perspective there are challenges around making Web based content and applications less kind of feel like traditionally browser based experience, and I think that’s a shortcoming of Chrome OS as it stands, it still feels like it’s just launching a browser. Really what it should feel like is you’re launching the Web, right, which is less deliberately vague, but my point around that is the Web while things live at URL’s the user doesn’t have to know that, in the same way that they end of long Unix file paths or Windows file paths, but users don’t have to know that and they typically don’t want to know that, right.
Louis: Yeah. But in order for that to happen some device or operating system manufacturer would sort of have to take the lead and say, alright, we’ve got this, how can I say, this standard way of representing Web applications as applications and you provide an icon and a URL and we can make that available via the equivalent of an app store in a very transparent, well, in an opaque way that is to say for the users.
John: So well, look, as I mentioned there are a number of things that are already doing this. So firstly you have the widget standard from the W3C which is implemented by the Wholesale Applications Community or WAC, which is a consortium of handset makers and very importantly carriers, and basically it’s a packaging standard for developing applications which will be installed natively onto at the moment Android devices but it will include a lot of other devices as well, and as I said, based on the W3 widget standard, and the W3 widget standard is essentially a packaging standard for Web applications that are more or less installed on the device. So, we’ve got emerging standards out of W3 that have also been implemented in a number of places, Opera implemented something very similar, there is a Web app store from Google which uses sadly not exactly the same widget packaging format but a similar one, where basically the user can at the moment install applications into their browser, so it’s kind of like extensions are installed into the browser. And I think the next step is to break the idea that an application lives in the browser, and we’re already seeing that to some extent as well with the idea of pinned tabs in IE9 where basically you can pin a webpage to the taskbar at the bottom of Windows. So I think what we’re seeing is a lot of experimentation around this both in terms of the packaging formats, particularly with the widget format, the W3 widget format, Mozilla similarly had a lot of work around this same theory and some in practice. And so it’s not so much a matter of having to wade through this to emerge at all, it’s more I guess a matter of seeing how it shakes out, and I guess it’s a relatively emergent stage right now but it’s certainly already happening.
Louis: And your point would be that in the meantime we can still focus on Web technologies and deploy natively using things like PhoneGap.
Louis: Sure. I’m going to keep up my tack of playing devil’s advocate here.
John: Normally I’mm the devil’s advocate! (laughs) I usually feel like I’m the bad guy when I make these arguments!
Louis: So I guess my other point would be that so what you’re saying is that going forward Web applications are going to be the dominant form of applications, and mobile and people should focus their energies there.
John: Well, not just mobile basically on every screen.
Louis: That’s kind of where my question comes from, because we’ve had Web browsers on our desktop devices for 10 years now, and we’ve had decent application-like functionality in those devices for something like five years, say, in the browser. And yet we still see a lot of native desktop apps, right, people like haven’t abandoned the idea of the Windows or Mac OS application and switched all of their apps to mobile. And there have been similar bridging technologies, I guess you could say that Adobe Air is sort of the equivalent of PhoneGap for the desktop, and that hasn’t taken off so much either. So I was wondering where does the parallel break down; is this something that you think is going to happen on mobile even though we haven’t seen it happen on the desktop?
John: Well, so I think we have seen it happen on the desktop, it’s just its hidden away a bit. So I saw some research where I had some recounted to me recently, we’ll have to verify, trust but verify this one. But it was some folks from Microsoft and they do a lot of anonymous telemetry, so basically they’re trying to work out what people are doing with Windows so that they can meet the needs of users, right, so when people opt-in to send information back to a developer, and this is true of Microsoft, and Microsoft gets information about what people are doing with their device, 60% of the time the average Windows user is using Windows they’re using the browser. So, I think sometimes, and I wouldn’t mind betting to be quite honest, and I have absolutely no evidence for this other than anecdotally, I wouldn’t mind betting similar numbers were true of using something like IOS device, a tablet device, and so on; I wouldn’t mind betting that most of the time, a very significant part of the time, and certainly without a doubt, a blunt into a brick, basically the browser will be the number one used application on all those devices, it would dwarf pretty much all the other applications put together I would think, and I don’t think that’s particularly controversial. And if you start throwing in other classic Internet based stuff like email and then Twitter use and so on, even if the client’s running his native app, essentially people are using the Web in that way. So basically it was a very good question around the desktop, and yes people continue to build desktop apps. Interestingly I’ve been developing desktop apps for Mac and Windows for nearly 20 years now commercially, and that activity’s dropped off pretty dramatically in the last four or five years, so just as a personal example it’s something that I’m less focused on in part because I’ve seen that market, that whole approach drying up to an extent. And I think particularly for indie developers the way forward is probably more around software as a service and recurring revenue, a small amount of monthly recurring revenue from a reasonably significant number of users rather than a very large number of individual cheap sales. So anyway getting back to your point, so if we actually look at how much people use desktop, laptop computers, how they use them, most of the time they’re running a browser, and even their email is most likely these days is Gmail, Yahoo mail, Hotmail and so on. So I think we’ve already seen it happen, if anything I think the average user on a mobile device is probably using more applications than the same user on a desktop device right now; in a way that’s probably an ironic step backwards, but a lot of those applications they’re using on a mobile device, even if they’re native applications, may well have been developed with Web technologies.
Louis: Right. And a lot of them are using what are essentially Web features in the sense that your Twitter clients and whatnot are all essentially Web applications but even if they’re running as native clients.
John: Yeah, their clients are the apps that are running over http. And they’re accessing Web based API’s. And I think that if most people sat down and looked at their Web use or their mobile use or their tablet use, they’d probably find themselves using Flipboard, they’re using Twitter, they’re using Facebook, they’re using really Web services that are then being filtered through an application, and in the case of many of those applications when even they’re running as native apps like Flipboard it’s using Web technologies significantly if not completely.
John: Look, I guess there are a number of ways to approach that question. I think one is what works best for developers and I think the economics of developing for the increasing number of screens that are out there will more or less dictate that web technologies are going to win. It’s already happening a Netflix, let’s take Netflix, Netflix is one of the biggest surely that would have big developer budgets; I think that’s pretty uncontroversial. So why is it that a company like that with such an enormous potential developer budget has gone down the path of using Web technologies as the way to develop all their native clients across everything from the Wii and Playstation through to IOS and so on. So basically they use those technologies to deliver to tens, hundreds of millions of people the core user experience of their applications. To the extent that they actually ported WebKit to the Playstation, and Wii which already had a pretty reasonable browser, in order to develop applications for those platforms using Web technologies, so they’re investing pretty heavily on that. So I think that the economics is going to dictate, the sheer reality is going to dictate that if you want to start hitting a very broad range of devices, and I don’t think you can pick one or two winners going forward and saying, right, we’ll hit IOS and Android and everyone else can just go jump, because even within those two platforms you’ve got so many different form factors, so many different potential user experiences and so on, that even there you’re going to have to have some pretty seriously fragmented code bases if you go down the pile of having an Objective C Cocoa Touch app for IOS, and then you’re going to have a Java app for Android and then you have to try and have different user experiences developed for each of the different form factors of each of those different devices. Now, the sheer economics is going to dictate that Web technologies are the only way to meaningfully address that broad range of devices, mobile, tablet, and that’s only going to mention the various other screens that we’re starting to see roll out all over our living rooms and our offices and our cars and so on. And I think then to also look at economics from a slightly different perspective, screens are becoming very inexpensive, the high-resolution touchscreens are becoming cheaper, and if you look at the curve of where they’re going, if you’re old like me you can remember the day, the timeframe in which all these user interfaces that used to be dial-based, analog dial-based, became LED based, originally the kind of old red-numbered LED and then we had more or less the liquid crystal screens, the economics is such that pretty much every device that has any sort of user experience we’ll start seeing with high resolution touchscreens on them. Now, from an economic perspective these devices are going to need an operating system and they’re going to need some sort of framework for developing user experiences on them, and I think the only economically meaningful approach to that is basically open source operating systems and browser technologies which means that the per unit cost of deploying that sort of an environment onto all these touchscreens is very, very low. And in fact the more screens you ship the lower it is because it’s really the development costs up front of an open source project, the sort of thing Netflix did porting WebKit to the Playstation3 for example, once it’s done the more screens you ship on the cheaper each screen is, or you can go the licensing model, but traditionally that licensing model means that the more screens you ship the more you pay. So I think the economics as a developer of apps from our perspective as developers means that there’s really only one ultimate way forward around this if you want to touch all these broad range of screens, and if you look at the economics of where they technology is going, all these screens as we see them emerge in all sorts of places including places where they probably shouldn’t be, the user experiences are going to be created using Web technologies. So this gives rise to enormous opportunity for developers with those skills to also address a whole new range of devices, I mean already most high-end televisions are shipping with things like Android in them, they’re shipping with browsers in them, they’re shipping with widget engines in them, and there’s another example there. So, again, the opportunities that Web technologies give developers, not only now but into the future I think will dwarf just about any other technology you can make a punt on. So I think all these reasons sort of ultimately point in the direction of a tremendous opportunity for developers who have Web technology skills.
Louis: Yeah, absolutely. Well, let’s just say that you’ve convinced me even though I was already pretty much convinced.
John: You’ve been convinced all over again!
Louis: Alright, well, it’s been great having you on, John, and talking about this stuff, I read your blog posts and your Tumblr’s about this, so it’s good to get in there and really hash out whatever some of the counter arguments might be coming from various corners of the Web. Before we go do you want to let people know what’s up, do you have anything you want to plug coming up; I assume you’ve got more conferences coming up.
John: Yes, well we have kind of our biggie for the year which is Web Directions South which is coming up in the middle of October, SitePoint have long been great supporters and covered that in detail, we’ve had lots of podcasts and interviews and stories from previous conferences, obviously you guys being based here in Australia are like us. So that’s coming up in Mid-October, and we’ll be announcing a pretty amazing lineup in the coming couple of weeks, so if you just do a search for Web Directions or just Webdirections.org or follow us on Twitter: @webdiretions and you’ll be able to keep up to date, and we kind of great discounts when we first launch. So that’s kind of two days of about 40 or more amazing speakers from around Australia and around the world, great parties and all that sort of stuff, we’ve got some workshops and there’s a heap of other interesting stuff going to be happening in the same timeframe in Sydney again this year, so you’ll be able to keep an eye on that.
Louis: So can you just let us know where we can find you online, you’re on Tumblr, on Twitter.
John: Yeah, I’m all over the place. I’ve got so many projects I’ve started or continue to do in various places but probably the best place if you go to John Allsopp on Twitter, so @johnallsopp, and basically anything that I do I will Retweet or Tweet there and there are links there to the conferences and so on. And my kind of homepage on the Web is Johnfallsopp.com, it needs a bit of an update but I try to point to all the various things I’m doing, the books I’ve written and all that sort of stuff there as well, hopefully this Podcast we might have a couple links at the end to those.
John: Fantastic. I look forward to people come and following me, most of what I do on Twitter is technology based, it’s not a lot about my dogs or anything, so if you’re interested in me and my personal life I’m afraid it’s not the best place to look and probably not the best thing to do, but if you’re interested in my opinions and thoughts on technology, particularly web technology, but also I kind link to heaps of stuff I find, I’m always scouring the Web for interesting ideas and tool sets and products, so you’ll find quite a few links everyday where I point to great things to follow-up on and then they live on my Tumblr log somewhere, but you can find that through Twitter.
Louis: Alright, well thanks very much, John, it’s been a pleasure.
John: No, thank you, I’ve had a great time.
Louis: Excellent. Well, I’ll talk to you again soon.
Louis joined SitePoint in 2009 as a technical editor, and has since moved over into a web developer role at Flippa. He enjoys hip-hop, spicy food, and all things geeky.
7 Habits of Successful CTOs
"What makes a great CTO?" Engineering skills? Business savvy? An innate tendency to channel a mythical creature (ahem, unicorn)? All of the above? Discover the top traits of the most successful CTOs in this free guide.