011 JSJ Can HTML5 and JavaScript Really Replace Flash?



  • Flash
  • Shockwave
  • ActionScript
  • Object Oriented
  • Flex
  • FlexBuilder
  • flv Video Format
  • iPhone
  • iPad
  • Steve Jobs' commentary on Flash
  • Poorly optimized flash sites
  • HTML5
  • Chrome
  • Mozilla Firefox
  • Microsoft
  • Internet Explorer
  • Cut the Rope in Internet Explorer
  • Scrolling background
  • Many moving parts
  • Angry Birds in Chrome
  • File Uploads
  • The raw XMLHttpRequest object
  • HTML5 and Javascript haven't been used as much for games.
  • Development tools are lacking for HTML5 and Javascript
  • Tumult Hype
  • Adobe Edge
  • Flash Player Plugin
  • Vector Graphics
  • SVG
  • Metro UI version of IE 10
  • Silverlight
  • Interactive Websites
  • Stage3D
  • Flash can access your GPU for real time 3D rendering
  • Starling
  • The big players would like to move away from plugins
  • webM
  • H.264
  • Ogg Vorbis
  • Code security in JavaScript
  • Why is Javascript and HTML5 better than Flash?
  • Open Community
  • Browser usage percentages – why they matter
  • Adobe donating Flex to Apache Foundation


This episode is sponsored by

comments powered by Disqus


JAMISON: Oh you. TOM: And I suspect Chuck has heard a joke or two? CHUCK: Yeah, a joke or two. Yeah. It’s so funny because [chuckles] by the time I was in high school, you know I’d heard them all and so I would actually look at people just to be like, “Really, is that the best you can do?” And it totally killed their joke. It was funny. [Chuckles] Anyway. CHUCK: Hey everybody and welcome to another episode of the JavaScript Jabber Show. This week, we are going to be talking about whether or not we think HTML5 and JavaScript can really replace Flash. We’ve actual invited a Flash developer and that’s Tom… is it Beatty? TOM: Yeah. CHUCK: So Tom, you wanna introduce yourself really quickly and then we’ll introduce the rest of the panel? TOM: Sure. My name is Tom Beatty (you said it correctly). And I run a small, one-man Flash development shop. I specialize in doing online games and I’ve been doing Flash for about 13 years now. CHUCK: All right. If somebody wants a Flash online game, how do they get a hold of you? TOM: Go to degde.com the letter “D”, the word “edge”. You can go to dimensionsedge.com, but I found a lot of people can’t spell “dimension”, so I had to get a shorter domain. JAMISON: [Laughs] TOM: So dedge.com. CHUCK: All right. Dedge.com. All right. Jamison, we also have Jamison Dance. JAMISON: hi I’m Jamison Dance. I’ve heard a joke before. [Laughter] CHUCK: We also have AJ O’Neal. AJ: Contrary to popular belief, I’m not black. [Laughter] JAMISON: What? CHUCK: Okay. AJ: I thought we were going with last name jokes? Maybe I missed that one by ten years. Shaquille? Basketball player? TOM: Okay. CHUCK: I’ve heard of him. [Laughs] JAMISON: Got it. Cater to your audience AJ. This is a group of software developers. AJ: Look, it’s not my fault y’all are retarded, okay? CHUCK: Hey you know what? JAMISON: You just said “y’all” so you are clouding the issue a lot right now. AJ: [unintelligible] JAMISON: …and you’re secretly black. AJ: [Laughs] CHUCK: Yeah, were all geeks. We can go look up “Shaquille O’Neal” on Wikipedia and figure out who he is, right? JAMISON: This is true. CHUCK: All right. AJ: We should really start now. [Laughter] JAMISON: Yeah, he was in Shazaam. CHUCK: I was going to say, he’s been in a couple of terrible, terrible travesty movies [laughs]. Anyway, I’m Charles Max Wood form teachmetocode.com. And anyway, let’s go ahead and jump in on this. So I think a lot of the discussions over Flash comes from Adobe open sourcing Flash or Flex. I’m still not completely sure what’s going on there. Maybe Tom can tell us. [Chuckles] JAMISON: I think we should get like the history of Flash first just to kind of lay the ground work. CHUCK: Okay. TOM: Okay, you mean like… JAMISON: Can we do that? TOM: Ten years back? All right. JAMISON: I don’t know. I mean. Yeah, a brief history of Flash. Kind of like a brief history of time. TOM: Yeah sure. Well, okay. Flash started out really as a designer and animator’s tool; not really a development tool when Flash first came out. Okay it was FutureSplash, Adobe bought it, we had Flash. It really didn’t become popular until version three. JAMISON: What about like Shockwave? I remember playing lots of Shockwave games and I thought those were the same thing as Flash. TOM: Well… JAMISON: Is that further on the story? TOM: Macromedia, excuse me I did say Adobe it was actually Macromedia that bought FutureSplash. JAMISON: Oh, okay. TOM: Okay. Shockwave originally started out with program called Director. Director was the end all, be all for creating CD-ROM content; you know, everything used to be in CDROMs and then internet came along and… CHUCK: Hi, internet. TOM: Yeah. [Chuckles] And CD-ROM sort of went away. So Macromedia said, “Okay we need to adjust this Director contents so that it can be played on the internet,” and that’s what Shockwave was. Then Macromedia brought Flash. And they you know, kind of added the Shockwave label to it because it was more interactive internet contents, so let’s just kind of lump it in with Director. And so that’s why you have swf files; it stands for “Shockwave Flash.” Now, the problem with Director was it was a cool program, but it was really never really designed to put content on the internet, so the files are very big and clunky and Flash was so much cooler. So, Director sort of disappeared and Shockwave games kind of disappeared too. And everything got replaced with Flash. But you know, Flash had its problems too. When it first came out, it didn’t have a full programming language behind it. It had a timeline and you can animate with it. You can move graphics around and you could click a button and go to another animation or another page or something. But they didn’t have any variables; you couldn’t do that much with it other than make other really cool banner ads. [Chuckles] So, eventually with Flash 4, they added variables. You could actually start making games and that’s when I first started really getting into programing aspects of Flash. But the big problem is when you take a bunch of designers and say, “Okay, now you can program…” CHUCK: [Laughs] TOM: …you end up with not exactly great programming all the time. And you know, Flash kind of carried that tradition for quite some time. The programming language ActionScript got more and more robust and it became more powerful. It was actually becoming a pretty nice language — all things considered.  But it was still primarily designers that were using it. And so, you know, you’ve seen those big websites you know, there are lots of movie websites especially, you get these huge monstrous websites that take forever to load. Even on my desktop they run slow— CHUCK: I was going to say the Harry Potter websites and stuff were all done on Flash. JAMISON: Oh, my gosh. The Harry Potter website is so bad. TOM: Pain. Absolute pain. CHUCK: Yeah. It loads up and you know it loaded up because then you get a counter saying that it’s loading up. TOM: Yeah exactly. [Laughs] And you know, they didn’t optimize anything and they’d import these 5Meg graphics and it was just bad. CHUCK: Only 5 Megs? Nooooo! TOM: Oh, okay. Maybe 50. [Laughter] So Flash got a pretty bad reputation. I mean as it was, admittedly, it can be a bit of a resource hog — especially if you are sloppy. AJ: What about the part where my CPU… TOM: Well yeah, okay. [Laughter] That can happen I suppose. CHUCK: It’s not these parts of Flash that we are talking about replacing by the way. TOM: Yeah. Yeah I know. Unfortunately, you can’t really replace part of Flash without getting rid of the whole evil thing. So anyway, Flash did continue to improve and eventually, what they did was they went to a true object-oriented language. They changed ActionScript significantly with ActionScript3 and it became too object-oriented and all of a sudden, a lot of developers started looking at it seriously as a real development platform for enterprise applications; it wasn’t just for games anymore, or animation. And that’s where you get all your Flex developers and people using Flex builder and other IDEs. So, that came along and you know, it was great and all, but Flash is still a bit of a resource hog. But not a bad solution for a lot of things; for video, it’s fantastic. The flv format is actually really good internet format. For games suddenly you had some new abilities there. Not only did you have your great graphics animation, but you’ve got a full object-oriented language behind it. So, you know, it made it a very versatile tool. Well, life was happy for Adobe and then the iPhone came along. CHUCK: [Laughs] TOM: Yeah. [Laughs] Now I have my  personal reasons or theories as to why Steve Jobs said what he did, there where he came out and said Flash it outdated technology. And in some ways at the time that he said it he was definitely right. But there wasn’t a good replacement. HTML5 was a long way from being ready. And you know, Steve jobs, he is been known to do this before. You know, years ago he said Apple is done with floppy discs; and they got rid of it and the whole industry followed. AJ: They got rid of CDs and Blu rays. TOM: Yeah, yeah that’s true. And so… but I mean, Mac was the first computer to come out without actually having a floppy drive in the computer. These days you can… AJ: Flash them. TOM: What was that? Yeah. [Laughter] It was good. It worked well. Flash, the problem was there wasn’t a good substitute available yet. Is there? Still, no. [Chuckles] Is there going to be? Well, we’ll get there. Anyway, so Adobe has been scrambling a bit because you know, the iPhone and iPad as everyone knows, doesn’t support Flash. And so Adobe has had to adjust their thinking in a lot of things because once Steve job said this, it kind of changed people’s impression about Flash and where it was going and what its future was in the web. CHUCK: Right. So, I’m wondering — and I’m going to derail you a little bit I guess — so we are talking about these mobile platforms, is that really where the problem is coming with Flash or is there more to it than that? TOM: Well, okay I think one reason that Apple chose not to support Flash is because, okay you saw these Harry Potter websites and some of these other movie websites — you know, badly designed things. You still have designers which are not optimizing stuff sufficiently and so there’s a lot of stuff out there that’s even taxing for a desktop computer. Not so much that its Flash’s fault, its more the people developing and designing on Flash. And that goes back to its roots you know, when you have designers who are used to using Photoshop who moved over to Flash and don’t learn about optimizing and things end up with some fairly scary things. So, imagine taking the first iPhone and trying to run one of those sites on it; you are not going to be as impressed with your iPhone. I test a lot of the stuff that I create an original Motorola Droid, which only has a 600 MHz processor. And you know, sometimes it’s downright painful. CHUCK: Yeah. TOM: So you know, you eliminate that problem if you take Flash out of the equation. So, Apple became a big supporter of HTML5. And it was a great thing for the HTML5 movement. There wasn’t a lot being done until Steve Jobs said Flash is outdated technology. And then everyone said, “Where are we going to go to? We are going to HMTL5.” And a lot of effort has been going in to try and get some standardization there, trying to further the platform to be a replacement for Flash. CHUCK: Right. So one thing that I’m seeing a lot of, is I’m seeing I mean Flash is fairly — and by “fairly”, I mean very mature in technology — and HTML5 is still kind of, it’s still kind of forming. I mean I don’t think they finalized the spec. And from what I understand, they are not planning to do it – at least not any time soon. TOM: I think they have till, what 2022 I think [chuckles] to get the final approved. CHUCK: Oh is that all? TOM: [Laughs] JAMISON: Two thousand million, I think. Actually. TOM: Two thousand million. TOM: Two thousand million. Okay. Yeah, that sounds about right. AJ: But the problem with HTML5 — well, not a problem — I guess one of the things I see with it is I have no idea what the 2020 hundred billion… I have no idea what that means because what I’m seeing… [crosstalk] JAMISON: That’s when the spec is actually going to be like formalized and like, frozen I think. TOM: Yeah, that’s when they approve it as the final version. CHUCK: Right. But we are using features from it now, so it’s not this pie in the sky thing that may or may not be finalized. I mean when they add stuff to it, it winds up in our browsers. TOM: Yeah. Well, in some of our browsers. [Laughs] CHUCK: That’s true. AJ: The nice thing is Chrome and Firefox are really pioneering the technology. They are really taking it forward. TOM: Firefox is going a little slower. AJ: Well, when you don’t have a multi-billion dollar company backing… actually they do have a multi-billion dollar company backing them, which is Google. Google’s focus used to be Firefox, now its Chrome. So when you hire the Firefox developers and take away from Firefox to build Chrome, you know, you could see how there’s a little… [Crosstalk] CHUCK: Right. There’s Google and there’s second hand Google. TOM: [Laughs] Right. JAMISON: [Laughs] TOM: And then there’s Microsoft which, you know, that’s kind of an interesting thing because Microsoft, although they are pushing forward in the HTML5 platform and they really want to move towards making that a popularized standard. They are also one of the things slowing us down the most, in my opinion because you still have people using older versions of Windows, that IE8 is as far as you can get if you are running any Windows before Vista. AJ: Well, I have my own conspiracy theories too; I think that Microsoft wants to regain market share. I would not be surprised at all if they don’t put in, if they don’t focus a lot on gaming. Introduce some stuff that other browsers can or won’t implement and try to regain market share by capturing the game market. JAMISON: Well, they already kind of started that with Cut the Rope, right? That was an iPhone game and then they paid the developers a bunch of money to port it over to IE9. And according them it works best in IE9. I tried it in Chrome; it was a little wonky but it was pretty impressive stuff. TOM: Yeah. See, here’s the rub on Cut the Rope. I mean, it’s a nice game. The port is beautiful. It plays very much like it does on your tablet. But the big problem with Cut the Rope is it’s not really, a system-taxing game. You don’t have any scrolling backgrounds; you don’t have lots of things moving on the screen at once. It’s a popular game, by the same token, it’s not really showing how impressive HTML5 is or you know, maybe they chose that game so that you didn’t see the weaknesses. CHUCK: Well I think they did some of it just because it’s a popular game. I mean, a lot of people out there are playing it. I like it. [Chuckles] I think it’s fun. TOM: Yeah, it is. CHUCK: So I mean, it grabs our attention. I think it was also an answer to… was it Angry Birds that was done in Chrome? AJ: Yeah. TOM: Yeah. CHUCK: So, I think they were just saying, “See, we can do it too. Our browsers are first class citizen just like Chrome is.” JAMISON: They fired a bird… [Laughter] AJ: The thing that I was saying was I see Microsoft implementing this stuff for games, so they can say… because like, it’s all about the marketing appeal, right? The sex appeal. So you say, “Oh we’ve got these games that we can show off and it looks cool and everybody agrees about that.” But then, they still don’t have the core features of things that everybody really needs. So games are  new with HTML5, but you know, other things that people have been trying to do for years, and years and years like file uploads, Internet Explorer still doesn’t… maybe they’ll do in 10 or something, but the last time I checked, they still don’t have your basic file API and the kind of stuff that the other browsers had implemented when there wasn’t a standard have kind of consolidated their feelings about and created the standard and now, implements in a way that kind of works more or less. CHUCK: That’s another area too that I’ve seen a lot of Flash use, uploading large files. AJ: Yeah, so an interesting thing about — that I’m going to have to diss on HTML5 a little bit — is have you ever used just the raw XMLHttpRequest object? CHUCK: Unfortunately. AJ: So it’s different in any browser;  much like, you know, anything that’s part of the DOM. And so with HTML5, they created xhr level 2, xhr 2 which gives you file upload events and stuff like that. Unfortunately, they still didn’t quite agree on what events means and when they should be fired. So there are upload events and then there are download events; so request and response events. And they don’t necessarily fire in the way that you would hope that they would. Same thing with the media elements that have been introduced — so like the audio tag, the video tag — right now, I mean I think it’s great because you can use them and it will work on a phone, but you got to do a lot of like scratching your head to figure out why the events aren’t firing. But then, if you inspect the object manually, you can see that the object has changed. You know, you shouldn’t have to set timeout to check an object to see what its progress is. Its supposed to fire the progress event, things like that. TOM: Well, okay. While you are hating on HTML5 over that, let me also say that it’s fair to hate on Flash for that too. Unless you are dealing with Flash media server, Flash itself doesn’t handle files real well except for… you know, you can’t upload a file into Flash. Flash can read image files or video files from another source on the internet, but it has no direct file control itself. AJ: So is there some way you can kind of trick it like the old school way of like browsers as you set the… you override the content type to be user x charset user defined or something like that. TOM: I believe security is prevented from doing that, so that’s why Flash programmers that get into  a lot of that become real familiar with PHP or some other server-side solution. CHUCK: Right. AJ: Doesn’t Flash have a transfer format? Like an answer to JSON but something more binary-ish? TOM: Not standardly. It does… AJ: Or Flex. TOM: Well, okay Flex does — I believe. I don’t do a lot with Flex, most of what I do is using just using the Flash Pro IDE. That works well for me when I’m developing games just because you know, I can be doing my graphics and my coding in the same place easily. One of the weird things about Flash and Flex is that Flash is built with a concept of a timeline and although Flex no longer visibly has a timeline, it’s still sitting there and you do have to code with the timeline in mind. So it’s kind of unusual coding environment because you know, even though you might not physically see the timeline, it does still exist. It still remembers… Flash still remembers that it is coming from a design animation background. And so, you know, while Flex adds a lot of additional tools and you can do… I believe some of that uploading and such, it still has some limitations as a result. CHUCK: Nice. Okay. So I really want to dig in to some of the other features of Flash and Flex development, versus JavaScript and Canvas development. What are the differences between the JavaScript and Flex — or ActionScript I guess I should say. TOM: Well, taking a look… one of the biggest problems that we have right now is HTML5 and JavaScript, they have to step up. They haven’t been used a lot for games until just recently, because now they realized, “Oh, we are supposed to be a replacement Flash, what does Flash do that we don’t?” [Laughs] And at the moment, one of the biggest problems is we don’t have the development tools. You know, the Flash Pro IDE is really a nice environment for developing games — or at least I enjoyed using it a lot. There are new tools coming. There are some animation tools that are already available for the Mac that is Tumult Hype. JAMISON: This is for HTML5 and JavaScript when you say… TOM: For HTML5, yeah. That was one of the earlier animation tools to come out. In truth, I haven’t been overly impressed but for like $40 or $50 you know, fun to play around with. From what I’ve seen so far, I’ve been taking a look at the previews of Adobe Edge, which is going to be their big HTML5 animation tool. It looks really great for doing banner ads. [Chuckles] CHUCK: [Laughs] JAMISON: [Laughs] CHUCK: That harkens back to our historical lesson. TOM: And you know, that’s the sad thing because ironically, the people who absolutely hate Flash and had been against it since the beginning, they are going to find it harder to block animations done in HTML5 because it’s going to be native. [Chuckles] You can’t just turn off a plugin. And you can’t really say, “Oh turn off all Canvasses,” because Canvas is really what HTML5 is going to be about in a lot of ways. But the animation, the animation is clunky. And it writes — so far in the preview of the Adobe Edge that I have seen — it writes the animation in JavaScript and it minifies it, but it still is big, clunky bit of code for creating objects on the screen, moving them around. It doesn’t have the advantages of those vector graphics that you saw in Flash where you know, a classically-trained animator can go in there and make a character move and do some really nice stuff. I mean, sure there’s lots of horrible, awful looking Flash animation out there but there’s some really nice stuff that was done too. And at the moment… AJ: I was going to say, now SVG2 or something was supposed to be an answer to that, like it’s supposed to be animation with SVG and then last I heard, it got dropped. Anybody know anything about that? CHUCK: Nope. AJ: That was one thing with the acid test that Internet Explorer finally got a browser that pass the acid test, except for a couple of items. And by the time they had actually gotten on-board and started developing towards it, it had been dropped from the standard but nobody removed it from the acid test. It’s kind of what I heard or read. TOM: I don’t know. Things have been kind of strange with Microsoft. I haven’t quite understood what they are doing exactly because although there are really promoting HTML5, they’ve got the Metro UI version of IE10, which isn’t supposed to support plugins. They are going to have a full version of IE10 too. But you know, it looks like they are moving ahead with this idea of browsers not using plugins eventually. But they are also pushing ahead with Silverlight, which has… AJ: What? TOM: well, they are pushing ahead with Silverlight. AJ: Really? TOM: As far as I can tell, I haven’t seen that they’ve officially abandoned it yet. You still find tutorials on Lynda.com new tutorials coming out. And you know, that seems very surprising to me because Silverlight is all about plugins and it’s kind of the Flash that never took off. JAMISON: Well, I was under the impression that they had abandoned Silverlight. I mean Metro doesn’t use it at all, right? Metro is just all HTML5 stuff and I thought I remember hearing about from the developers that were grumpy because they invested in Silverlight and then Microsoft was just dropping it. TOM: That may be the case. AJ: I was under the impression they were dropping it. JAMISON: So I wanted to ask you, we’ve kind of danced around it and it seems like you are saying that the advantages of Flash are for things that you have to do a lot of heavy animations, right? So and that’s because the tooling support and maybe the way that animations get rendered into JavaScript code is a little bit messy. So other things that Flash used to be used for are lots of interactive websites, is that still… I mean you could just argue that that was a bad idea in general, that’s kind of dead, right? We don’t need Flash f that anymore because we don’t like that on the web in general. We don’t wanna do that in any technology, right? I’m not talking about interactive websites. I mean, like the JK Rowling website we were talking about like a little dog like start crossing across the screen and you hear a doorbell in the background and you can like go to her about page by like clicking on her phone and like dialing in numbers and stuff. I don’t know. CHUCK: [Laughs] AJ: Are we talking about Microsoft… JAMISON: No, no. this actually if you go to JK Rowling’s website, this is what you will see. It feels like she is trolling the internet. TOM: See, here’s the thing; it’s tough to say what the future is for Flash right now. Certainly, the industry is saying, HTML5 can eventually get rid of plugins… JAMISON: I mean, so video is the other thing that I didn’t mention, but that’s been worked on lots of HTML5 support for video in browsers. I think websites are kind of where it’s lying. CHUCK: Let’s hold off on video for a minute because I wanna talk about the interactive stuff and it seems like Tom has something that he wants to say about. TOM: Yeah see here is the thing; the entertainment industry seems to like those crazy, overly interactive websites. I agree with you, I think that there are places to use Flash on a website and there are certain places not to. And you know, those big, clunky websites that are really painful for the user experience. We don’t need it, but there are some people that, you know, if they are willing to pay for it, then I mean, you know, if that’s how they wanna represent their company or products, who am I to argue with that? AJ: A concerned citizen, maybe? TOM: Yeah. [Laughter] That’s fair. But the thing is that we haven’t addressed is what Flash is doing now. I said before that at the time Steve jobs said that Flash was outdated technology, in some ways he was right. But Adobe’s actually put a bit of time into Flash recently. I don’t know if you guys are familiar with Stage3D, but that’s been incorporated to the newest Flash player. AJ: What’s that? TOM: Stage3D. AJ: Tell me what does it mean. TOM: Okay. What Flash now does is it’s capable of accessing your GPU. And it’s making you know, it was originally designed… JAMISON: Oh yeah, I remember hearing about this. TOM: Yeah Adobe was originally promoting it as, “Hey, we are going to have the ability for you to do real time 3dD rendering.” What they didn’t promote at the time people found out very quickly is that this helped everything. Even 2d games, they are getting speeds up to a thousand times faster than they were. You know, Flash used to slow down a lot when you got a whole bunch of things moving on the screen at once. You know, I’ve seen some of the demos with the Stage3D and it’s unbelievable. I mean people are creating games now; full 3D-rendered games as an alternative to using DirectX or other 3D technologies. One of the nice things is you can develop it on your Mac, on your Windows machine and then easily port it to the other, port it to over to iOS, port it over to Android and even BlackBerry Playbook if you want these for people to  have your game. But anyway, you know, that’s actually really a tremendous thing. And you know, what the future of Flash is it’s kind of tough to say. It certainly still works on the web, but Adobe has made an interesting development platform that works… it’s a really nice cross platform development tool now. And so that kind of changes what Flash is. JAMISON: So at that point, you’re running into Unity a little bit though, right? Because Unity is a browser plugin that has… I don’t understand it too well because I’ve never used it because I’m not a game developer, but I know that I can go to website and it says download this unity plugin and I download it and I can play like counterstrike basically in the browser. TOM: Okay. Couple of differences though; difference number one; everyone’s already got the Flash plugin. Unity as you say, you’ve got to download it. It doesn’t have near the same penetration. Number two; if you’ve ever talked to a unity developer, one of the biggest drawbacks is creating that 2D user interface over your 3d environment. Unity evidently is a real pain to do that, while Flash still has all the tools that it had before — plus the 3d built in. This is just an upgrade of your player, which most browsers are going to do on their own. JAMISON: So does Flash have a 3D… like a game engine kind of, already? Unity kind of seems like an engine and Flash seems like it’s something that you would — if I understand you right — would someone have to like write a 3d engine that everyone uses for Flash? TOM: There are frameworks that are available, and so it’s not actually built into Flash but there are frameworks. JAMISON: There are other ones already out there? TOM: Yes. And there’s some 2D frameworks. Starling seems to be one of the more favored ones right now and that incorporates very easily. I haven’t done it yet, I’ve looked at how that works, I haven’t… in truth, I’m actually pretty good at optimizing my game so it hasn’t been a real issue, but you know, taking a look at some capability and how much faster it makes everything. Suddenly Flash becomes a real competitor and  not just as a web development tool but as you know, for building apps, building executables for both Mac and Windows. CHUCK: All right. So I think we are getting a little bit a feel just in the sense that you know, we are really talking about JavaScript versus Flash kind of stuff, and were running a little low on time. I really wanna ask this question kind of to everybody and that is, do you think that JavaScript and HTML will eventually take the place of Flash, or do you think that Flash will always have kind of a home on the web? TOM: Well, I think a lot of the power players that signified that they would like to move away from plugins. I think we are a long way from fully being able to do that. Too many people are still playing words with friends on Facebook. CHUCK: [Laughs] TOM: There is the video issue, which is a fairly significant one. CHUCK: Yeah. Let’s poke that one in the eye really quickly. So basically, the issue with video is that, not all browsers support all video formats. TOM: Right. CHUCK: So, you have everybody except for like Mozilla and Opera I think support H.264 and then Mozilla and Opera prefer Ogg, but there are few other browsers that also support Ogg. And then there’s another one that Google came out with that is also supported across some, but not others. TOM: Yeah, webM. AJ: I think that was supported for everything except for Safari, right? TOM: And iOS. AJ: Yeah, yeah. TOM: Well, okay. I guess yeah. AJ: So Safari, mobile Safari. TOM: Right, right. But Google has been threatening now since January of last year that they’re going to drop H.264 from Chrome. They haven’t, but.. CHUCK: Oh, please lord. No. TOM: [Laughs] They’ve been saying that for a long time. And their reasoning is they claim H.264 is not truly open – which it isn’t. AJ: FireFox will adopt it because the royalty… possible, possible royalty issues in the future. TOM: Yes. CHUCK: Flash owns this space because they have a player that’s installed in nearly every browser and as long as there is an flv format behind it, it would just play them. AJ: But isn’t that wrapping H.264 ultimately? I mean, isn’t the flv when it’s not like a game thing like a strong bad type thing, when it’s actually like a video, isn’t flv just a container for H.264? TOM: Yeah it is but Adobe has taken care of all the licensing and everything. And H.264, it could get messy. I think technically, for instance, I was reading something I’m not sure how accurate it was so let me qualify that but, if you do an H.264 video on a pay site that’s you know, behind a pay subscription system, I think technically, it’s not royalty free at that point and you do, you may have to pay licensing fees to MPEG LA. AJ: [Sighs] CHUCK: Yeah. That’s the core of the issue though is that MPEG LA actually owns the rights and I’m not sure if it’s a patent or some kind of… TOM: It’s patent. It’s like a ton of different patents and MPEG LA basically is your one source to go to for paying the licensing fees for all those patents. CHUCK: But anyway, so ultimately in the end, will JavaScript and HTML5 will be able replace Flash? TOM: Maybe? [Laughs] But it’s going to be hard. It’s going to be hard because anytime you wanna make an improvement, you’ve got to get all the browsers to update and to be compatible. And you know, that’s been a problem just from the baby steps they’ve taken so far. And you know, I can appreciate the desire to get rid of plugins; I don’t agree with it, I don’t think Flash is going to go away completely in the next 5 or probably even 10 years. It’s so tightly embedded in so many different areas and changes in the browsers happen so slowly. It has been speeding up, you know, Google has put a lot of money behind it, Apple has put a lot of money behind it, but I don’t think it’s going to completely replace Flash for a while. I do think there’s going to be a lot of efforts being made to try and duplicate what Flash is capable of. And I think that will help significantly. AJ: And also, Flash is like a lot of things; it’s not just a single like we are talking about HTML5 and there’s the Canvas, there’s the video. So Flash does it all and it does it all in every browser. You know, even if we get video worked out, we still got to work out the other things, so. CHUCK: Yeah and I think you make valid points. I think the only area that it really becomes an issue in is the mobile arena. Because I mean I’ve had Android phones that had a Flash player installed as part of the browser. And you know, some areas, Flash work fine; in other areas, it really kind of didn’t. But then, you are on the iOS, you are out of luck. I mean if they’ve made an app that will do it like YouTube has, then I guess you’re okay in that area but otherwise, I mean you know, tough. TOM: And keep in mind, Android is only going to have it temporarily. They just recently came out with 11.2 player and they said, “That’s the last one we are making for Android.” And so, five years from now, it’s not going to happen. Who knows? Five years from now, you may be using tablets that are running modified versions of OS X and Windows 8 and Windows 9, whatever because those are all moving towards  being touchscreen-friendly and eventually being your table operating systems. CHUCK: Yeah and both of those companies has made serious progress toward unifying the experience. If you’ve got an OS X Lion even, I mean there are a lot of elements there that have definitely moved in that direction. And if you look under the covers on OSX, its running on the BSD kernel just like OS X is. TOM: Yeah. Can I bring up one other thing real quick? CHUCK: Yeah. TOM: The other thing that JavaScript is currently falling short in is making it difficult for people to take your code. You know, with some of the work that I do, I just created a website that has 9 games on it for a client, and these games are very specific, proprietary games that are designed to help with certain medical issues. And you know, it was very important to the client that when these games are made, they need to be encrypted. They can’t be easily taken. And I know JavaScript and HTML5 will eventually come up with a solution to that, but at the moment, that’s something else that’s unfortunately missing. AJ: What do you mean “encrypted”? You mean like actually encrypted, encrypted? CHUCK: So that you can close the source. Because as it is, you have to pass… I mean you pass actual code to the browser to execute and so, if you write a game or some other proprietary software, sure you have copyright on that, but there’s nothing actually to keep somebody else from using your code. TOM: Exactly. AJ: Well, what is the difference then in Flash, like I see the same thing. You got byte code and you got byte code. You run a prettyfier on another one and you get back code that is a little difficult to interpret but you know… CHUCK: Yes, you can decompile Flash or Flex, but I guess it’s not the same thing. TOM: Well, there’s encryption that I have that I used in all my Flash games. You can take it, you can decrypt it. Once you decrypt, you will not be able to do anything with and you’re not going to be able to re-encrypt it to recompile that either. It is too messy. And it would be more work to try and figure what I did from the encrypted code than it will be just to write it from scratch. CHUCK: Right. AJ: Well, I think the same is true for JavaScript. CHUCK: Maybe. AJ: I mean that argument just doesn’t fly really well with me because I’ve decompiled Java code and you know, if you leave the debug statements in then you get the exact code back. And I’ve looked at… I mean C code is kind of hard to decompile but you can run a decompiler or a unminifier. And when I think of minified JavaScript, to me it’s just byte code that happens to be something that you can open in a text editor. By the time it’s gone through all the optimizations that it goes through, if you run it through closure or something intelligent like that, then you know, I see it just as byte code. TOM: Okay. AJ: And then it goes to machine code anyway. CHUCK: There’s a little bit of truth to that, but it’s not on the same level as actually getting byte code. And decompiled byte code is considerably harder to read, in my experience. But it may just be my familiarity with JavaScript. AJ: I don’t use a lot of decompiled code. So I’m not really one to speak out. TOM: See Flash you actually have to decompile it. And if it’s been encrypted, when you decompile it, you can’t compile it again. It won’t work. Flash won’t know what to do with it. CHUCK: Right. So then you can’t modify it to make it into the same game with different graphics? TOM: Right. AJ: Okay. That makes sense. JAMISON: I have a question if we are done with this. If not, then keep going. CHUCK: No, go ahead. JAMISON: So we’ve kind of taken it for granted that we want JavaScript and HTML5 to replace Flash. I mean, the question you asked assumes that you would want to do that. But we haven’t really stated the benefits maybe of HTML5 and JavaScript. I mean, why do we want to replace Flash? Why do we think it’s better? I think that’s important to say. CHUCK: Well, I think the one thing that Tom keeps pointing out is moving away from plugins. JAMISON: But I mean why? CHUCK: Yeah and that’s one I keep hearing too. It’s  native to the browser? JAMISON: But why is that better? TOM: Yeah [Laughs] that is a good question. JAMISON: I’m being devil’s advocate. I think it is for most things, but I think interesting to hear about. TOM: I think for speed and resources, it is better if it can be native to browser. However, for changes and upgrades, that’s going to be slower just because you have to get everyone on board instead of just saying Adobe, “We’ve added this!” [Chuckles] CHUCK: Yeah and, “Here’s your new player.” TOM: Yeah exactly. But again, then you are dealing with much more open community. And you know, changes may happen slower, but it’s less of a monopoly deciding or monarch [chuckles] as the case maybe. CHUCK: yeah. I don’t know. I mean, I haven’t really thought much about that, Jamison. So I don’t have a powerful opinion on that, but yeah I can definitely see that. I do, in a lot of cases, think that a lot of things are closed that probably could be open-sourced and benefit more from that and benefit the community more than that, so that’s something that I like. But it’s not you know, yeah and the performance stuff makes sense, but I don’t see a real strong draw one way or the other. And I’m probably  going to get hate mail for that. JAMISON: I’m typing you some hate mail right now. CHUCK: [Laughs] JAMISON: I think the biggest thing is something that Tom mentioned just to having an open community makes up for any other weaknesses that you might have in the platform. The fact that there are so many people working on this out in the open, I think means that it will advance a lot and even if the actual environment doesn’t advance, people will figure out how to do cool stuff with it. So I’m not in the Flash community though. I mean, I don’t have my ear to the ground with that but I’ve never heard someone say, “Check out this awesome thing that figured out I could do with Flash.” It just seems like its people doing stuff that they have done. I mean, games are awesome; I love playing games but it doesn’t seem like there are any… I haven’t heard of any technological advances or things that are coming out of Flash. So I wanna hear Tom’s rebuttal on that though because he knows Flash much better than I do. TOM: See, again, a lot of it is some of the greatest advancements do have to come from Adobe starting it up — like Stage3D is fantastic. But the problem is they have made it may be too late. You know, because a lot of people have it in their heads that Flash is gone, or is on its way out. Now, I think for enterprise applications, there’s no way I recommend that someone do in Flash today. That doesn’t make sense. You know, there are a variety of other ways that you can do that. For games, Flash is still king. Yes you can build Cut the Rope or Angry Birds in JavaScript and HTML5, but you are cutting out I think something like 26% of browsers still are not using HTML5 so you are cutting that out. AJ: So I got a question there, because people are always bringing up these statistics about browsers and I keep on wondering, where does that make sense? Like, what does that 26% mean? Because if 26% is, you know, people inside of Wells Fargo and down at, you know, Fort Knox or whatever, do we care that they are not playing the Flash games? TOM: Oh I absolutely do and I will tell you why. The highest… the largest demographic that plays my games… CHUCK: Are at work? JAMISON: [Laughs] TOM: It’s women 40 and over, at work. JAMISON: [Laughs] TOM: Because my games are cooler than Windows solitaire, I guess. CHUCK: [Laughs] TOM: That absolutely matters to me. I get more hits on Friday during the day than I do Saturday or Sunday combined. CHUCK: [Laughs] TOM: [Chuckles] So you know, something to think about. CHUCK: [Chuckles] That’s funny. AJ: Interesting. Because I come from the perspective of being in college like you know, yeah there’s a few people that don’t have a real browser, but they also don’t have friends, so they don’t know about those games anyway. JAMISON: That was a little bit of an attack. You don’t have a real browser, so you don’t have any friends. [Chuckles] AJ: Well no. I mean like, it’s true though. Everybody who has a tech friend… anybody who’s got a friend that’s a little bit techy isn’t going to let you use Internet Explorer. TOM: Well, yeah I mean, I don’t know if this happens in your neighborhood, but I’m like the computer go to guy; when someone gets a new printer that they can’t get working, you know, call Tom. [Laughs] you know, I’m helping out people that are a generation older than me. And you know, they are running Windows XP; they are running older operating systems. And when you say, “You know, you really should change your browser.” They’ll say, “Oh, I like Internet Explorer. That’s what I’ve been using.” And you know, not everyone is as tech savvy and you know… AJ: That’s why they shouldn’t be using Internet Explorer, if they are not tech savvy? Like don’t have the degree of experience that they need to navigate to that minefield. TOM: Well, but it’s what they are used to. And you know, they might be very IE6, well I guess soon it’s about to force them to IE8 but… CHUCK: AJ, you just need to go find yourself some grandparents. TOM: [Laughs] CHUCK: Because mine are 80 something. AJ: No, here’s the thing. JAMISON: They don’t know what browsers are; they know what the internet is and the internet is the blue “E”. AJ: My grandmother was a programmer at the Pentagon, okay? CHUCK: Okay. You are exceptional right there in your grandparents. AJ: However, she does not know a computer any more than everybody else because the computers that she programmed on were quite different from what she is using today. TOM: Punched cards, fun stuff. AJ: Yeah but no, a lot of times with friends that I have or family members or whatever, I just put Linux on their computer and I’m like look, “All you are doing is checking your email, here’s Lynx, here’s Chrome, you’ll never get a virus, you’ll never need to upgrade. You are good to go.” CHUCK: I’ve tried that. TOM: And then they buy a printer that has no driver. CHUCK: [Laughs] JAMISON: And then they have to recompile the kernel, then they are doomed! CHUCK: Yeah. All right. AJ: What printer doesn’t have a driver for Mac and Linux though? I mean like that’s pretty weird. CHUCK: [Laughs] AJ: I have not plugged in a printer that requires a driver in quite some time. TOM: Check out some of these all in ones that everybody buys these days because then you need the scanner, the printer, the fax and everything. AJ: That could be scary. CHUCK: I’ve got one more question and then we are going to get to the picks even though we are getting dangerously close to our hour; and that question is what do you think it means for Flash that Adobe donated Flex to the Apache foundation? JAMISON: Where projects go to die. TOM: Yeah the Flex community was not happy about that. They are like, “All right, time to learn something new.” [Laughs] CHUCK: Okay. That’s one thing that I really don’t understand and granted I made a lot of friends at the Apache foundation over the last year. But why don’t they see it as an opportunity to really kind of take the reins on Flex and make it into whatever it is that they want? TOM: Well, because sadly the best people for that don’t have time. [Laughs] CHUCK: Fair enough. So they are not happy about it. They are trying to find another technology, are they moving to JavaScript and HTML or they just moving to like iOS or something? TOM: Oh, Adobe is all about going to HTML5. You know, they’ve got this Adobe Edge coming out, which is you know, it’s an animation tool. In some ways reminds me of Flash 3, but it’s all about creating animation for HTML5 using JavaScript. Now, they haven’t killed Flash, I’m not sure what will happen to Flash. They did Stage3D. I think ultimately it’s going to come down to dollars as to whether or not continued support happens there. If too many people run away from Flash, then you know, to will go to the way of Director and Shockwave. If not, then you know, we’ll see them continue to make some changes, but I think at a much slower rate because HTML5 and JavaScript are definitely the future there. I don’t think Flash is going to suddenly vanish, particularly on the game industry. I don’t suddenly Zynga changing all their games into HTML5 games. I mean, it may happen eventually, but we are talking about a pretty slow transition just like anything on the web these days. CHUCK: All right. Well, that’s about all the time that we have. So let’s go ahead and jump in to the picks. Did we warn you about picks, Tom? TOM: I know nothing about picks. CHUCK: Okay.so basically what we do is we just pick stuff that we like. It can, but doesn’t have to be programing related so, I mean we’ve picked movies, music, books, we have picked programming stuff, so if there are some things that you wanna share, then you can definitely do that. And with that, let’s just go ahead and let AJ do his picks first. AJ: All right. So have we talked about the Hunger Games at all? CHUCK: I don’t think so. The movie or the book? AJ: Anything, I don’t know. I went and saw the movie a while back. I really liked it. It was good. I was kind of expecting, I was hoping it would be good, but I had that kind of half-heartedness about it that maybe it just kind of be a flaw, but really enjoyed it. And people that have read the books also enjoyed it and felt that they followed it well. So… CHUCK: Have you read the books? AJ: No haven’t. Not as avid of a reader as I used to be. CHUCK: My opinion, the movie was better. AJ: Really? Wow. CHUCK: Sorry I interrupted you. Anything else? AJ: no, that’s all I got. CHUCK: Okay. Jamison? JAMISON: I have a million picks today. First one is a game called Thunderstone. It’s a deck building card game. It’s kind of like Dominion if you guys are familiar with them. Basically you buy cards to fill up your deck, you go in the dungeon and fight monsters and stuff. It’s a super nerdy game, but it’s really fun. My wife and I played it on Sunday and we enjoyed it a lot. The first time it time it takes a while to learn all the rules and stuff but after that it’s pretty quick. It’s probably around half an hour the next time you play. So that was great fun. You can play with two or four people out of the box, which is good because we don’t have as many nerdy board game friends as we would like. So sometimes we have to play by ourselves. The next one is a tutorial, not really tutorial. It’s a guide called How Browsers Work from HTML5Rocks. And it’s pretty awesome; sit goes through the rendering, like the rendering workflow — I don’t know how to describe that kind of how browsers parse the DOM and render stuff, the networking stuff that happens underneath. So it’s just a really good overview of the internals of a web browser, which is important if you are doing stuff for the browser; it’s really good to know how the underlying layers work. And then my last pick, I find myself having to know Calculus and it’s been like 3 years since I last had to know Calculus and there’s this really great book that was written in 1912 called Calculus Made Easy. It’s so good. Oh my gosh. It’s not a math book, it like a book explaining math. So the guy writes it to a really general audience and he like makes fun of mathematicians throughout the whole book. Like the intro talks about how mathematicians are fools and what one fool can do, another fool can do and stuff. It’s just really like, old timey, but really informative at the same time. So if you need to learn Calculus for any reason, this is a really good book for it. Those are my picks. CHUCK: Nice. All right. I’ll go ahead and jump in go next. So one pick that I’m going to pick is I just got Shock Mouth for my microphone. So let’s see if you can hear this. AJ: No CHUCK: Yeah before I would tap it will be like… and so anyway, I ordered a Shock Mouth for my Heil PR40 and anyway, they are really nice podcasting equipment if you are doing any kind of serious podcasting, you should probably have one. And it just it makes it because I’m always bumping the boomer on my microphone and so if I do that now you can’t hear it. So I’ll go ahead and put that. I’ll link to that in the show notes. One other pick that I wanna put out there that is just something that I tell a lot of people to do when they are trying to set up a website, and I know there are a lot of people who built their own websites that are kind of going to kind of boo this, but if you need a really quick website you wanna get it up fast and make it work, then what I can recommend the most people is that they go to a company called BlueHost, and I’ll put a link in the show notes as well. And what you do there is they have a cpanel that allows you to set up WordPress and you can get a website up pretty fast with WordPress and make things work. Now if you need something a little more customized, you can come talk to me so that I can build that out for you in Ruby and Rails. But in a lot of cases, if you are just trying to put information up, about your business or you put up a blog or something, WordPress is great. Anyway, Tom what are your picks? TOM: Okay. I think first of all I being a game developer I have to mention a game first. DC Online, it has gone free or it has a free to play option. You know I’ve played other superhero MMORPGs like Champions online which was a real let down even though I played years ago the original table top paper game. But Dc Online has a free to play version that will give you hours and hours of fun and I just started playing it a couple of weeks ago and have thoroughly enjoyed it. Make sure your first character can fly. The cities are… flying around the cities are just fun even if you are not doing any of the missions. JAMISON: So like, real life? TOM: Yeah absolutely. [Chuckles] JAMISON: I make sure I could fly. That’s the first thing. TOM: Yeah. CHUCK: Yeah for those of you who don’t know yet Jamison in a cape is way fast. TOM: [Laughs] Let’s see, for books, these has been out for a while and actually, not too long ago, he put out a new one but the Mistborn Trilogy by Brandon Sanderson, if you haven’t read those they are worthwhile. They are kind of a… it’s an interesting world that he portrays there and it’s kind of fun unraveling the mysteries. CHUCK: Terrific books. Terrific. TOM: Yeah I’m a big fan. And I just said he just came out with a fourth one that I think takes place in the same world, but in the future event. CHUCK: You know that he’s from Utah, right? TOM: Yeah he teaches at BYU. CHUCK: Yup. TOM: Anyway, and then if you are interested in getting up to speed on HTML5, JavaScript5, CSS3 all those other fun things, I’m going to plug for Lynda.com L-Y-N-D-A people have probably heard of it before but if you’ve never actually signed up, sign up for a month. It’s like $25 for one month. I keep a yearly membership and I found the best way to quickly get up to date on a variety of technologies. CHUCK: Terrific. All right. We’ll go ahead and wrap this up. Few business items here. One is that I’m going to be doing some online training so if you are interested, keep an eye on out on my Twitter account, @cmaxw. Some of it is going to be related to JavaScript like I’m going to be doing one on building solid JSON APIs. So, another thing is that we are in iTunes, so if you want to get the podcast, that’s a good way to do it. If you are on something else, we do have an RSS feed on link on the website. And I’m going to hear lots of sharing for this; we are finally in Stitcher. So I’ve had… JAMISON: Boo, I don’t know what Stitcher is. CHUCK: I’ve had people begging me to get the podcast into Stitcher. So this, Ruby Rogues and Ruby Freelancers Show are all in Stitcher. Stitcher is a program that you get on your iPhone or Android phone and it downloads your podcast for you. And you know, listen on there, keeps track of your progress and all that stuff. So it’s kind of an alternative to iTunes, but you have to submit your shows separately to them. So they won’t just pick up your shows on their own. So since I hadn’t submitted them, they weren’t in Stitcher. So anyway, I finally went and did that. It was a lot easier than I thought it was going to be. Beyond that, you know, we are trying to line up new shows, good shows, so go to JavaScriptJabber.com leave us a comment and click on the feedback tab and tell us what you wanna hear about so that we can get those people on the show. And with that we’ll wrap up. Thanks again for coming, Tom. TOM: My pleasure. Thanks for having me. Maybe in a while I can come back and talk about building games in HTML5 and JavaScript… JAMISON: [Chuckles] Yeah. TOM: …once I’ve made the transition. CHUCK: Yeah JavaScript games that don’t suck. AJ: If you are wondering about the audio tag, let me know because I can give you some pointers. TOM: [Chuckles] All right I appreciate that. CHUCK: Yeah and anyway, are there other places that people can find you? Twitter or whatever. TOM: Yeah on Twitter @tomdei is my Twitter account. You can easily find me at my website dedge.com. I’m on Facebook too or LinkedIn for that matter. Look me up on there just on Facebook, its tom.beatty and LinkedIn, if you do a search for the Dimensions Edge Inc., you’ll find me there too. CHUCK: All right. Well, thanks again for coming. For those of you listening, we will catch you next week! AJ: Ciao! JAMISON: See ya! TOM: Take care.