jsPerf (http://jsperf.com/) makes it easy to create performance test cases and run benchmarks across different browsers and devices -- but it also makes it very easy to do it wrong. Incorrect test cases lead to incorrect results, and we don't want to spread misinformation when it comes to JavaScript performance. In this presentation, we will be taking a look at some common mistakes in jsPerf tests, and we'll learn how to avoid them for great justice.
This year js officially becomes jailbait. And even though there is a lot of work in the field, the number of solid tools available to js devs is pretty limited. How many decent IDE's do you know about? Now try other languages. Why has there been so much work in pretty much every popular language except for js? Even though js is one of the most popular lanugages around. Because it's dynamic? Oh sure, the dynamic aspect of the language has some major pitfalls for IDE's, but it's not all hopeless. There is a lot of information to infer. And whether this information is solid or weak, it doesn't matter. The aim of the game is to help the coder, you!
I'd like to show you why creating tools for js is not that difficult. Why the field is lacking in tools. And why, even though you shouldn't rely on tools, they really do make your life much easier. I will use my tool, Zeon.js, as an example on how you can create such tools. I will showcase some simple tricks of getting information from your source and how it can help you be more productive. We might not have the static run through type checking of, say, Java or C, but we can sure get a long way of spotting errors before actually running the code.
by Aaron Quint
Yeah, yeah. I'm the Sammy Guy. I've spent a lot of time thinking about client side tooling and frameworks and building some sizable apps. I have come to the conclusion that they all suck. Maybe even one step further - frameworks in general are not always the correct solution for your problem. That doesn't, however, mean that they're irrelevant. It just means that its not so cut and dry, one is not really better than the other, they all present tradeoffs and all have their strong points. I'll talk in general about why you shouldn't use a client side framework like Sammy or Backbone or Sproutcore or Cappucino and also why you should. These sound like opposites and like I'll be doing a lot of contradicting myself, but thats the whole point! Don't believe the hype, know the facts about framework development and make your choice and stick to it.
As Sun Tzu says, 'know your enemy'.
To effectively work with the DOM you must first understand the DOM. Not just on the surface, but down to the dodgy hacks that browser vendors use to make it as fast as it is today.
To treat those hack exhaustively would take several weeks, but I'll do my best to cram a suitable portion of them into 40 minutes.
by Andreas Gal
PDFs are traditionally rendered using native code plugins. Often enough those native code viewers turn into unintentional native code execution platforms. I will talk about Mozilla's new PDF.js pure JavaScript PDF render. Flashy demos aside I will in particular focus on performance tricks we use to make rendering fast (we just-in-time compiler PDF content!), and report on limits of the canvas API, and how we plan to fix those since we conveniently also make a popular browser: Firefox. Have you heard of it?
by Alon Zakai
Emscripten is an open source LLVM to JavaScript compiler. It lets you take code written in C or C++ and run it on the web. It can also be used to compile entire language runtimes, like CPython, letting you run code in those languages on the web as well.
Currently a major focus of work in Emscripten is connecting with 'normal' JavaScript code. In other words, making it easy to compile some existing C++ library, then use it from your handwritten JavaScript on the web.
by Brendan Eich
dyn.js project born from the idea of leaving the past behind, and starting from scratch, using dynamic language jvm native support (present on JDK7).
This means that we can get free performance improvements, get a concise codebase, and steal ideas^H^H^H get inspiration from other JS implementations, without worrying with backwards compatibility.