To be sure, you face an embarrassment of riches. There are so many interesting new programming languages these days, it’s tough to know which way to go.
The newer languages, of course, lack a mature ecosystem and a large user community, both of which are valuable assets. You also don’t know how strong their future will be.
Naturally, I have a bias toward Smalltalk, but languages like Elixir and Elm certainly do have their attractions. Nevertheless, I’m going to argue that Smalltalk is the best choice.
First of all, Smalltalk has been around a long, long time (44 years!). This speaks to its incredible staying power. Smalltalk has been used commercially for decades and is still used by companies that want a “secret weapon.” (Check out Who uses Smalltalk?)
While the user community remains relatively small, it is very active and dedicated, especially the Pharo people. Just recently, I learned about this fantastic Pharo MOOC that was held earlier this year!
I know there is increasing hype these days about FP, but I believe it’s not going to replace OOP. OOP remains the chief paradigm in the IT industry and it is extremely entrenched. However, FP and OOP can coexist; each have its appropriate application.
Smalltalk is provably the most productive programming language in the world. While this is a statistical assertion (and YMMV), it is consistent with Smalltalk’s strong reputation in this regard.
Not only is Smalltalk productive, it’s also very scalable. After all, it was used by the U.S. joint military to write a million-line battle simulation program called JWARS. This program actually outperformed a similar simulation written in C++ by the U.S. Air Force called STORM!
Smalltalk is so flexible and easy to use that it’s ideal for startups that need to prototype their applications and try out new ideas. I know Python and Ruby are popular for this, but I’ll take Smalltalk over them any day!