Back from JSConf EU and other travels, the minute with team is happy to return with a special episode from Brendan about the new Boot To Gecko (B2G) system. This is targeted to allow users of mobile devices to boot directly to a Gecko based browsing interface and to run web applications. It is really doing some stunning work around the new web APIs and privilege model that all developers should be aware of. Enjoy!
Brendan goes through the recent happenings at the ECMA TC-39 committee meeting held at Microsoft offices in Redmond, WA. For many, this might be the first peek into what is finalizing as ES6, so be sure to listen through. Luckily with the recent changes, ES6 might take forever to standardize, but prototypes are ready right now for some items! Listen in.
- Past proposal point for ES6
- Allen Wirfs-Brock
- Destructuring Assignment
- let and const
- Open issues with Classes
- Google V8 have an implementation of prototypal proxies (and in spidermonkey)
- ES6 is targeting end of 2013
- Meeting notes
- Microsoft (internal) Survey about compelling items from ES.Next (ES6 and ES5)
- Some items had "Meh reactions" :)
- Iterators and Generators
- Demonstrated at NodeConf
Hot on the heels of recent announcements from Mozilla about strategy, personnel, and general company changes, Brendan provides us with almost 12 minutes of very deep insight into the future of Mozilla and the web. As a long term citizen of the web, open source, and all that is right with technology, I (Chris Williams) applaud the strides and direction that Mozilla is making and most importantly the courage they have to make them. This is a long and deep episode that revolves around the following 5 points:
- Our mission obligates us to make the user sovereign and keep the web open and innovative.
- The rise of mobile computing requires new explorations, projects, and products to fulfill our mission. This means new Mozilla modules and activities.
- Mobile browsers and apps require always-available (i.e., cloud) services, working with the desktop to create a continuous user experience.
- Higher-layer services on the Web today, particularly for mobile, apps and user data or "social", pull away from open / user-as-sovereign toward closed / user-as-product.
- So our innovations to advance the mission must expand up the stack, from HTML, CSS, and JS, to mobile, apps, and social, always putting users first and in control.
Where I would normally summarize further, I really encourage you to take a full 12 minute break, listen, and understand this episode. It jumps around from open web app stores, mobile interface/devices, profiteering, growth, anticipating change, and beyond. Well worth your time.
Taking the web by storm, PDF.js is a PDF viewer implementation done entirely in open web technologies by some of the fine folks at Mozilla. Bringing the pixel publishing perfection that is PDF down to the JS layer is something that seems obvious, but has yet to be done - imagine a world without plugins (and all the happy people). Listen on Brendan's take of where it is and most importantly where it is going.
- Longer explanation by Andreas Gal
- PDF.js Guts
- PDF.js IRC chat room
- PDF.js wiki
- Follow... @andreasgal
- Still in process, covering more of the PDF spec.
- Demonstrate that it is possible to have an in-Firefox, memory-safe PDF experience.
- PDF.js to be fast and cover the most common cases, not replace a full reader, just replace most of its use cases.
- Tricks for speed where borrowed from various query libraries.
- First in a series of efforts to move plugins into the JS space.
- Google NativeClient.
- Brendan's JSConf Presentation
- TC-39 Committee Upcoming
- "Rolling like the W3C and WHATWG with prototyping as they go."
- use version 6; adds a double layered versioning protection.
- Dave Herman
- Lexical Scoping
- Global object will not be on the scope chain
- Upsides: security enhancements, VM implementation improvements, early error wins
- Translation, compilation, and transpilers
- Firefox 6 is in nightly channel
- Awesome, opt-in, compiles down.
- Harmony of My Dreams
- Harmony is still moving forward
- Harmony Module Proposal
- There were mixed ideas about classes that have to fully gel.
- If classes aren't quite right, they may be left out.
- SHORTER FUNCTION SYNTAX!!
- Andreas Gal
- Early reports show that dom.js might be faster in some parts than native code because you don't have to cross between JS and C++ boundaries.
- DOM NodeList
- Airlift into Firefox Next ( in 3 months )
- "The DOM is kind of CrazyLand"
- Cameron McCormack
- John Resig's env.js
Brendan dives into the upcoming/recent Firefox 4 release on March 22, 2011. Goes into far more than just what is new, but where it came from and most importantly where it (and the rest of the vendors) are heading and why. Best 11 minutes of your day (12 minutes if you count downloading Firefox 4)
- Launch Day March 22
- Launch Day Tracker
- "A lot of hardware acceleration", this is just the start
- No stones, no exaggeration.
- Firefox is being built for the future of the web.
- Windows XP is Firefox, Chrome, and Opera land.
- Mozilla Demos Web o' Wonder
- The dream of the 80's alive in Mozilla
- Voices From The HTML5 Trenches: Browser Wars IV
- Have productive "coopatition" through standards bodies (W3C, etc.).
- Håkon Wium Lie
- Ian Hixie
- David Baron
- Dave Hyatt
- Nerds + Drinks = HTML5
- Yellow Screen of Death
- Convergence over gaming
- Pseudo-Random Number Generator (PRNG) update (crypto nerds rejoice)
- FIREFOX 5 IN 3 MONTHS!!!
- Discusses the potential splitting despite better features and yet the downside of single source stream.
- Mozilla can't convert to webkit, it would take years
- SGI and Netscape tried, SGI and Netscape aren't around longer.
- Competition is good, different points of view are good, multiple sources are great for browsers.
- Firefox is realization of where Mozilla started out heading towards
- Keep the feedback coming, its critical!
From all of us at Minute With, Congrats Mozilla!
Do your part, download now and more importantly download it also on someone else's machine!
Any JS developer will tell you that the hardest conversation to have with any other developer is describing the use and meaning of the "this" keyword. Brendan describes where "this" comes from, a hold-over from its C++ and Java lineage to allow functions to also be methods and thus had to have a receiving object and some way to access the receiving object within the function (i.e. "this"). Brendan goes into current uses up to modern ECMAScript specifications, but more importantly the altered use cases in the strict mode of ECMAScript 5 edition. Brendan also presents the future sharp function implementation which will better handle all cases (hopefully).
- Juan Ignacio Dopazo
- The Interesting Question
- Doug Crockford
- Closure Object Pattern
- Prototypal Inheritance Object Pattern
- Prototypal Inheritance with Explicit Function Hoisting
- Inheritance Revisited (MDN)
- Polymorphic Inline Caching
- "That Hurts! ... Millions of Millions of Methods"
- Chez Scheme
- R. Kent Dybvig
- "Closure pattern does not win over the prototypal pattern in efficiency"
- You shouldn't prematurely optimize!
- Note: When writing nested functions, (...) evaluation creates a fresh object which potentially leads to a high cost.
- Measure before optimizing, use statistics not "feelings".