I have been looking for alternatives for a long time. The alternative should:
- have good libraries
- have good interface to libraries written in C
- have support for threads
- be small
- have good performance
- not have many dependencies to operating system libraries
- it should be possible to make closed-source programs with it
I have looked at Smalltalk, Erlang and Python.
Smalltalk has good libraries and the Smalltalk virtual machines tend to have very few outside dependencies. The Smalltalk I'm best familiar with, Squeak, has no support for threads and seems to interface somewhat badly to the outside world. I was especially disappointed by its support for running subprocesses and controlling them. Also, it is pretty much impossible to make closed-source software with Squeak. All the source is included in the image or can be reverse-engineered easily.
Erlang is an even more niche language than Smalltalk. There aren't many other people using it. Erlang is difficult to extend with libraries in C. Apparently not many C libraries can easily live with the extreme parallelism and thousands of light-weight processes a typical Erlang environment looks like. OTOH Erlang has good support for running subprocesses and communicating with them. Erlang sucks particularly bad in performance, unless your problem parallelizes to the extreme and you have the hardware to support it. For the more conventional cases Erlang is probably not a performance booster.
Python is sexy but slow. Python is also mostly single-threaded. It has threads but only one of them can execute in the interpreter at once.
Java is very un-sexy and also very slow. It has good thread support but it is a huge bloated monster.
All the languages above are very big. I call it very big if the customer has to install 30+ MB of language support/runtime/virtual machine to deploy a piece of software.
At the moment it looks to me like C++ or Objective-C would be the solution. Also there is this thing called Haskell, but I haven't looked into it sufficiently to have any idea how it stacks up with the contenders above.