BTW, functional programming does not impress me at all...
"Programming with the Object Oriented paradigm is creating a program by identifying and modeling the Problem Domain Entities as objects, and then make them collaborate between themselves to solve each problem instance. Programming with the Functional paradigm is modeling the problem as a mathematical problem, and creating a mathematical function (by composing other functions) that for each problem instance, computes the problem solution." (From http://goo.gl/K4U0Nh)
It is unnatural for humans to model the world in a functional way. The world consists of objects, not functions. That's why I've never liked FP.
Be prepared to be surprised. Yes, historically Smalltalk has evolved rather slowly. However, with the Pharo project, Smalltalk is enjoying a resurgence because the project is working vigorously to evolve Smalltalk to the next level. Check back in another year or so and see some major improvements. That's why I say, this is not your father's Smalltalk.
What are the challenges of programming and how does Smalltalk address them? It seems to me that our big challenges are correctness, how we know that our programs meet the specifications; performance, across a wide range of hardware (highly parallel, wide instruction words, low power, embedded, etc.); programmability, this includes expressiveness and ease of learning the language and its fit with the problem domains where it is employed; and finally, maintainability, which entails the life-cycle costs of programs written in the language.
Smalltalk was a very important and influencial language in the history of computing. Is it the future? How does it address these important issues? Spinning some user interface component doesn't impress me. Work on immutable data and STM (ala Clojure) impresses me. Functional programming (e.g. Haskell) impresses me. Large numbers of useful packages (like Python) impresses me. Highly efficient compilers (like modern Fortran, C++, Ada and JITs like Javascript and Lua) impress me. Being able to modify a running program doesn't. How in the world does one untangle the train wreck of all the incorrect intermediate calculations when a program finally produces a wrong answer?
Smalltalk was a darling of the Computer Science community decades ago. Implementations have been around for a long long time (I have still have my Smalltalk/V 286 manual from Digitalk, it ran on my IBM PC-AT). It would surprise me if a language that has evolved as little as Smalltalk has would suddenly, after all these years, be the future of programming. Hasn't it already had it chance?