Problem: javascript is used everywhere, performance is getting better and better, but it provides no tools for large scale application development.

Solution: use existing (or not existing) languages with static types, IDEs, proper tools to write your code, and compile it to javascript!

Advertisement

The main topic of the conference was designing languages, creating ways to generate javascript from other languages, using javascript as the new assembly language of the web.

  • Douglas Crockford in his starting keynote talked about syntax parsing, showed a parser for simplified javascript in simplified javascript. https://github.com/douglascrockfo…
  • Michael Ficarra looks like a 15 years old kid, but he's in the process of rewriting the CoffeeScript parser, called coffeescript redux. He talked about parsing CS source and generating javascript code. https://github.com/michaelficarra…
  • Google Dart - a new language thats VM will be probably included in google chrome sooner or later (and pretty sure that no other browsers will support), the syntax is much like java, and it performs very well
  • we saw a demo of a Google Web Toolkit (GWT) based workflow for generating JS from java. https://developers.google.com/web-toolkit/
  • SharpKit - a product you can use to write javascript in C# in Visual Studio, sounds fun, huh? http://sharpkit.net/
  • Haxe/JS - Joco liked the idea of Haxe, ask him why! http://www.haxejs.org/
  • asm.js - provides a strict subset (only the good parts) of javascript to compilers, achieves impressive performance boost. Here's the video of the presentation: http://www.ustream.tv/recorded/29324…
  • GHCJS - Haskell to JS compiler - yeah.
  • Roy - a language developed by a guy (who works at Atlassian btw), using concepts from haskell and scala, uses optional types. http://roy.brianmckenna.org/
  • F# - "robust, enterprise-grade, client-oriented web and mobile application development using nothing but F# code." — unfortunately i had to skip this talk.

The second topic was about providing solutions for problems that javascript developers face while creating applications using either straight or compiled javascript:

  • functional reactive programming, aka FRP: instead of creating deeply nested callback functions ("callback hell"), it uses functional concepts to handle event streams. The author of bacon.js demoed his library that provides methods like map, filter, flatMap, merge, combine, to work on event streams. very promising! https://github.com/raimohanska/ba…
  • another demo for FRP using the Elm language, the guy wrote a program in ~30 lines that moved Super Mario on screen just like the old SNES version did! https://github.com/evancz/elm-at-…
  • another solution for nested callbacks is using $.Deferred / Promises
  • closure compiler: provides type checking using jsdoc-like annotation syntax, uses this information to further optimize code and report errors at compile time. This is something we really should start using!
  • A frontend engineer from soundcloud talked about real world problems (finally!), performance issues they faced while creating soundclouds new javascript only interface. Reducing ajax requests, preventing memory leaks and improving rendering speed, those topics are all in his slides: http://spadgos.github.com/mloc/ We already use some of those technics, still an interesting read.

Check the #mlocjs tag on twitter, most speakers posted their slides there.

Also check the site of the event with the list of speakers: http://mloc-js.com/