Bio Dion Almaer and Ben Galbraith lead the Google Developer's Tool Lab. Both have a long commitment to open source and both have made extensive contributions to the Ajax community. They co-founded Ajaxian.com. Although they have separate careers, they are long time collaborators.
QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community. QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.
Ben: Yes, we have given this a lot of thought, because the term open web means a lot of different things to a lot of different people. For us open web means that applications, web applications are free to run on any platform using any browser that you as a user care to run. And Mozilla as a company is really focused on keeping that definition of open web alive. The sort of night mare scenarios is that in two or three years your bank has decides that it wants to have its experience in a proprietary technology let's just say Silverlight for the sake of argument and you have to run Internet Explorer 9,8 or 7 whatever happens to be, and that is the only way you do what you want to do on the web.
And it is not so theoretical, a few years ago we actually saw with IE 5 where some experiences, some properties required the use of IE5 which implied Windows. So we want to make sure that never happens. So, that's what we mean by open web and we are really focused on making sure that the web technologies like HTML and CSS these standards that comprise the open web are attractive and enticing enough to developers that developers go down that path and they are tempted into these proprietary stacks, that could lead to a closed web situation. So to us that's really what the open web means. We are really sort of excited about expanding that a little bit too. We are really interested in driving more classes of applications to the web, than we have seen previously. Do you want to talk a little bit about that point of expanding the role of applications?
Dion: Sure. We can talk about that and you mentioned Flash and Silverlight, and we think they are great technologies and Ben was talking about how we want the open web to be excited enough to develop as we don't have to win just like as a pity vote for developers, like "Well this thing is pretty bad, but you know". We don't want to be locked in by Microsoft, we wanted to be compelling but for us yes Flash and Silverlight that's not open, that's one vendor that has full control of everything that is going on, and I think what is exciting and what I am really excited about, us being from Mozilla, is because we are in a place where we don't have particular agendas other than keeping things open.
As you kind of go through history a little bit, you see this points where vendors and developers come together and we create something that is compelling for both Visual Basic or something where it makes sense, is productive, but then over time that vendor might get very different agendas, very different thoughts on what they want to be doing as a company, so even when for a particular instance you could be aligned on something, you are not guaranteed anything at that point, so we want to really stay away for that lock in so that we can have this evolving system that is the web, continue to evolve over time. And then do you want to talk back about the expansion idea?
As we have seen this model, applications that are tinkerable we have really started to get excited about having all of our applications, running this web applications, that's the one piece that sort of has taken this over and say "Even though WPF and Cocoa and all this Desktop technologies can produce compelling user interfaces, this tinerability is really powerful". And then as time has gone on we have seen sort of augmentations of web applications, building on top of these and other principles. For example there is a technology called Fluid, on the Mac that fits in this category called single site browsers that lets you take a website and run it as a stand alone application so that the technologies like Fluid, Mozilla has one called Prism, Adobe has one called Air, the idea is that you can point this application at a single URL and it becomes a full fledged application that you can launch from your application directory that you can alt-tab to, it's not just another browser instance.
What is interesting is that you can inject this Greasemonkey scripts into this single side application and modify it in interesting ways, but it is exciting because the single site browser engines let you gain access to proprietary operating system functionality, functionality that is normally not exposed to the browser sandbox. And just a few minutes ago we were preaching the importance of openness and standards and now I am excited about proprietary object models as opposed to individual single side browser pieces.
The idea is that all of a sudden web developers have access to the Desktop and that is a world that we are really excited about because as web developers have always been this kind of cliff and the Iphone is a great example of what I mean by cliff because you can develop an Iphone web application and as you know you can make a web application on IPhone look almost like a native application up until you want to access certain pieces of data functionality, at which point it's not that there is this sort of new extension API you need to learn, you have to learn Cocoa, you have to learn a whole new set of tools, you have to figure out how to ...
Dion: Before we would ask, who would build an email client on the web? That is going to be really slow, this really nice mapping client on the web. Who does ITunes on the web right now? That can be hard but what can we do to make it so that the next Itunes could be on the web and kind of step through and knock down these boundaries. I worked with a team, when I was working at Google and that was one of the big things that they were trying to do, like knock down these little bits of functionality that makes that cliff, so, all of a sudden you could take the same skills that everyone has on the web and they can use them to build these different platforms, that's going to be exciting to see. Who knew that this was going to happen when we started the Java and Ajax stuff, these little DHTML hacks would be good.
Ben: Yes, to all the work we have done on Ajax, we never advocated this expansion of the hacks that has emerged, it has definitely been organic and has been through the community and we are just watching and we are really excited of the direction we have seen. We have kind of extruded a lot out of your question.
2. Some believe that the best thing about the open web is its diversity and polyphony. You have different organizations developing and promoting different technologies that blend together to provide the final product. There are others though who believe that this only leads to a necessary fragmentation of the web, as a platform, a side effect of which is the lack of proper tooling. What is your view on that matter?
Ben: Do you want me to take the first crack of it? Do you want it? This is a debate as large as technology. I mean even in govern democracy you got Stalin kept the trains running on time,, there are tremendous efficiencies to be gained from this despotic hegemony. For example if you look at the .Net environment you got a language dictator for C#, actually I don't know if you have anyone who claims to own VB, but you got a strong centralized leadership with a strong cohesive vision and they tell you how to write your application, if you look at that ecosystem, it's bizarre if you are a Java guy because they don't want third parties to come in and own parts of the road map.
They want Microsoft to pronounce how it shall be and they get enormous efficiencies from that model and you can't really knock it out of hand, it's a good model. At the same time democracy, polyphonies as you called them, these ecosystems of cooperatives are notoriously inefficient. And as old Java hands, the JSP has enormous efficiency problems, there is a book out that a lot of people cite called "The paradox of choice" the talks about all the inefficiencies. For example is a Java project how many times have you set down and you got to spend days to sort how many different tiers you have and then weeks to find out what the different solutions to find how to treat those tiers and then months to do the actual evaluation.
Dion: Whenever we throw out logging frameworks and you pull your hair out.
Ben: We just want to come out of the chute and say "This is a large issue for societies across all categories of life, whether you want freedom or whether you want efficiency and it's difficult to have both". And having said that we are excited to explore the hybridization of those two polars and our view is that we want to work from Mozilla with a lot of other players in the space, so the open source players, commercial vendors, to provide guidance and vision to the development community as a whole. So that developers have less confusion about how to proceed with application development. We really want to produce a world were either using the proprietary stacks or even using the open web developers can point to a single location that says "This is how you build software. This is how you solve these problems.
These are the range of options you could choose from, which is distinct from media of the closed stacks, but at least these are some let's call them menus or stacks that you could choose from, that can make you productive. And so we want to provide that leadership and vision and provide a central place for people to be able to really understand how to be productive. We don't want to create a dictatorship, but we also don't want the chaos that is so often associated with these things. Dion: Organized chaos. It's so evolutionary, by having all these vendors come in and new companies all the time and having a platform for them to make many on the web platform, then we are going to get shoot-offs of new ideas that take off, that wouldn't happen in an environment where there is just a few players kind of patting each other on the back and doing something that is based on them. The other thing is that we want to actually help solve problems so, this week Adobe actually, showed people that like to write on Flash and things like that, they did the sneak peak look at a technology called MirrorMirror that takes a web page, and shows you side by side how it renders, different browsers on different operating systems.
And they say "Oh look the pattern is wrong in this browser, and it even allows you to onion peel it on top, so you can really see what is going on", that is really cool and we should be able to have that as an API with different tools can use it and then we can stop ... intelligence to be able to say "Yes, what's the ... images and then work out and say ok, they did this padding has a different default, has changed it". So we need to have this as a constant pin point is cross browser, the number one pin point, so we do need tools to come in and help us out there.
Ben: We think the tools are certainly viable in this open market you don't see the same economics, but the open web has a resource that of immense value and that is the open source community at-large. And we feel like we haven't as a community done enough to leverage the potential of open source, so you will be seeing us over the next few months, do things to try and unlock the potential of the open web. So we hope to counter the efficiencies that tools have with having this single source vendor with the efficiencies and the enormous power base you can get from working with the open source community. That's funny I was just reading about the Oxford English dictionary which I think is probably the world's first open source project of any kind because it was built on the backs of thousands and thousands of of volunteers who actually go through providing definitions and send in the raw data as volunteers to a central editorship community and to produce the defining work of the English language. And it really is an interesting story of the power of open source, in doing things that as single company you can't do.
Dion: Get that the Wikipedia battle is going on.
Ben: They do, except it's protracted for long periods of time.
3. Many developers feel that the traditional tools like the dominant IDEs because they were initially conceived in the pre-web 2.0 era, are fundamentally incapable of properly assisting the design of highly interactive feature-rich web applications like the ones we are developing these days. Do you think we need a major paradigm shift in the tools we use, or the current tooling will be adequate for a long time to come with a proper minor updates of course.
Dion: I think you can get a lot of mileage out of the current tools, a lot of people are doing great work with vi and emacs, and tools that have been around for a long time. I don't expect that to really change and we are seeing people taking a lot more time to add more web features in like we used to be like, web meant designers that's with things like Dreamweaver where you do web-pagy stuff and developers, were more like "I am a Java developer, I am a .Net developer" and there were like heavy coding tools, that you worked with. And then you look at those tools and they added web views and more Web capabilities and that became one of the more dominant thing that you did in those languages like Java but the tools also had the ability to do interesting things with other very rich worlds like Swing apps in Java or things like that.
So I think the current tools can evolve and do really important things. I really like the smooth tool approach and find a lot of tools that can interact with each other to do specific things, others think there is a lot of mileage there, I think we can get things out of the kind of mash-up model. It's not like here is one tool and that is the answer and I also think it would be interesting just as we are talking about having email being a web application just like once before you never see that, as we have all these clouds out there maybe there is an opportunity to do development in the cloud itself. So I think that's with the new tools.
Ben: I think the formal observation is that these ideas have been doing have been specializing in the type of development the web 2.0 so to speak has just now caught up with. If you look at how a web 2.0 application works that's exactly as Dion mentioned the Swing application works, the SWM application works, winforms application works, this idea of having the state machine use a network to go out and get additional data on demand. So it's actually sort of the inverse, sort of tools that had to go off and sort of specialize in this weird hyperlink document world, and now it is coming back to a programming language that has access to a rich set of functionalities and then goes of and does operations across the network and time to so it's a great thing. The sort of interesting question is what's ahead of the entire industry?
What's coming for not just Web 2.0 but conventional desktop environments as well, because right now we are seeing Microsoft invest in the expression set of tools, Adobe has what they call Flash Catalyst which used to be known as Thermo and then Sun has a similar vision for Java Effects. This vision is a shift in how visual interfaces are created. Where as right now the developer has the power these vendors envision a world where the designer has power. There should be an application the designer actually designs the real artifacts that are running in the production application, and has a tool chain that lets the designer become a peer to the developer in this world.
It is unclear if that is really going to take off in the short term, the medium to long term it probably will, and so the big question is "What do the tools look like in that world? How do we let developers, designers rather, truly roundtrip with their artifacts without stepping on developers? How do they gain that discipline?" That is an interesting question. So tools in general need to evolve based on this world of really rich user experiences that almost everyone is pushing, but as far as conventional tools, web 2.0 I don't think there is a big after to tell you the truth.
4. One of the most important tools for web applications is probably the firebug plugin from the Firefox browser, which has been imitated in most other browsers, since it was first released. How do you think this similar tools compared to firebug and what things would you like to see getting incorporated in this category of tools?
Dion: I think the tools you get now with Safari, the inspectors, Opera's new DragonFly tools and IE has developer's tools built in are kind of getting comparable to firebug which is great to see because a lot of the time when you come down to testing something it can work totally fine obviously in Firefox and fail in IE. You need to go to that code. So I think they are catching up. Firebug, created by Joe Hewitt, is an amazing thing, something like true everyone as developers to Firefox and was really important for the entire platform, he has then gone off to great work with Facebook, with Iphone applications and now it is only recently that a couple of people from Mozilla kind of stepped up with the project with Firebug someone at IBM and a bunch of people created this new Firebug working group and effort is really being put into, for me which is the most important things like stabilizing and all that kind of stuff.
It's tough to come in and do all this work and not introduce leaks and things like this. So that is the first thing I really want to see out of Firebug is stabilizing it. But already in the 1.03 you have this net panel and if you are someone like Steve Sanders who really has to measure all stuff gives you very very accurate very rich results. And what if you could see and we have seen something: you load up your page and as it is rendering it shows you what has been painted-n at a different time period. So that you can see that "Oh actually when I do this optimization this top page gets painted beforehand whereas before we thought of things like loading the page, and the loading the page as a whole doesn't make sense anymore with Ajax interactions. So getting the tools to really understand that and again Steve is doing work with something he calls episodes, really time these interactions.
And getting that to work across the different tools so we can suck them into those different tools and really see what's going on. I think there is a ton of stuff that we are going to see going to Firebug someone tinkering to be able to go through, I am on my web page, just a simple Amazon.com home page; Right now I often used it to implement design, I go and I change things in CSS it would be great if I could just hit save and then it goes back to the server and saves it. Not necessarily easy depending on what you are doing, but there is interest in work being done over there and so again I think there is lot of work that can be done across all these developer tools. To be clear what we want to do in our group is definitely not Firefox specific. The tools that we want to work on are across different browsers. We are not a Firefox tools group, we are a web tools group. But Firefox is obviously a fantastic thing that Mozilla has held us responsible to help out the development community and I can't wait to get more involved.
Ben: I am also excited to see the tools go a level they haven't gone yet technically as far as closer to the metal closer to the platform. With Java we have got very mature tools that give us powerful introspection of the memory situation, the application can give you performance and insights, and as you try and repeat that with the web stack it is kind of a nightmare, it's a good way to look at your current memory situation, what we might call a heap in a Java oriented app is a user heap for memory allocation. There is no deep understanding on how the garbage collectors work on different platforms, there is certainly no insight on what is happening in the given time reason in the Java world, I am used to an introspection of different spaces, or the young generation, the old generation, and keeping an eye on that.
5. With HTML 5 there will be several new features that developers will want to use providing of course that the browsers will implement them. Which features do you see more valuable and how good do you think contemporary tools can handle this challenge?
Dion: There is a huge slew of features in HTML 5 and I see them trickle out Ben has talked a lot about Canvas, which is already available in a lot of browsers and people working hard to get it into IE using different methods. So I kind of see it as this one side which is the work that was done originally in HTML 5, where Ian Hixon chose to use Google, went out and mined the Google indexes to see how people are actually using HTML. So he would see that on 30% of the sites out there people would use a class equals footer so maybe we should give them a semantic way of saying that. X percent of their time they are trying to do menu system and all that.
Ben: I see it as a very long term play, and that is really what is most important, to see over the long haul this is the standard we are going to incorporate audio, video, advanced graphics into the browser and even if it takes until 2015 or an arbitrary time into the future for all the browsers to incorporate at a level that is satisfactory with comparable fidelity, as long as this standard exists we can take tools like Flash and even Silverlight or Java and add that feature as a plug in and bridge to it, in browsers that don't have it and as long as we have that standard and at least we know the code into an ApI will emerge and that is what is really important.
If we look at our mission which is to keep the web open to things like audio and video are really important because that is what pulls proprietary plug ins into a large number of websites, and I don't really care if Flash is used to view a video today as long as that video could be viewed on other platforms tomorrow, when the player emerges. Now if the video is served out as sort of an opaque Flash movie, and there is no way to get it through another video player that is a problem. But if there is a Flash video player embedded in the page then streams some sort of an mpeg movie, mpeg encoded movie that's great because some other player can be substituted in just as easily.
So I am really excited to see HTML 5 to facilitate those use cases, to look at where we are going over a long period of time, carve out those standards and say "You know, we may not have implementations any time soon, but at least the standards are here and they are viable and we can plug in the gap in the meantime with tools like I have mentioned and even things like Google Gears which is just to plug those gaps. So HTML 5 is exciting in that respect, I think even though will lead to fragmentation on the short term, if you look at the browser implementation schedules on the long term, we really hope it will serve to keep the web open.
Dion: Video is important and a lot of people say "Well you can do video in Flash right now, why do we need to add that?". What is interesting is that when you stop to see if this demos that are using the native video tag were it's native into the browser you could run CSS on that video or you could steer it and move it around, and all of that stuff works with all of the other pieces. And I think that is what is going to be important. So we can have that and the actual implementation is in Flash for a while, that's fine, but it is like "Can we get it as native as possible and really understanding the browser as a whole, not just a little rectangular box that does something else and not spooling off these new plug in processes every time you want to do one of these things.
Ben: We talked a bit about HTML let's pass that one for now as I think we have covered that. I do want to say that it's not that we don't like Flash or the proprietary technologies, we actually like them quite a bit the scenario that we really want to protect against is just like with Flash for example is like with Sun. Sun is a company that sort of watch and implode, as time goes on, we love that company a great deal but just to set context for where this video was watched, this week with green design, the VP of software, we have seen lower level of success and people ... so if you have big investments in Java, you sort of get a little worried right now because the future is uncertain.
The language probably should evolve it's a little scary because as soon as you start evolving the language you got to worry about different browser issues and with Chrome entering the market and the new mobile browsers, we are really starting to see user agent fragmentation being an issue. For a while Internet Explorer and Firefox were the things you had to worry about, now the list is five or six that you really need to take into account. That's a real problem for developers that's not a plus, in fact as you talk to a lot of developers, that is not a plus, in fact you would expect them to embrace Google Chrome to a degree because of the promise to a potentially eroding the Internet Explorer base but most all we talked to really are not happy about Chrome at all.
And one of the reasons why you can't so it is simply in order to model the graph, intermediate to a large scale project you need a whole lot of memory and a whole lot of processor time, on a Desktop. But what if the modeling of your code occurred in a cloud in a distributed environment across the team Now if you are one developer working on a huge code base, the relationship of computing may not work out, but if you are a team of five to ten developers, you have a medium to large scale code base and you can amortize the computation of your code calculation, across multiple team members, maybe that is feasible.
So Dion mentioned a bit about having an environment that lets you work on your code in the cloud, what if you had this analysis of your code happening in the cloud, would that change the economics of computation such that we actually could analyze the dynamic code base and actually run through the graph, a much richer, more ambiguous graph and give you the types of syntactic sugars or helpers I should say that were used for static languages? I am really interested in seeing if that is possible and we may or may not go in that direction but that is something I would like to see emerge from some source.
And so if you want to create an application using Prototype you got to look at the Prototype docs, you got to look at the IE docs, at the Firefox docs, Safari docs and they are all different formatted documentation, Apple is the hardest to find, and it is really a bear to get simple things done. So we want to solve that problem, we want to centralize documentation, we want to create a community hub and we got a few other ideas for what such a community should do. So you would probably see something in that area emerge from us.
And then as we talked about tooling gaps, we are working with different players in the community and the community itself to identify what specific tools are missing. And we really want to see those tools emerge in 2009 so we will be directly working on new tools and working with others to facilitate the emergence of tools, being sort of cagy as to what specific tools there might be but it would be kind of premature for us to go into that I think right now.
Dion: But what I am really excited about being at Mozilla is how open the company is it doesn't feel like a company sometimes, it feels like this community. When we first started and went to the first weekly company meeting, and it was live on air and anyone could watch it. That was the company meeting. And as people who like to do things like this and come and discuss things with developers as soon as we really get going, we can then come out and say here is something we have been thinking about.
And get it out there and develop the whole thing obviously open source but totally transparent out in the open, really being part of the community as Ben said, it's not about us building this Mozilla set of tools that we throw over the wall it's more like collectively working on what do we really need and how about you would do better this and we do better this and this is how we integrate and I was thinking about how Mozilla would do things it's all these pieces with very open obviously with APIs to them that other tools can use. So we can share all this stuff in new and interesting ways. I am really excited to really get going there and get some tools out to developers and hear what you guys need.