Sessions at GOTO Amsterdam 2011 about JavaScript

Thursday 13th October 2011

In this talk, you'll learn how a combination of new technologies that are only now arriving in browsers will revolutionize front-end development. From better, more expressive markup to in-platform data-binding to improvements in DOM and JavaScript, come learn how emerging standards will make your apps better, faster, and lighter.

We have come full circle. We can now write our software entirely in the browser. Think google docs, for software development. In this talk i want to go through what is and will be possible when we move software development into the browser. Cloud hosting, collaboration and accessible everywhere. Cloud9 IDE is a complex web-application written with HTML5 and Node.JS technologies, and as developers we are using Cloud9 to create Cloud9 itself. For the more advanced developers i will also briefly dive into the technology and systems behind the IDE that make all this possible.

Mozilla Rhino is a JavaScript interpreter written in Java and running on the JVM. It's one of the oldest implementations of a non-Java language on the JVM platform, and has the distinguished honor of having a version of it being shipped in the Oracle JRE distributions as the default JVM scripting language. In this hands-on talk we'll discuss how to integrate Rhino into your JVM-based project, the Java-JavaScript bridging, as well as unorthodox features (i.e. first-class continuations) and newer features (support for CommonJS modules). You should come away from this talk with a good idea of what can Rhino do for you, and how can you easily make it do it.

On the server we often speak about so-called "non-functional" requirements of a program or an architecture, e.g., maintainability, extensibility, robustness and performance. We also have technical requirements that focus more on code structure e.g., separation of concerns, modularity, loose coupling, avoiding duplication.

On the client side, the situation is often shockingly less ambitious: often we just hack until it works (in Firefox and then we ship it). Most of the time we can manage because there is only so much JavaScript code, but as the project scales in complexity our productivity quickly declines as does quality .

Why are there so large differences in our mindset on the front- and back-ends?

The goal of this talk is to motivate and help you improve the technical quality of your JavaScript projects. We consider one set of techniques, design patterns and tools that this speaker has successfully used to tame the complexity beast in several large and medium scale projects.

To enable Sever-Side-Push in Web-Applications a lot of hacks (aka Comet/Bayeux) have been done in the past. The WebSocket spec fixes that by introducing a bi-directional and full duplex communication channel over a single TCP connection, which can be easily used to extend high-level protocols (such as JMS, AMQP or XMPP) to the browser. This session gives an overview of the WebSocket API and shows how to use with other HTML5 APIs to build powerful and future-proof Web-Applications.

Keywords: WebSocket, HTML5, JavaScript, JMS, AMQP, Messaging, XMPP
Target Audience: Developers that are interested in the capabilities of WebSocket or want to know how-to bring existing server systems, like JMS or AMQP, to the Web.

Friday 14th October 2011

The Lively Kernel showed that one could build a self-supporting development environment using only JavaScript and browser graphics. This kernel can be stored simply as a web page, and can come to life in any browser with no installation or plugins.

Recent progress in the Lively Kernel platform enables drag-and-drop composition of active content from shared cloud-based repositories, empowering web developers and end-users alike. The talk will be given live in the system, and will include links to all the tools shown.