Note that throughout this WSDL, er, CORBA, SOA, er, Distributed Objects, er, Erlang thingy, note one thing:
All the languages we'll be using in this brave new world, er, suck at it, except for, er, Erlang and Lisp.
Smalltalk is not even set up well for this approach. Lisp is as good as Erlang in this regard because:
- The syntax is conducive to extending it for anything, especially pattern matching.
- Classes are not required to define everything.
- Several Lisp implementations support Erlang-scale processes, or nearly so.
- The "core" syntax can be redefined *easily* to handle (or disallow) global references, etc. as desired.
Smalltalk would be a reasonable choice, aside from the somewhat awkward syntax for pattern matching because:
- The syntax is simple.
- Tools can be defined to easily define classes, including patterns, for you.
- The "core" mechanisms, even the compiler, can be redefined easily to handle (or disallow) global references, etc. as desired.
Can't do much of this at all in the popular Java-like languages. They lose again.
Could do some of this in Python and Ruby though. The four better dynamic languages: Lisp, Smalltalk, Python, and Ruby.