Über Conf - June 14 - 17, 2010 - No Fluff Just Stuff

Stuart Halloway

Über Conf

Denver · June 14 - 17, 2010

You are viewing details from a past event
Stuart Halloway

President of Cognitect

Stuart Halloway is a founder and President of Cognitect, Inc. (www.cognitect.com). He is a Clojure committer, and a developer of the Datomic database.

Stuart has spoken at a variety of industry events, including StrangeLoop, Clojure/conj, EuroClojure, ClojureWest, SpeakerConf, QCon, GOTO, OSCON, RailsConf, RubyConf, JavaOne, and NFJS.

Stuart has written a number of books and technical articles. Of these, he is most proud of Programming Clojure.

Learn more about Stu's presentations on his wiki.

Presentations

Introduction to Functional Programming with Clojure

Functional programming has many advantages. For starters:

  • Pure functions have no dependence on context, so they are easy to write, easy to test, easy to read. Most importantly, they are easy to combine.
  • Referential transparency makes substitution, caching, and lazy evaluation possible – and simple.
  • Careful abstraction makes functions broadly reusable, in contrast with OO 'concretion' which aspires to encapsulation but mostly just protects your data from being reused.

The Best of OO: Clojure Types and Protocols

The best abstraction in OO is the interface: a pure specification that can the be implemented polymorphically by many different callees. Clojure's types and protocols generalize this idea to solve
the expression problem. In this session you will learn:

  • What the expression problem is.
  • How the expression problem hurts your code every day, through wrappers, mixins, adapters, facades, open classes, and monkey patches.
  • How protocols solve the expression problem.
  • Ease of use matters: using protocols and types are as simple as classes and interfaces.
  • Performance matters too: protocols take advantage of the host environment's support for fast polymorphic dispatch.

Clojure

In recent years, the Java community has embraced a variety of new languages that target the JVM, but also offer productivity advantages over traditional Java coding. In this half-day session you will explore Clojure, a language with many compelling features;

  • Clojure provides all the low-ceremony goodness you know and love from dynamic languages such as Ruby and Python.
  • Clojure's sequence library turns the tables on OO, providing a powerful set of verbs that can work with a small, standard set of nouns.
  • Clojure is a Lisp and gracefully supports Lisp's signature feature: code as data.
  • Clojure's functional style and support for software transactional memory make it an appealing option for taking advantage of massively parallel hardware.
  • Clojure's datatypes and protocols generalize the best idea in OO (interfaces) to handle the expression problem. Say goodbye to wrappers, mixins, adapters, and monkey-patches.

Clojure

In recent years, the Java community has embraced a variety of new languages that target the JVM, but also offer productivity advantages over traditional Java coding. In this half-day session you will explore Clojure, a language with many compelling features;

  • Clojure provides all the low-ceremony goodness you know and love from dynamic languages such as Ruby and Python.
  • Clojure's sequence library turns the tables on OO, providing a powerful set of verbs that can work with a small, standard set of nouns.
  • Clojure is a Lisp and gracefully supports Lisp's signature feature: code as data.
  • Clojure's functional style and support for software transactional memory make it an appealing option for taking advantage of massively parallel hardware.
  • Clojure's datatypes and protocols generalize the best idea in OO (interfaces) to handle the expression problem. Say goodbye to wrappers, mixins, adapters, and monkey-patches.