Brian Kardell: I'm Brian Kardell. I'm developer advocate at Igalia. And I'm helping do this recurring series for posterity. And hopefully, it's just generally interesting about the history and evolution of the web, conversations with people who were there along the way, hopefully, gaining some good information and stories that we'll now have forever. So last time at BlinkOn 13, I talked to Darin Fisher and Ben Goodger, and we reminisced about some very, very early days of the web. And this time, I'm here with two other friends at Google.
Ben Galbraith: I'm Ben. Hey, everybody. I lead the product side of the web platform team. So we talked about Ben Goodger a moment ago. I worked very closely with Ben. And I worked very closely with this other guy, Dion. In fact, he'll give a little bit of our background in a minute. But we've worked together for Dion--I want to say 15 years, is that right?
Dion Almaer: I think even more maybe. Yeah.
Ben Galbraith: Even more, that's probably true. On various aspects of the web. So before we started working together here at Google,we were together at Walmart labs,where we were working on Walmart's digital experiences--their website, their mobile apps. And then before that, we were at Palm working on webOS together. And before that, we were at Mozilla workingon developer tools together. And then before that, we are doing this thing called Ajaxian dot com, which was a media property and conference seriesthat--a blog, I should say, conference series that was covering the AJAX movement. And before that, we had different gigs,but we would travel around the US and give talks together on the same conference circuit. And I'll pass it over to you, Dion.
Dion Almaer: Sure. Thanks. That large media conglomerate that we ran on the sidefor a while, called Ajaxian. Yeah. Just before that, I was actually working at Google for the first time, where I got to work on some things like Google Gears before we had Chrome itself, which was a lot of fun, too. And then a bunch of the migration to HTML5 and all of the fun stuff there that was very involved in in wrangling back then. But yeah, right now I work with Ben and the other Ben--Ben Goodger, on the web ecosystem side,so anything to do with developers, developer tooling,and the like, and also kind of ecosystem pieces like helping WordPress and CMSs or helping e-commerce platforms or frameworks, and really helpingus kind of reach developers where they are.
Brian Kardell: Cool. So I said we had this common history of being involved with the web, but I think actually,we have something else in our background, if I'm not wrong. I think all of us were kind of like into Java. Am I wrong about that?
Ben Galbraith: No, no we were big in the Java ecosystem back in the day. I think, Dion, you were more on the database side right? And I was on the servlet side and also Java Swing. Their rich client technology was something that I spent a lot of time on.
Dion Almaer: Yeah, I got into Java after many years of Perl,of all things. In the original dot com fun, building things like vitamins dot com and all of these fun websites way back. And in Java land, I got particularly deep for a while and Enterprise Java Beans.
Ben Galbraith: Yes.
Dion Almaer: EJB!
Ben Galbraith: Yes.
Brian Kardell: Good, we're going to talk about those.
Dion Almaer: [LAUGHTER]
Ben Galbraith: Everything you're talking about I remember like it was yesterday, because it feels like-- you're totally right. There was this era initially, this sortof great enthusiasm of what the web made possible,which was a GraphQL Canvas that was internet connected. And it was just such a new thing. I first did web development when Iwas 17 working for Acer, doing internal facing apps. And it was porting some of our Windows things to the web and had to roll a bunch of infrastructure and Perl, kind of what Dion alluded to. And it was cool. But you quickly ran into limitations,because it wasn't really a rich platform. And we had GUI toolkits for decades at that point. A lot of us had expectations for what youcould do in a user interface. And there was this pent up demand that was created and that led to things like Flash being used for applications. It led to-- we're going to talk about HotJava in just a moment-- but like things like HotJava and evolutions of Java. And I think Microsoft had their own SilverLight thing for a while, too. Everyone wanted to get a real application platform, eitherover the top of the browser or some other internet distributed version of it. And, Dion, tell me if this was your experience. But I think every week I'd have a meeting with some stakeholder where they just wanted us to do something with the web. And you just have to tell people,the web can't do that, like a rich text editor,or something like that. Like, no, sorry, you can't do that in the browser. And so into this frustration--I'm getting the timing a little off. Because if I recall, HotJava actually came out probably three or four years before the scenario I'm describing, when it really came out in the moment you're talking about,Brian, when 'Entertainment Tonight' and people like that would cover it. It was really crazy. But because the web was the thing when HotJava first came out and you had this animation,the twisting heads moving around, you remember that? That was like the thing. Because we had no facility for animation at all in the browser. Everybody was like, wow. This is the future. Never really took off from there. You know, Java was just the Yahoo Chat UI,the most mainstream version of an applet probably ever. It never really reached its potential for animations. I don't even think anyone implemented double buffering,as far as I can tell, for that period of time. And it looked like it might be popular. And there was incompatibility issues and stuff like that. But, Brian, there was just this really pent up demand for the web to be able to do real user interfaces along this era.
Brian Kardell: Definitely.
Dion Almaer: Now I'm thinking of all of these names are coming back, like Marimba.
Ben Galbraith: Plugin era, that's right.
Dion Almaer: The plugin era, exactly,just this plethora of evolution in a different way for people to explore. And yeah, I remember writing a bunch of applets. And we laugh at some of the slow loading screens that we see with single page apps today, like,go back to the applets. [LAUGHTER] Just wait a second. Booting up the VM, we're getting there.
Brian Kardell: On a dial-up, too.
Dion Almaer: Right.
Brian Kardell: Like on maybe Pentium 75 computer if you were lucky. Yeah, it's very difficult. But what I think is interesting about this is the thing that you're hitting on, Ben, which is this idea of HotJava being really popular and that everybody was clamoring for it. It wasn't even really new. This idea of a VM, which the browser itself could even be an application hosted by the VM. And inside the documents, you could have more applications and stuff. Pei Wei actually demonstrated this exact same thing with the Viola browser, which wasone of the very first browsers. And then Flash would repeat it. And I think it was like right there on the edge. It was like the adjacent possible that everybody thought would be the thing. And so we started the W3C. And very quickly we got HTML-3, HTML-4. We got CSS. And we got the DOM. All those things were great. And we also got XML. And I remember XML at the time, it seemed almost as popular as Java. It was the thing, right? It was going to do everything. It was going to make the world so great.
Ben Galbraith: It did do everything for a period.
Brian Kardell: And what's interesting is that at this time they said, you know, HTML is done because that web it just wasn't very good. And we can do better. We can have this rich internet application web. And we can have data documents that are with XML. And we can do transforms to XML. And we can query XML. And it seemed like there was just like no end of the XML things that we could or would be able to do. So I don't know about you, but I was on board that train.
Dion Almaer: Yeah, don't you feel like there was this time people under valued the fact that a lot of people could easily on board on the web, and just be off buildings some websites, and kind of grow from there? And it was kind of like, OK, wait,the real engineers are coming now. We've got all of the solutions. We've got the schema for the entire world all worked out. And then we'll be done. We'll have everything. And it was just a very pure view of what better was and missed all of the other side effects.
Brian Kardell: In my talks and on my blog,I talk about how at this time--when I heard Tim Berners-Lee was going to head up this effort, the guy who created the web. And standards, I didn't know anything about standards. I was-- I think Ben said, he was 17 . I think I was 20 or something like that. Standards just they sounded really important, you know? And I just imagine based on what I read that, sure,that makes a lot of sense. Like you just get the sort of Manhattan Project, all the greatest minds in a room,and they solve the problem. And then we'll be done. And they just tell us how to do it. And it will be great. All the problems will be solved. I sort of imagined that's how it would work. And I kind of think that maybe they imagined that too, really.
Ben Galbraith: It's funny how both of these ecosystems we're talking about, the web ecosystem and Java,both have these moments. Because the golden era of Java, which I still miss, was the one where we all just listened to Sun. Sun had a plan. And they'd tell us how to build applications. And we go to JavaOne every year and listen to the prophets on the mountain. And you mentioned EJB, Dion . For me, I think that was the thing thatended that era, where we all sort of said,I guess the emperor doesn't have any clothes.
Brian Kardell: Yes.
Ben Galbraith: The web to a degree went through that with XML. Like, right there with you, Brian. I think we all were just struggling to keep up. Everything was unfolding so quickly. And the architects of the internet, the architects of the web-- because I was young,I didn't know the difference between all these people--were saying this is the future. Then it's clearly the future. And then when it blew up spectacularly, then it also sort of created the same dynamic, where instead of the web being driven by the central force--you remember specs, too. We'd all like consume the latest spec, and that was it. And we get mad at the browsers if they didn't implement the spec. And it was all about the spec. And then kind of--I know, chronologically, there's probably several years here. But kind of in my mind, around the same time,HTML shifted to the living spec. The XML stuff that we'd all been told was the future kind of--I mean, I don't even-- there wasn't an official moment, it just decayed. And then that's when AJAX came into the fore, which is reallykind of flipping it on its head, when we all said,it's not about the spec, it's about what the browsers can do. And one of the things that changed here, too, was instead of looking at the specthat the browser asserted to support,you do tests to see what the browser could actually support. And it just sort of changed the whole nature of the beast.
Dion Almaer: It's funny how just pragmatism keeps kicking in,right? Like with EJB, there were two notions of data-related objects--bean-managed persistence and container-managed. And you're like, oh, there's all these different use cases. In reality, Oracle wanted one. IBM wanted the other. And so instead, we made the standard have both. And then I was on the JDO working group in the JCP. And it was just like, why are we even doing relational databases anymore? We're all about object orientation. That should be the way. And it was just like, theoretically,this will be the future. And then Hibernate comes along, and they're like, no, no, no. Databases are actually pretty good. How about we just give you a way to nicely access them? And that's actually what everyone wanted. Because guess what? There's a whole slew of people that run reports and all kinds of stuff where they need SQL. So it's just funny how the pragmatism kind of comes in and often ends up being the thing that wins the day.
Ben Galbraith: I remember that moment when I was in the thickof grappling with all of this persistence-layer complexity in Java and dot NET. And they did dot NET 2 and made their play. Like, their model was result sets. It was just so--I wanted to cry. It was awesome to get back to the simplicity of the relational model.
Brian Kardell: Yeah. So actually, we're kind of into this thing already. But I wanted to say, around 1998 or 1999, I think,is when W3C said, the web is done. Like, not the web, but HTML is done. And we're going to go do this XML app thing. But, you know, if you weren't there,you missed this gap of about a decade where--it was about a decade from then when we finallygot a real HTML5 specification. So all this stuff happened sort of from 1998 to 2004. All this great stuff was happening, even though nothing was happening in standards. And then from 2004 to, say, 2008, it just kept going. And 2004 is interesting, because what was happening in developer land is people were sharing things. Like, I know Ajaxian wasn't created in 2004 yet, right? I think it was 2005. But lots of things like Ajaxian were springing up. Like, people were blogging and sharing and doing sort of the opposite of big design, right? Like, they were publishing a thing,and people were like, oh, that sounds good. And they would try it, and they would say,that could be better. Let's iterate and trade ideas, and--I don't know. Does anybody-- I sort of feel like this is a really interesting thing, that we had all these sort of best, brightest minds in a room with all the companies behind them,and they were like, this web isn't good at apps. Like, it's really gross. We don't want to do that. But developers kept using the tools that we have. And I feel like there was this golden age in that decade, even though standards did nothing.
Dion Almaer: Right. Well, even like, talking about AJAX and XML HTTP requests--it's just so inter-- where did that come from?It comes from Microsoft. Oh, was it just from the browser team?No, no, no. It's from Exchange wanting to be able to do things,and so someone builds an ActiveX control. And fast-forward-- that's where the evolution comes in,from this more of the plugin-type model that we can then take in and bring elsewhere. Now if you start with the web, you'vegot this object that's native to the webthat I can just use or navigate. That's not how it was created. You were used to all of the early times,like testing for the different names of the ActiveX control to make sure you get the right one. It came from that view of just like, what can this thing even do?
Ben Galbraith: I think that's totally--it was the closest thing to a knowledge gold rush that I think I've ever seen in my career, because we'd all studied the specs. We knew what the sort of web gods had told us was possible on the platform. And then to discover that there was this thing just sitting in the browser that-- like you said, had been there. And I think by the time AJAX really hit, Mozilla had already implemented it,so that they could deal with compatibility issues that had cropped up because people had written web apps thatonly worked with IE. And so they had that just sitting there. It caused everyone to sort of feel like, well, what else is possible? Because this is a huge thing to have missed. What else have we missed? And it was just so exciting. Then we had this unholy bridge over to Flash, and people would try to figure out what you could build using both together. And I mean, as you all know, every day it seemed like we were discovering something new. And the whole community was just watching, kind of in awe. Whether you were a designer and youwere realizing that the shackles that had bound you for so longwere now breaking off, or you were a developer,or you were a business stakeholder,everyone was just sort of watching in awe at the fact that the platform could do all these things that we never really realized. And I think the Google Maps DOM hack, if you evenwant to call it a hack, landed at almost the same time--which didn't use, originally, XHR, at least for its core UI. And that was also another of these moments that just caused us to go like, wow. We didn't know the platform could do all this.
Dion Almaer: I remember that time of, like, the push to kind of rebrand AJAX from-- it's not literally just about using this technology. Obviously, most of it wasn't even XML. From the get-go, it was just about delivering these higher-quality experiences. And a lot of things that people would say are, like, the birth of great AJAX stuff, and things like Google Maps that didn't even use some of this stuff at the beginning. And there's just so many of those. And Just over the weekend, seeing peoplelike Scott Schiller created SoundManager to be a bridgeover to that world. You remember 'siffer'? A performance over from Flash. Everyone's just grasping out. They wanted to do these things. And at least they had a way to either find things in the browser or through plugins and the like, they had a way of wrapping it all together and make it available. We could then come along as browsers and platform folksand underground that and bake it in.
Brian Kardell: Yeah, even these really,really basic ideas today, we didn't have,like querySelector(). Originally, I think you could get an element by ID. And I think there were the live collections from DOM L0. There were DOM collections where youcould refer to basically the tag names and IDs. But I think it was maybe Dean Edwards thatdid the first thing I saw that you could get themby the class, too. That was really interesting. And then somebody else said, oh, but what if you could do this other thing. And eventually, through lots of libraries and ideas,we very rapidly got from nothing in this, like, really incompatible, painful-to-use--do you access the XMLHttpRequest() object,or is it an ActiveX thing that you have to go through? Which event model do you use, because they're not compatible either? I mean, it was like--Do you remember how painfully uneven the web was?We got very quickly from that to jQuery. And you didn't have to worry about any of that stuff. And the API for it was just really nice and convenient. It had a plugin model, which made it really easy for you to add your own ideas to. And I think that thing that you were talking about, about people just being passionate about it and just having fun. And there not being huge egos where people can take your idea and do better. And then everybody gains from that.
Dion Almaer: It was funny how I always pictured the Dojo folks, some of which we still work closely with today,must just have been sitting back so often, because they could just be like we did that one already in dojo dot foo. They had a module for everything. But just the ergonomics of literally just instead of dojo dot byId, we've been able to do the dollar signand double dollar sign, and prototype, and all of those things. What's the minimal surface area that will give me the biggest bang for the buck? And there's the browser compatibility side that you kind of needed a shim just to deal with that, like you were saying. A nd then there's just the styles that people wanted. Like, the prototype folks, very tied to Ruby type way of thinking, that melded really nicely, jQuery functional way of thinking. It was really fun for people to just explore different ways of thinking and fashion to build on top of things too.
Brian Kardell: There was a W3C workshop on this problem of web apps because we still had not realized a replacement. Things were getting very complicated. And yet, the web kept flourishing. The web was doing more and more, better and better. And people were building very rich apps, increasingly with the web we have. This thing was, what should we do about that? Should we maybe admit that you can make at least medium sized apps? Maybe not. Maybe not real apps, whatever you want to call it. Maybe you still do that. But for the web we have, shouldn't we make an HTML5? The W3C said no. And that's how we wind up with the WHAT Working Group,or WHATWG.
Dion Almaer: I mean, It is interesting to look back and see--it will be very rational to say, we've got different protocol building blocks, HTTP, all of these different pieces,so why does HTML-- it can just be one of them over here. It doesn't need to be so tied. It doesn't have to be the one GUI toolkit to rule them. So why don't we have others that can come inand that could render very differently on topof a lot of the same stack? You could totally see someone making that case and thinking that that's going to be the natural future. And then you had a lot of the people back then talking about just data, data, data, machines on the web,and that whole side of things. That's why XML makes a lot of sense. It should have more rigor for it for all of the machine stuff that we're going to do. And then there's the whole view of separating all of the concerns. And so we are going to have very different user agent things going on. And so we want to keep it very-- there's a whole semantic web. Well, all of that stuff going on. And it's interesting to think through that. Why really didn't that take off? Why was it this evolution on top of the crappy platform thatended up winning out?
Ben Galbraith: It is fascinating the inertia that happens,or the momentum, however you think about it. But I think I would have predicted SVG to havedone better than it did. We have awesome SVG implementations in the browsers. SVG, if you think about it logically,seems like a much better platform for creating interfaces, especiallywith the diversity of screen sizesand everything that are on the market . But you don't really touch it. And it almost becomes a self-fulfilling prophecy. Because if you talk to some of the team,why shouldn't developers use SVG? People would say, well, it's just not as tested,it's just not as compatible, it's kind of buggy. Because people don't use it. It doesn't have that breakaway. But it is interesting, Dion, a parallel universe where browser plug-ins were forced to create declarative artifacts that were rendered as though they were a different type protocol, would that have changed anything?It's fascinating to think about. The conversation we're having about specs,one thing that I've always wondered: Is the decision to make HTML5 be an endless spec,a versionless spec great? Because up until that moment, it felt like we were getting such momentum with the notion of HTML5, of people reconverging on a spec,and of the industry feeling like this is it. And then it almost seemed like that all that energy dissipated in a moment, when I guess we, Dion, Google, at the time,decided not to do that. I look at that and I feel like--and there were good reasons to do it--but it feels like it was a shift change, where all of a sudden now, people didn't have a version to talk about. There wasn't a moment when some new version would come out. Before then, people talked about HTML5, Brian, like when is that going to come out? Because we have 4, when 5's going to come out? And what's 6 going to be? Oh, my gosh, what is it going to enable? And all that just vanished. And I wonder if we missed that or missed something like that as a community.
Dion Almaer: Yeah, and just stabilizing in general. A ll of our browsers are shipping every four, six weeks. It's just a constant dynamic system that's out there that in many ways is so great now. The developers can pin to evergreen browsers,so to speak. But on the flip side, you don't know what's going to happen tomorrow when a new browser, a new OS gets updated that affects your application. And so you do feel like you're only-- constantly swimming in the stream at the same time. Would it be nice to have more anchor points? HTML6, should we bring it back? Maybe we can add a few more tags this time for modern application capability.
Ben Galbraith: Logo's open source, we can just add the vector points. [MUSIC PLAYING]