Keynotes at JAOO Brisbane 2008

 

Why Functional Programming (Still) Matters

Speaker: Erik Meijer

Time: Thursday 09:00 - 10:00

Location: Ballroom Le Grand 3

Abstract: In 1984, John Hughes wrote a seminal paper "Why Functional Programming Matters" in which he eloquently explained the value of pure and lazy functional programming. Due the increasing importance of the Web and the introduction of many-core machines, in the quarter century since the appearance of the paper the problems associated with effectful imperative languages have reached a point where we hit a brick wall. We argue that fundamentalist functional programming, that is radically eliminating all side-effects from our programming languages, including strict evaluation, is what it takes to conquer the concurrency and parallelism dragon. We must embrace pure lazy functional programming "all the way," with all effects apparent in the type system of the host language using monads. Only a radical paradigm shift can save us, but does that mean that we will lose all current programmers along the way? Fortunately not. By design, LINQ is based on monadic principles. The success of LINQ proves that the world does not fear the monads.

 

 Simplicity in Design

Speaker: Erik Dörnenburg & Martin Fowler

Time: Thursday 17:30 - 18:30

Location: Ballroom Le Grand 3

Abstract: The problems we are looking to solve with software are becoming increasingly harder and more complex, but how do we best deal with this complexity? Martin and Erik will argue that the answer is simplicity. More than twenty years ago Fred Brooks identified accidential complexity, that is complexity that is not inherent in the problem but is caused by the approach we have chosen, as the only area left where significant gains in productivity could be made. So, if we manage to achieve simplicty in design and approach we can successfully tackle the real complexity of the problem we are solving. What we have seen, though, is that it is anything but easy to achieve simplicity. All too often we end up with designs that are either too simplistic or too complicated. The real skill in designing software lies in finding a good middle ground.

 

 

Clean Code

Speaker: Robert C. Martin

Time: Friday 09:00 - 10:00

Location: Ballroom Le Grand 3

Abstract: What does it mean to be a professional software developer? What rules do we follow? What attitudes do we hold? And how can we maintain our professionalism in the face of schedule pressure? In this talk Robert C. Martin outlines the practices used by software craftsmen to maintain their professionalism. He resolves the dilemma of speed vs. quality, and mess vs schedule. He provides a set of principles and simple Dos and Don'ts for teams who want to be counted as professional craftsmen.