Editor's note: Welcome to .NETRocks Conversations, excerpts of conversations from the .NET Rocks! weekly Internet audio talk show. Hosts Richard Campbell and Carl Franklin chat with a wide variety of .NET developer experts. This month's excerpt is from show 654, with Dan Wahlin, who shares his thoughts on current relevant topics in web-client development: HTML5, the H.264 standard, Silverlight, XAML and more.
Carl Franklin: Welcome back to the show. You've been doing a lot of work with Web UI vNext.
Dan Wahlin: We have.
CF: jQuery and HTML5 and all that stuff.
DW: Am I allowed to set the record straight real quick?
DW: So it's Wahlin—think of a "wall lean." Just so you know.
CF: So Dan Wahlin, how do you find this new world of web development? Is it going to be easy? Is it really difficult now? Can you equate it to another time in history perhaps when things were sort of half-done?
DW: I can. In fact, I've been thinking of that same thing. I'm sure you guys did it. Remember the old Netscape 4.0, IE6 days?
Richard Campbell: Yup, yup.
DW: Yeah. Divs versus layers.
DW: It almost feels like we're going back to that.
RC: Are you talking in the HTML5 context?
RC: That literally you think the different browsers are going to go in a different direction?
DW: They already are, yeah. I mean, take the video tag alone. You know, Google just made that announcement. They're not going with the MP4 route. They're going the other route and that right there is going to fragment I think.
RC: It's H.264.
CF: OK. So now, and Google is not supporting H.264? Is that what you're saying, Dan?
DW: They're moving away toward some other format, which I don't remember the extension at this point.
RC: Now we get into this whole idea of differentiation of the browser, like this is an asset that I have things different.
CF: What if IE supports H.264...?
DW: Which it does.
CF: And everybody else, Firefox supports H.264, and everything support H.264 except Chrome. Isn't that not a good place for Google to be?
DW: Yeah. I don't know.
RC: Well, the interesting thing there is, you know, like just think about building a web page. Obviously you're going to test CA. If I've got HTML5, great, I'll use the video chat. And if I don't have HTML5, then I'll probably embed a Flash player or a Silverlight player or something like that, is the way to go. So I just don't see any scenario where Chrome's video thing would be what you'd implement for that. You just go to the fallback player.
DW: Well, I mean, the good part of it is there's a nice fallback layer in the video tag. You can actually put—it's almost like having href, or an anchor tag I should say with multiple href tags.
RC: Oh, OK.
DW: You can actually put different, and if they can't do the top one it will fall back to the second, and then you can even embed, like you're saying, Flash or Silverlight.
RC: Right. Well, my thought here is, I only want to do one, encode them in another video.
RC: And so I know I can get a Flash player and a Silverlight player for H.264. I know the video tag will work for everything except Chrome, so I'm just not going to try and support Google's format.
DW: Yeah. I don't know. I don't know. We'll see what happens. I know there are tons of people in favor of it. They're like, oh, good job, Google, way to move. And then there are a lot of people they're saying why did you do this?
CF: Now as far as the phones... Android: Does Android supports H.264?
DW: Yeah. Mine does.
CF: Safari supports it, the iPhone, iPad, all of that stuff supports the video tag, and in the next world, Firefox.
DW: Well, the video tag, but then you get back into, yeah, Safari does support that. So, you know, again it's the browser implementation, though.
CF: So is there any browser or any phone that doesn't support H.264 in the video tag other than Chrome?
DW: I'm not sure.
RC: You're hinting at this, but I've certainly been reading about the fact there's always little subtleties that actually when we—the same thing that happens with HTML4, we're going to sit down and start building pages and testing on these different browsers, both mobile and tablets and desktops, and then they're not all going to work.
DW: Well, and my take on this is, just for the record, I'm all in favor of the major proposals in HTML5. I like the desktop and the video tag. I think we should—for simple videos, you know, why do you have to have a plug-in? But what you just said is the problem because we're starting to build stuff and some of the standards aren't approved yet. Web Sockets would be an example.
RC: And Microsoft did not even put that into IE.
DW: That's right.
RC: It's a separate download.
DW: Yeah. There's a Labs project, which falls back to actually Silverlight, I believe, to the socket piece. So it's not really HTML. So as you guys know, I do a lot with Silverlight, and my company also does a lot with MVC and specifically jQuery. So it's one of those arguments you get into because people that haven't done maybe both sides, they usually go with what they know. Having had a chance to do both sides, I will say, though, that I think the whole XAML approach is pretty awesome. I mean, yeah, there are some certain things you run into. We were just talking with some of the other speakers here about how, you know, like styles in Silverlight and WPF, they're not based on CSS, and so there's a learning curve there to just do that stuff. But by the same token, data binding, which we have talked about before...
DW: Is awesome.
DW: It's easy, two-way, it works.
CF: You can't really call it data binding. It's more like property binding.
DW: Yeah, yeah. And it's just easy. I mean, I've heard people, oh, there should be this and this and OK, maybe it could be even better. Sure, anything could be better. But I think, me personally, I think it's awesome. It saves me tons of time productivity-wise. So I contrast that with, I also love jQuery. The challenge there is they do have a new—Microsoft actually initially developed it—called data linking, which does gives you the two-way...
CF: ...binding in jQuery.
DW: Exactly. Which is very cool because for me that's my number one. If you're building line-of-business apps, which is mainly what we do, that's what you spend your time doing. Usually it's getting data in and out of all these controls and things.
DW: If you have a read-only app, well, you have a pretty easy life.
RC: Like darn, getting the data in.
DW: Yeah. If we could just get rid of that, we'd be fine. So anyway, what I really like is, we're working on a really heavy kind of HTML5/jQuery app because a lot of people think, oh, I'll just build the whole thing in HTML5. Those are the people that obviously haven't looked into what HTML5 is.
DW: Super engines.
RC: Yeah. Unbelievably good.
CF: This whole Chrome move to not support H.264 seems to be incredibly ballsy to me.
DW: That's some of the comments I've read, and again that's just one thing I read, and it sounds like Richard had seen the same thing.
DW: But the comments at the bottom, same thing, somewhere like awesome move. You know, this stuff is going to be great. And then others were just like, what are you doing?
RC: Well, and yeah, the whole thing here, as much as I'm annoyed with what Google has done there, I know that one of the main points was that H.264 is not a great video codec.
RC: It's a good video codec, there are better, and it realized that it was selected not because of its quality. It was selected because of its IP protection.
DW: Yeah, the patents.
RC: And I think that's one of the things that upset a lot of people, especially in that culture, in that web development culture. Those are the folks who are really annoyed that there is this whole dynamic around IP protection and so forth.
CF: I personally think it's an awesome codec.
RC: Nothing wrong with it.
DW: It works great for me.
CF: It's fast. The latency is great.
DW: I think file size is reasonable for what you get.
RC: But there's always a new one coming on the pike that might be a little bit faster and a little bit smaller and with some other advantage.
DW: When I look at it, it's not like that company has done real bad in certain areas, so they might be on to something. Who knows?
RC: Yeah. Who knows?
CF: Well, you know, as long as it's open and everybody is on the same page, that's really, I think, more important than shaving a millisecond off of...
RC: Yeah. Agreement is more valuable.
RC: You know what? We're a bunch of old guys right there. Once you've built enough software, you have to hang up your righteousness for deliverables.
DW: No, seriously.
DW: It's like, but I don't look that smart, but my customer is happy so I'm OK.
RC: And it's the younger, less-experienced folks that have the time to stand on idealism, and the rest of us are too busy trying to get some...
DW: Yeah, we're trying to ship.
CF: Yeah. Well, you know, if the question "does it work?" can be answered yes, yes, it does.
DW: Yes, it does. It may not be perfect, a little duct tape.
CF: Yeah. But it won't crash, and everybody will be able to support it.
CF: All right, I'm off my high horse now.
DW: Well, let me go back real quick to what you're asking, though, about the productivity.
CF: Sure. Yeah.
DW: So I started to say how I really like Silverlight and the whole XAML-based binding and all that. It's easy to call services. Flipping that because I think your question was just in the web development area what's productive or something like that.
CF: Yeah, and how are you finding it? Easier or difficult to work with?
DW: Yeah. So I've mentioned like if you're moving to the whole HTML5 thing, yeah, there are some tags you can use. SVG is all tag-based. Canvas is not. Canvas is pixels, SVG is vector.
DW: To do charting. But flipping from, you know, I really like the Silverlight-side for the rich Internet line of business stuff. But I had several questions in the talks this week from people saying, well, would you go Silverlight or whatever if I have targeted iPad and Android and this and this. And that's where I go, you know what? You probably better look at pure web technologies.
RC: Well, you don't have a choice.
DW: There are some.
RC: Unless you're going to build specific...
DW: Steve Jobs isn't going to let us.
RC: No. So you have a choice to do it in HTML5 or Objective-C.
DW: Yeah. Which one do you want to do?
RC: I was actually going to ask you a question along the lines of was there much interest in the whole out of browser side of Silverlight.
DW: Yes. Yeah, our customers definitely love the out of browser.
CF: That's the killer feature if you ask me.
DW: It is. It's awesome. Because, you know, if I had to pick what's my favorite framework, yeah, it's probably Silverlight to be really honest just from the productivity standpoint. But it's not appropriate for every situation like we've just talked about.
CF: I don't write Windows Forms apps anymore. I honestly don't unless I need a feature security-wise or access-wise that's not there.
DW: Well, if I did and it required the .NET Framework itself, I'd go WPF because I just really love XAML and I think it is easier to work with.
RC: You're a XAML believer.
DW: I am a XAML believer.
There's much more! You can find the full interview here.
Richard Campbell and Carl Franklin (both Microsoft Regional Directors) are the voices and brains behind .NET Rocks! (www.dotnetrocks.com). They interview experts to bring you insights into .NET technology and the state of software development. They’re more than dry technical interviewers—they have fun!