We’re seeing again and again that we’re not seeing Lisp as the language for object-oriented programming, or Haskell, or Erlang, which are all incredible languages on the server, but haven’t fit well to these ideas.
The problem OOP solves is code organization. It gathers like functions and data together in the same place. It’s somewhat intuitive because real world objects mostly work this way - alike things are usually gathered together. There are many downsides to this approach as well, but we as programmers have become used to them. Not knowing any other way we assume these difficulties are intrinsic to programming. There’s nothing keeping functional systems from comprising graphical interfaces, but organizing code as objects makes less sense in functional languages. I think Aaron misses a bit on that note.
Modern GUIs were invented in imperative languages and all the tactics and patterns used to create GUIs are tightly coupled with OOP. I think we are in functional GUI’s infancy right now and in the next coming years we’ll see functional solutions that are easier to work with than their OO counterparts. The biggest hurdle is lack of supporting libraries in computational geometry (spatial maps, triangulating/decomposing polygons, etc). We’re getting there though and the concepts are new and exciting, at least in my opinion.