JavaScript web applications
Technologies such as JavaScript and Flash are changing the way we interact with content online. In this week's PodSession Om and I discuss the latest trends in the world of rich interactions.
Are these technologies interaction too complicated for the average person to grasp? When should you add such technologies to your web page or corporate intranet? Why are there not more implementations and examples online? Is there a talent shortage?
This week's podsession is 25 minutes long, a 11.7 MB download.
A full transcript is available below.
Transcript
Om Malik
Hi, I'm Om Malik.
Niall Kennedy
And I'm Niall Kennedy.
Om
And you're listening to Om and Niall PodSessions. Hey Niall!
Niall
Hey, Om!
Om
How are you doing?
Niall
I'm doing well, it's good to be back.
Om
Yeah, it's been a while. We took a little longer this week.
Niall
We're doing eight days instead of seven days, but, yeah.
Om
Life is happening, so can't really complain too much about it.
Niall
Definitely.
Om
You know I have been down to the peninsula so many times this last one week, not only am I tired, it's cut into my blogging time and it's cut into my writing time. But I've been picking up on a new kind of sensation down in the peninsula these days. You were at the Mashup Camp, how do you feel?
Niall
I was at Mashup camp for two days and it felt very corporate. I expected something different from Mashup Camp, I expected Mashup Camp to have an introduction, people getting to know the APIs followed by developers actually coding against the APIs.
The guys that won prizes already had stuff that was out there for a couple of years or at least a year, so they'd been around, people had already used it. Some of them had gotten jobs because of what they had developed using those APIs. So it was just - maybe my expectations were wrong going in but I expected it to be a lot more hands-on developer coding.
Om
You know that's one of the things which I've observed is that you actually have a scarcity of good talent for the so-called Web 2.0 and it's out of sync with the amount of money which is going into these companies, because if you look around there are very few clever AJAX developers. It's a special kind of skill set which people don't realize is very hard to find.
Niall
Well, the interesting thing about the AJAX world, similar to CSS and web design, is you have to know how each browser interacts with your applications. So you have to know, from a similar standpoint of how CSS would render something on the page, you have to know how AJAX or JavaScript in general would change the interaction on that page. So it has added a new layer to how you approach the web app, so you would have HTML which you might have reviewed for search engine optimization -- how did you structure the page and what are the different weightings you are giving to different text on the page for example. CSS then styles the page and now you have the interaction model which is JavaScript and sometimes using AJAX to shuttle back and forth XML.
Om
All right, one of those things which makes you develop a new found respect for applications like Zimbra or Songbird, they do so much of their stuff in all these new technologies and the variables on that is just amazing. Hats off to the guys who do that! I mean, that's my take on this is that even though I still think the bigger issue of human resources or a lack of human resources is going to be a problem, because people like Yahoo! and Google are going to suck up all the talent that there is.
Niall
Could be possible, maybe they're trying to make up for that by putting out their special UI widgets and such, but some of the talent in the JavaScript space, the guys I'm thinking of, aren't with Yahoo! and they aren't with any of the big companies. They're indie guys, they're working on open source projects, open source frameworks that are out there, so they haven't really caught on yet. Maybe even though people are looking for these type of guys they're still doing their own thing, writing their own ticket, and doing it well.
Om
Who are those guys?
Niall
I was thinking of Alex Russell, who you met at dinner the other night. He's doing the Dojo toolkit over at Jot, so Jot's his full-time job. Part of that he contributes back to the open source community.
Brad Newburg, who is a consultant and was working for Rojo and the Internet Archive on some of their projects. When you flip a page in the virtual book on the Internet Archive, that's JavaScript that he helped develop.
While they're doing that they're able to tinker and really profile what's happening in individual browsers such as Safari, Firefox, Internet Explorer, and all those different versions, and know how the apps are going to interact so you can get a good idea of the features to plan for and how your app is going to behave.
Om
But it still doesn't take away from the bigger issue, right? There is a lack of talent and all these companies are seriously getting funded. I mean not just little money, it's getting a little bit out of whack with the reality of building one of these little applications, and even rolling it out. I think that is what is the most amazing part.
Niall
Yeah, they're getting funding to build these new apps that might not get built within a big company. That's another angle: Is it possible for a big company like Yahoo! or Google to take the risks that these small companies are taking? For example, there's Google Video and there's Brightcove, two different Flash apps. I think Brightcove is doing some very cool stuff as a startup that Google is just starting to get into as a huge company. Yahoo! is doing some things in the JavaScript space, the creator of JSON (Douglas Crockford) works there for example, they have Rasmus who created PHP and so now they have some serialized PHP things today.
There's still a lot of talent being discovered at startups. Meebo, for example, has Elaine Wherry working the JavaScript magic there. People are learning this technology and I think we'll probably see a change in book sales. People will be learning how to do JavaScript.
With the new version of Mozilla Firefox, there is now a new version of JavaScript that has been introduced. Now there is a new learning curve as the other browsers, if they catch up to what's called E4X, if other people catch up to the E4X wave there are now new things you can do with JavaScript. Brendan Eich, he's who's working on that, he's at Mozilla, and he's Mr. JavaScript, so Firefox will have all of the nice JavaScript features before anyone else.
Om
Right, so, what is this new JavaScript? What does it do compared to the old ones? I have absolutely zero hacker chops, you should talk about that.
Niall
I haven't looked into it too deeply, so what I've seen just from some docs, there are different ways to handle what are called classes, wrappers around things. Different ways to handle how data is stored, how you parse through something a lot quicker. Really I'm just pulling this out of the air, I really haven't dug into it too much but for people that I talked to who know a lot more about this than I do say it's a big deal.
Om
Since you talked to those people and I talked to you, must be a big deal.
Niall
OK.
Om
The other issue is the issue of why are we bothering with AJAX now that there is the option of Flash, which is more developer tools and more easier for developing interactive browser-based applications. We looked at Goowy, for example, it's a pretty nifty little application and folks at Laszlo are doing some interesting stuff. So why do we have to go learn all these complicated things which generically known as AJAX or Web 2.0?
Niall
So even in the Flash world there's a lot of versioning going on.I spoke to the lead Flash evangelist from Macromedia, Adobe I have to start saying, on Monday and we were talking about the adoption of Flash, so a lot of the Flash tools you'll see out there have a minimum version of 6 and we're now up to 8.5 and there are new things you can do with each version along the way. The newest version has a better, higher quality video codec. If everyone upgraded to the latest version of Flash, you'd be able to have a lot better video similar to how you have better video in the latest version of Quicktime than you would before with the H.264 does that. In this case, the OnVideo 6 versus the OnVideo 7 codec. There's still the versioning issue in Flash that people have to get caught up to be able to do all the latest, coolest things. AJAX is open, people are able to play with it really easily, the IDEs (the development interfaces) are out there for people to play with. Flash now just created open compilers so now you can custom compile what you'd use to construct your app. So after you write the code you can run it through that constructor and write the app. The applications or development environments for Flash still cost money: there's not an Eclipse equivalent.
Just last month for AJAX, JavaScript, it was announced that a bunch of companies including Google, IBM, Dojo Toolkit, and a few others, were getting together for the Open Ajax Initiative to include JavaScript and AJAX development inside of the Eclipse, which is a very popular development tool. I think that will give an edge to JavaScript for the near future.
Om
How does it impact people like me, for example? I have a popular blog, so good, boo hoo. What does it really do for me? How does it impact. How do I optimize my user experience using all these technologies.
Niall
Well, Flash you can look at if you're just playing video on the page, there's a certain adoption rate that's pretty high for Flash video, that's why Google Video uses it, for example. It's about 90% or so, whereas Quicktime is at about 70%. It's a pretty good experience to show that and be able to stream the video and have a good multimedia experience there. You can also have multimedia on the input side. If you have a webcam hooked up and you can get input from that webcam or get input from a microphone, that's what Odeo is doing to create these podcasting apps. You can, in the AJAX world, look at what on the screen to do you want to create a richer experience around. It could be the comment field and giving a rich WYSIWYG editor, what you see is what you get, so you can click on something similar to having.
Om
I get that, I get that. Now I get that, how will I do it? I'm not a programmer so I basically have to pay somebody to get this thing done?
Niall
I think it's the same as other tools you've seen. You'll have to pay someone to do it or it'll be bundled into tools you already use. If you go out and buy Zimbra, you go out and buy Joyent, you're already using the technology that's there. Same thing with Outlook Web Access: these are AJAX tools that you're buying and getting into. If you want to customize any of those tools, you're going to have to pay someone to customize Outlook Web Access for you, for example.
Om
Now I've figured out how O'Reilly actually makes money. All right, moving right along, but you know I still I'm just trying to grasp this whole thing and just trying to see how do I make the experience for my readers better. What are the cool things I can do easily? Not have to pay somebody like hundreds of thousands of dollars, that's all. It's like a fear of big companies, but this is a technology which has bubbled from below and it is a technology which is not taking into account people with some Web 2.0 requirements, which is the blog universe.
Niall
So I don't see it as a barrier to entry. It is in the same way as if you wanted to go in and modify WordPress, or you wanted to add a plugin to WordPress, you'd have the same problem where you'd have to go find someone who knows PHP or knows the WordPress system, so any time you want to tweak a system you're going to have the same issues. With AJAX, JavaScript, or Flash, you're going to look for what's the experience you want to deliver and look for someone to help you deliver that experience. There are still going to be libraries available, you might be able to find a plugin for WordPress, you might find a JavaScript plugin that allows you to do this.
script.aculo.us is pretty popular as one of the scripts that's used in some of the WordPress themes out there. The Prototype Framework is another, there are a bunch of different libraries and frameworks available. MooFX is a JavaScript library that's pretty lightweight. There are all these different libraries that are out there that have, I mentioned Dojo, I have to mention it again because that's Alex's project. There are all these different libraries that are out there that you can tie into and they'll give you instructions on how to change something in your template code and just do this and it will help you get what you want. They have examples about how to do it, it's the same learning that we've experienced with HTML over the years or any new technology that we're trying to grapple with. You can teach yourself a little bit, but really if you want the full deal you'll have to ask someone.
Om
Right. Man, I want to do a full AJAX makeover of GigaOm.
Niall
What would you do?
Om
I want some things, basic things for example, I want AJAX commenting. Why do I have to resubmit everything, because comments and now the volume of comments is increased so much that I want to optimize that experience. I want to be able to do little drop-downs on stock codes and company highlights and kind of do, figure out ways to do more interesting mashups, for example. I want, for example, to take a database of all the VOIP service providers and put them on a Google Map, I don't know. In order to do those things I really need to spend hours and hours and hours of just reading, not even doing those things. This is very difficult for creators in this Web 2.0 space.
We are the creators, right? The reason blogging took off is very simple: you go in, you write your stuff, and boom it's done. Right, so if these things are actually going to have an impact, that's what I always look for. How do I make, I want to do simple things and draw, have a little slider on screen for user for my blog users to just log into the system to leave comments. Those kind of things.
Niall
It's possible they may be built into the core system, some of these features are built in to the Ruby system Typo for blogging, and that comes from the community really liking it, it's a very leading edge community that has Ruby on Rails installed with Typo that has their own custom web server there.
Om
I don't get it, I seriously don't get it, this desire to reinvent the wheel all the time.
Niall
Sure, but I think the things that you brought up are exactly what the AJAX and JavaScript is meant to be or is really excelling at, not refreshing the page. In comments, why would you want to see a new page saying hey, thanks for the comment, here is what you just submitted. Really what you want to is the effect happen right away, your comment has been added to the stream of comments here, and you want to see that placement right away, give that immediate feedback. Similarly, what I think was a revitalization of AJAX, Google Maps just dragging around, so now that's a given feature. Any mapping app that comes out it's "oh, can I drag it?" That's where we started to fall in love with AJAX all over again.
Om
Right, right, right. I mean, those are the things that are exciting to me as somebody who creates a pretty high volume of content and I want to be able to use these AJAX apps to bring out ten stories on Google WiFi I've written in the past five, six, seven, ten months, or whatever.
Niall
Right.
Om
Or bring out build a tag map which is easy to build, these things are very hard. Is it because we're at a very early stage or are they just difficult?
Niall
I don't think it's a level of difficulty, I think it's good that you have, and other people have, the excitement about the technologies to be willing to either pay someone to do it or learn by example, I learn by example, so your can learn by example and try to implement on your own. There are different tricks you can do to add this functionality to your blog. As I said before, I think it is a question of are you going to build it yourself? It's really nothing new, if you wanted to have something new on your blog, whether it's going to be AJAX or whether it's going to be a WordPress plugin, there is going to be a learning curve there a little bit. It's good to pick out the features, figure out what you would like to do. Some of that may be integrated back into the core system like we've seen with the new editing interface in WordPress which you're familiar with, that's something that's new and has added some of these technologies in and there are a lot of different JavaScript technologies that are in your latest version of WordPress, and there are some new technologies that are in the latest version of Movable Type as well
The blogging systems are looking at how do we reexamine our user interface and in that they're making some assumptions about what is the base browser, the base editing experience of our users. If, for example, everyone in the world used the latest version of Firefox it would be an easier development experience. You'd cut features and make it easy. There's still the need to develop for the multiple browser experience and how do you make sure that if your audience involves people using Internet Explorer 5 or Windows 98, how do you interact with them? As the alpha geeks who are always just on the bleeding edge and downloading the latest nightly build of any different browser, we tend to overlook that sometimes, but there's a good community of people out there that are running Movable Type on their Windows box and using Internet Explorer 5, for whatever reason.
Om
Well, since I'm not an alpha geek I'll probably qualify for those.
Niall
You use Firefox, though.
Om
I use Camino, my friend.
Niall
You use Gecko, yeah.
Om
Yeah. I use Camino browser.
Niall
OK.
Om
Camino rocks.
Niall
All right.
Om
Right, on a Mac, let's just leave it to that.
Niall
I compile my own.
Om
You know, big difference. Alpha geek, non geek. It's one of those things. I can't keep up with you. I would love to, somebody should do a more modest plain English language explainer for all these technologies. Set up a community website where idiots like me can go and learn a little bit more in a simpler manner. That's when the excitement kicks in. I am interested, I want to do this on my property, but it is so hard to learn. All these languages and everything else, so alpha geeks, no problem. I think that's what I mean, if you're going to do the web better, let the democratic web be there. Let the little guys be able to participate. In this, the little guys are the people who have less technical skills compared to you.
Niall
Sure, and that's what I try and do when I publish my Movable Type templates, for example. When a new technology comes out I try to put out a template so that the people who don't know how to use the technology just can copy and paste some text into their Movable Type install and create something new. You're welcome to rip off my stuff when I include, I'll be doing some new JavaScript things on my blog so you're welcome to rip those off.
Om
When are you going to move to WordPress?
Niall
Not in the near future.
Om
There we go.
Niall
It doesn't matter, that's the thing about JavaScript.
Om
We're the yin and the yang.
Niall
No, because this is all in the output, this is all in the web page's output, so it really doesn't matter if you're on WordPress or on Movable Type, the generated HTML that is rendered on that page is what matters for JavaScript.
Om
All right. One thing which basically, I wanted to go back to this, is really where does the thing have an impact? All these Web 2.0 technologies, are we beginning to see the impact of this in the enterprise phase. I have often wondered about that because those are fixed environments, right? You have fixed bandwidth, almost 100 MB/s, you have very high availability servers, all those things, so does Web 2.0 actually become the front-end for the back? Does the backend call software on demand or ...
Niall
I think the enterprise application technology is a little more exciting because, as I mentioned, there are all these different considerations you have to make while developing technologies for the general public. What browser are they using? What is the OS? At the enterprise level usually that's stamped out across the enterprise, so if you wanted everyone to use the latest version of Firefox, done, just push it over to the desktops overnight. That's something that's managed in the enterprise, you can make the requirement for your enterprise products. Not that it's a requirement but a lot of people use Outlook, it's just the de-facto standard. Given the Outlook and Exchange setup, if you bolt on something to Outlook like NewsGator, NewsGator has enterprise product, so if you're pushing out feeds, your NewsGator Enterprise Edition and that bolts on to Exchange as well. That's an enterprise product that takes advantage of feed technologies to push that into the existing structure of the enterprise software.
Om
I would have loved to see NewsGator people do a very AJAX browser-based experience, rather than making you download FeedDemon on one side and
Niall
They have NewsGator Online, they just don't talk about it too much. It's an OK experience.
Om
It's not an OK experience, I'm sorry. If you're one of..
Niall
It's not FeedLounge.
Om
Look, it's not FeedLounge and it's not a great experience. I think the real potential of NewsGator is when you really install FeedDemon. That is a great experience. That's one of those products which make me want to use a Windows machine, which is like - whoa. Still, it's an awesome experience and I think they should have gone in that direction, maybe we should email Greg on this.
Niall
Nick's on vacation this week, so I'm still waiting on Beta 3 to get excited about something more. They're doing a great job of it, I really like FeedDemon 2.0, that's an app that I'm enjoying rethinking the space. NewsGator is lucky to have him.
Om
Yeah, and NetNewsWire needs a little makeover, I think it's a little sluggish these days, let's just say that.
Niall
Yeah, it's been a few months, we'll see what Brent's up to. They are working on its integration with NewsGator Online services and we'll see what else he's been doing. It's been universal binary for a while, so that's been finished. Now that he's not worrying about support for the last few months he should be working on all this development code and we should see some cool things.
Om
So talking about universal binary, because we're about to end our podcast, are you in or you're out for the MacBook Pro?
Niall
I'm in, I definitely want to get a MacBook Pro. Apple kind of ruined things for me, maybe in a good way. Right now I'm holding off until next Tuesday to see what they have at the special event. They may just introduce the MacBook Ultimate or something that I really need to have. I don't like to make purchasing decisions while there's a special event coming up and it's only four business days away. I'm going to be good, hold back, see what comes, there may be some new fangled thing that just blows my mind and I'm justifying that by saying there will be more MacBook inventory there in the next four days anyways. They'll be waiting, stacking up, and waiting for me to place that order and come to my house the next day.
Om
I don't know, I'm just waiting for the phone call and they call me, I'm buying it. To hell with what's coming out on the 28th!
Niall
OK. Well, we'll be back on or around the 28th and let you know.
Om
Right, whether Om has a new laptop or not.