Ben Livshits, Microsoft Research Addressing Web 2.0 Application Development Challenges Abstract: With all the hype surrounding Web 2.0, developing distributed web applications is an experience that leaves much to be desired. This talk focuses on two recent projects that address Web 2.0 application development challenges. AjaxScope recently publicly released by Microsoft Research is a monitoring platform for Web 2.0 application such as Live Maps and Gmail within the end-user browser. AjaxScope allows for a wide variety of instrumentation policies that allow the developer to gain insight into the behavior of remotely executing code. We have developed and experimented with a wide range of runtime monitoring policies for performance profiling, locating optimization opportunities, finding bugs such as memory leaks, etc. The fact that AjaxScope is deployed in a distributed setting allows us to distribute the instrumentation across a range of users and adopt it over time, so as to keep the per-user instrumentation overhead as low as possible. Doloto is an automatic code rewriting tool that improves the responsiveness of large web applications through automatic splitting of JavaScript code. While moving application code to the client browser improves user-perceived performance during program execution, the downside is that a great deal of can execute. Doloto analyzes web application workloads to automatically split them into a small initial download and multiple dynamic libraries loaded lazily or on-demand. We have applied Doloto to several large web applications. Doloto reduces the size of initial application code download by hundreds of kilobytes or as much as 50% of the original download size. The time to download and begin interacting with large applications is reduced by 20-40% depending on the wide-area network conditions.