Improving the core language
- ECMAScript 4 was abandonded, due to political differences concerning language complexity. Because currently only ActionScript 3 is based on ECMAScript 4, the impact of this decision is that ActionScript will no longer be compliant with new versions of ECMAScript.
- ECMAScript 5 (previously: ECMAScript 3.1) was published as a final draft, planned to become a specification in December 2009.
- ECMAScript Harmony (likely to be renamed to ECMAScript 6) will be the next-generation version of ECMAScript.
The goal of EcmaScript 5 is to add improvements to make the language more robust, remove some inconsistencies and establish a foundation for future versions of the specification. To achieve this it includes new features as accessor properties, reflective creation and inspection of objects, program control of property attributes, additional Array manipulation functions, native JSON and a strict mode that provides enhanced scoping, error checking and program security. More info   .
- ECMAScript 3 Compact Profile (ECMA-327 a.k.a. ECMAScript CP, 2001), a compact profile designed for resource-constrained devices.
Object.getPrototypeOf()and new trim methods on the String object.
- JScript 5.5 (Internet Explorer 5.5, 2000) aims to be ECMAScript 3 compliant.
- JScript 5.6 (Internet Explorer 6, 2001) includes a series of minor updates.
- JScript 5.7 (Internet Explorer 7, 2006) introduces ECMAScript CP.
- JScript 5.8 (Internet Explorer 8, 2009) introduces native JSON and and accessor methods for enabling DOM prototypes . Microsoft also published where JScript doesn't comply with ECMAScript 3 .
The next version of JScript will likely aim for ECMAScript 5 compliancy. We may also conclude that in the past years browser makers paved the way for future versions of ECMAScript.
Introducing new DOM APIs
- Limited cross-browser support, especially because Internet Explorer still doesn't support the proper
- XML parsing appeared to be unpractical for Web pages, because it makes them break very easily.
- XHTML2 is not backwards compatible and is still under heavy debate. UPDATE July 3, 2009: The W3C has stopped working on XHTML 2 and will increase its effort on HTML 5, also to clarify W3C's position regarding the future of HTML.
After almost a decade of XHTML we can conclude that an entire XML based Web is an utopia. On the client-side both the adoption and innovation process has halted, so it has become time to move on.
- It is backwards compatible with HTML 4.
- It's DOCTYPE can already be used cross-browser today.
- It standardizes existing proprietary features.
- It introduces practical new parsing rules and flexible error handling.
- It is heavily backed by Mozilla, Apple, Opera and Google.
- It introduces a heap of new browser features of which some are already suppored by the latest Web browsers.
- Audio and video playback (Firefox 3.5, Safari 3.1, Chrome 3 and Opera nightlies).
- A canvas for 2D drawing (Firefox 1.5, Safari 2, Chrome and Opera 9).
- Cross-document messaging (Internet Explorer 8, Firefox 3, Safari 4, Chrome 2 and Opera 9.6).
- Client-side storing of name/value pairs (Internet Explorer 8, Firefox 2/3.5, Safari 4 and Chrome 2.
- Client-side database storage (Safari 3.1).
- Offline Web applications (Firefox 3.5, Safari 4 and Chrome 2).
- Document editing (Internet Explorer 5.5, Firefox 3, Safari 1.3, Chrome and Opera , more details).
- Drag-and-drop (Internet Explorer 5, Firefox 3.5, Safari 4 and Chrome 2).
document.getElementsByClassNamemethod (Firefox 3, Safari 3.2 and Chrome, Opera 9.6).
DOMContentLoadedevent (Firefox 1.5, Safari 3.1 and Chrome, Opera 9).
Although most of HTML 5's new features are not ready for prime time yet on the desktop, some of them can already be very interesting for developers that build applications for the mobile Web, where Webkit based browsing on iPhone and Adroid currently dominates the market. A good example of this is Gmail for iPhone/Android, which already uses HTML 5 functionality .
Besides HTML 5 there are a couple of other very interesting new standardization projects.
The W3C Geolocation API Specification (editor's draft) defines a simple API that provides scripted access to geographical location information associated with the hosting device. The specification is scheduled to become a recommendation in Q4 2009. It is already included in Firefox 3.5, Mobile Safari on iPhone 3.0 and Opera nightlies. My previous article gives a good overview of location aware browsing.
The W3C Accessible Rich Internet Applications (WAI-ARIA) specification (working draft) defines a series of methods to make dynamic Web content and Web applications more accessible to people with disabilities by defining how certain functionality can be provided to assistive technologies. WAI-ARIA is already supported by Internet Explorer 8, Firefox 3, Safari 4, Chrome 2 and Opera 9.6. More info .
When it comes to the DOM we can conclude that there is a whole lot of innovation going on. Although time will tell when certain features will become available cross-browser, it's great to see that browser makers are both collaborating and competing to develop new browser functionality and Web standards.
Although the past decade may have been influenced by processes of political stagnation and consolidation, it also contained a lot of innovation and a return to practical Web development. Is this the silence before the storm? I hope so.
I also hope that this article has given you a good overview of what is going on in the client-side scripting world and has shed some light on what the status of things are today. Are you excited about all of these new developments? I am!