Sessions

^ top
Daniel Spiewak, Author, Scala for Java Refugees series
Daniel Spiewak - Author, Scala for Java Refugees series
Tue - 01:30-02:30 PM, Ballroom C
Languages

Of all of the controversial topics in the field of (serious) software development, static typing is probably the most divisive. While the topic leads to fewer homicides than the perennial Vim vs Emacs conflagration, it still arouses passions and anger usually reserved for Gungans and fans of Visual Basic. This talk dives head-long into the controversy and anti-typing rhetoric, looking at things through the lens of a language designer and enthusiastic type theorist. We will explore the many areas in which modern static type systems have failed (often in spectacular ways) and gain a deeper understanding of how future languages can reap the benefits of static typing without being awful.


Presentation
^ top
Dr. Benjamin Pierce, Author, Types and Programming Languages
Dr. Benjamin Pierce - Author, Types and Programming Languages
Tue - 02:45-03:45 PM, Ballroom D
Languages

Robin Milner (1934-2010) was a gentle giant of computer science. Among many fundamental contributions, his insights on the role of types in the theory and practice of programming have been perhaps the farthest reaching. This talk combines a historical perspective on Milner’s early work with a look at how these ideas continue to unfold — in particular, the idea that types constrain not only structure but also behavior. Examples will include abstract and object types, types for concurrent and distributed systems (session and choreography types), and new work on type systems for privacy-preserving querying of sensitive databases.


Presentation
^ top
Douglas Crockford, Senior JavaScript Architect at Yahoo!
Douglas Crockford - Senior JavaScript Architect at Yahoo!
Tue - 10:15-11:15 AM, Ballroom C
Languages

Computer programs are the most complicated things that humans make. They must be perfect, which is hard for us because we are not perfect. Programming is thought to be a “head” activity, but there is a lot of “gut” involved. Indeed, it may be the gut that gives us the insight necessary for solving hard problems. But gut messes us up when it come to matters of style.

The systems in our brains that make us vulnerable to advertising and propaganda also influence our programming styles. This talk looks systematically at the development of a programming style that specifically improves the reliability of programs. The examples are given in JavaScript, a language with an uncommonly large number of bad parts, but the principles are applicable to all languages.


Presentation
^ top
Elika J. Etemad, CSS Working Group
Elika J. Etemad - CSS Working Group
Tue - 04:00-05:00 PM, Ballroom B
Languages
We’ll explore the evolution of CSS’s layout capabilities from CSS 1 to CSS 3 and beyond. Along the way we’ll talk about why equal-height columns were such big a problem, what the CSS Working Group is currently working on, and what challenges are presented by taking print design capabilities and translating them for the Web.
Presentation
^ top
Tony Morris, creator, Scalaz extension to core Scala Runar Bjarnason, Sr. Software Engineer, Capital IQ
Tony Morris - creator, Scalaz extension to core Scala
Runar Bjarnason - Sr. Software Engineer, Capital IQ
Wed - 11:30-12:30 PM, Ballroom D
Languages

In this talk, we take a look at some specific Functional Programming patterns that regularly arise in everyday programming. These patterns are used to solve the same problems that DI attempts to by decoupling data types from their dependencies.

We explore the algebraic properties of these techniques and discover how they give rise to useful programming properties that we may apply in our typical work. This talk focuses on the techniques rather than any particular programming language, since none of these techniques are monopolized by a specific language. Various programming languages will be used for demonstration to emphasize this point; Haskell, Scala, Java and C# for example.

The audience should expect to walk away from this talk with a slight amount of bewilderment, a clear understanding of some FP subjects, but importantly, with the invigorated inspiration to explore these techniques further.


Presentation
^ top
Bill Pugh, inventor, Skip Lists; lead, FindBugs
Bill Pugh - inventor, Skip Lists; lead, FindBugs
Wed - 10:15-11:15 AM, Ballroom C
Languages

FindBugs is a static analysis tool that finds coding mistakes in Java programs. It is widely popular, with more than a million downloads. In a student involving hundreds of engineers at Google, the issues identified by FindBugs were evaluated as should fix or must fix issues 81% of the time. However, many projects and developers use FindBugs on an ad-hoc basis, with individual developers running FindBugs sporadically. Some projects use FindBugs as part of their continuous build system, but find themselves unsure of the return on their investment and wondering if there might be a more effective way to use FindBugs. When first applying FindBugs is a large project and seeing hundreds or thousands of issues, others simply give up on using FindBugs. I’ll briefly review FindBugs, and describe techniques for cost-effective integration of FindBugs into the software development process for medium to huge software projects, with a focus on new features available in FindBugs 2.0. Topics include how to customize FindBugs to prioritize and filter issues important to your project, how to store bug data in a cloud so that everyone working on the project shares information about when the issue was first seen and whether people think the issue is important to fix, and ways to use annotations to help FindBugs detect even more errors in your code.


Presentation
^ top
Joshua Suereth, Software Developer - Typesafe
Joshua Suereth - Software Developer - Typesafe
Wed - 04:00-05:00 PM, Ballroom B
Languages

A talk on general best practices in Scala, taken from real world experience and examples in the book Scala In Depth. This covers everything from what is an implicit to programming with expressions. If you’re not comfortable with the Scala, this talk will show you how to make use of this elegant language in day-to-day situations.


Presentation