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.
Sure, I think we are seeing today really a major transition in the nature of computing, a transition that is as significant as the transition from mainframe computing to personal computing we saw about thirty years ago and we are moving into an era that is not focused on single powerful machines that people go to, to perform specific tasks, and we are moving to that to an era where the whole environment we lived within is augmented with hundreds of computing devices and such, that really impact all aspects of our life. And we may think of it primarily today as mobile devices, mobile phones and stuff, but it really goes much beyond that to mini-devices, a thermostat, our cars, our televisions, these are all computing devices.
As this transition occurs, the technical ecosystem that dominated the personal computing era, which was pretty much the Windows PC platform, doesn’t really have the role it had in the past, I think there is emerging a new platform that can be common among in all these devices and I think that’s the Web platform. It’s the Web technology that was originally developed to run on browsers, but now increasingly it does not require the skin of a browser around that application platform, it can be essentially a standalone application on the device, but it’s using the same development technologies that Web browsers uses.
4. How do you see organizations like Mozilla or the other browser vendors evolving for that ambient era, because it seems like a completely different way of doing things, and specially companies like Microsoft for example?
It is really different for each of them, because each company or each organization that builds a browser has different business interests. So Microsoft is obviously very concerned about maintaining their Windows Base Software revenue model and stuff, and change away from Windows probably won’t be good for Microsoft unless they can adept to this new model and you see in what Microsoft has announced with Windows 8 that they are in fact embracing much of the web technology. Mozilla is an organization who is really devoted to nothing but the web and to the benefit of the users of the web.
Mozilla is a nonprofit organization, we don’t have shareholders, so who we answer to is really our users, so we want to make sure that as we move into this new computing era that we continue to have a platform that is built for the benefit of the people who use it, and it’s controlled from them. The other side of that, which to some degree we have to work to offset, is there are a lot of financial motives for organizations to simply try to monetize the user to gain access to the users’ information and use that to generate revenue and stuff. So we want to make sure as we move in this new era that we have a technical rich environment but one in which the user really remains in control.
5. There is an interesting quote from Brendan Eich back in 2004 which goes like this: "The dream of a new Web based on HTML plus SVG plus SMIL plus XForms is just a dream it won’t come true no matter how many toy implementations come out." What are your feelings about technologies like Dart which try to do something similar like fundamentally change the way the web is being built?
6. You talked about the VM for several languages, this was a vision even back in the Smalltalk days, a VM of VMs or having a VM that runs several languages, this was also a concern for the JVM to have one virtual machine and people can choose, would you see something similar for the browser to accommodate different languages?
I spent many days programming in assembly language on those and other architectures.
All the major browser implementations now actually support ES5 pretty much in its entirety with a few minor variations and those are being fixed pretty rapidly but it’s still only about fifty percent of the browsers that are used in the world actually and support ES5, because it takes quite a while, particularly in some environments, in some browsers for them for people to switch to latest versions. In my talk I mentioned, it’s probably late 2013 before a web developer could safely assume that their users have ES5 available, which is about the same time we expect the actual specification for ES6, the next version of ECMAScript to be done. It takes about five years from the time we release a new specification to when it’s actually widely usable by web application developers.
The fact that takes long times though does not mean we should go any slower because the longer we wait to produce it even further out it gets. Like I said in my talk today, web developers should not be looking to the ECMAScript committee for solutions, for today’s problems, today, I mean that is the job for framework developers and library developers, they can provide immediate solutions. Our job is really looking for the long term and saying "What are people really going to need five years, six years from now in terms of what they are developing on the web?"
There has been, from what I’ve seen with the various implementations, very few problems with backwards compatibility. One of our major focuses in designing new versions of ECMAScript is maintaining backwards compatibility, so we are very reluctant to make any changes at all that would impact any existing code. We do make some subtle changes in very kind of dark, obscure corners of the language that we really have a lot of confidence that nobody actually runs into those issues, and sometimes even there we get surprised. For ES5 specifically probably the biggest impact we had with that was at the early roll-out of the ES5, one of the things ES5 added was JSON support and added a global object named JSON, and that actually had conflicts with some libraries that people had written, that had used that same name for the global but had a different API for it. Those were pretty quickly fixed, but for the most part backwards compatibility is pretty excellent.
That was being discussed for a while, and this was compatibility reasons, the thought was that for any of the new syntactic features in ES6 that it would have to be some of sort of explicit opt-in from users they have to one way or another say in their code that this is ES6 code they might do that in the script tag or with the main type of the file, the script file, or something. Once they are opted in, there is new features with there, and the assumption was that implicit in that would be a strict mode opt-in. Just on our last meeting based upon feedback from developers and such, we came to the conclusion that that sort of opt-in many developers felt that is going to be too much of a burden and they simply wanted to continue just write script files and have them work and be able to incrementally start using new features.
11. There have been many that have criticized Microsoft’s approach to the web and how it has affected the evolution, the adoption of web technologies. It is probably what every web developer would have to say about having to maintain projects that run on Internet Explorer. Nowadays, as you mentioned also in your talk, Microsoft is putting a lot of work and participating really actively in the EcmaScript committee, and there are announcements out about how the Windows 8 platform is more integrated with EcmaScript, do you see this as a significant change and also does it really matter anymore as it did a few years ago?
That is the big question, it’s relevant. Certainly the big issue is Microsoft, I think from about 2001 through 2007, they were just not paying a lot of attention to the browser, they had IE6, and at the beginning of that period IE6 had dominant market share and Microsoft was worried about other matters, they just weren’t working on Internet Explorer anymore. So people forget that at the beginning of that period IE6 was probably the best browser around, it was simply the fact that it was not maintained and kept up the current standards over that period but with IE9 and what they have previewed with IE10, it’s a first-class standards-compliant browser.
Nobody has to going forward think about, it appears from this point going forward you really have to worry about whether you are running on a version of Internet Explorer or any other browser. There is still an issue and there is still a really significant legacy of pre-IE9 versions of browsers out there, there is still a problem. Anything Microsoft can do to get people to move forward faster will be appreciated by everybody but it’s a challenge even for them. The real question, I think, going forward is as we move in this new era of computing that we talk about, it’s how irrelevant is going to be, we don’t know. Obviously Windows 8 is part of Microsoft strategy that try to remain relevant and expand from the desktop environment to other sort of devices. We will see how it goes.
Dominique De Vito
Read this very interesting post: blog.mrale.ph/post/12396216081/the-trap-of-the-...
a) optional typing
b) class definition
a) optional typing
Following that idea, a variable with a typing information will only accept values of this type, and the assignment of a value with another type would raise an exception. But still, any scripting programmer will be authorized to use the "var" keyword to define typeless/dynamically typed variable.
b) class definition
Why not discussing including these 2 features into the next ECMAScript version ?