QCon San Francisco 2011: Friday

Keynote: Dart Programming Language

Gilad Bracha – Google Research

Gilad introduced the new Google Dart programming language. This language is still in development, and as such the details are likely to change.

Dart is intended to be used to create structured web applications. This is to fill a perceived need to reduce the complexity of creating large web apps in the current polyglot language set (ie. javascript)

Dart is an OO, single inheritance, dynamically typed language. Dart is meant to be boring, predictable, and easily recognizable. The syntax is very similar to that of Java. It does, however, include a few interesting new features:

– string interpolation
– operator overriding

Dart is dynamically typed. However, types can be specified where desired. The Dart system will issue type warnings, not errors, where the type checking system detects potential inconsistencies. It is important to note that no runtime type checking is being performed, and that the type system is designed not to change the behavior of the program in any way. The types can be thought of mostly as documentation for the programmer (and the Dart Editor which uses them for type-ahead auto-completion). The type system also includes support for generics. The ‘anything’ type is represented as ‘Dynamic’ in Dart.

The current set of Dart tools consist of a bootstrapped compiler (dartc) which compiles dart source code to javascript for execution on the browser. There is also a virtual machine which executes Dart code on the server. By having an execution environment on both the server and client, the programmer can create an application in the same language, and can communicte between different parts of the system using standard language features, instead of punching holes in the abstraction using http or ajax libraries.

The language is strictly single threaded. Concurrency is handled through the use of an Isolate construct, which fully encapsulates its state and communicates to other Isolates via asynchronous message passing.

Dart tooling supports snapshotting – that is, creating an image of the Dark virtual machine state and heap, so that Dart programs may be started very quickly, without any startup expense.

The Dart Editor is a stripped-out eclipse instance.

Try dart at http://try.dartlang.org.

Slides: http://qconsf.com/dl/qcon-sanfran-2011/slides/GiladBracha_DartANewProgrammingLanguageForStructuredWebProgramming.pdf

Machine Learning on Big Data for Personalized Advertising

Dr. Michale Recce – quantcast

This session details some of the algorithmic choices employed by quantcast when auctioning real-time ad space. The move from static ad space to ads personalized to each user has created interesting mathematical challenges. For the most part, ads are shown to the wrong people. Better targeted ads should provide better return rates.

Wish Lists are a real-time advertiser’s dream. It says “advertise this to me, please!”.

Cookie deletion proves to be an interesting challenge as it adds some inconsistency to the statistical models.

It's only fair to share...
Share on FacebookGoogle+Tweet about this on TwitterShare on LinkedIn

Leave a Reply