My vote would go to Factor[1], a Lisp-like language with Forth syntax. Factor is interesting because its an extremely powerful language with many high-level features, concatenative syntax and powerful (smalltalk inspired) development tools. It supports the usual Forth constructs, as well as higher level ones borrowed from Joy, Lisp-style macros, local variables (significant because the language is stack based), optional infix syntax and much much more. The compiler is included in compiled binaries too, so you can generate code at runtime and have it be automatically compiled. Finally, it has an extensive, clean and unit tested library - not bad for a 6 year old language!<p>Failing that, I'd choose Erlang, since multi-core programming is so important nowadays; or Oz, which is a powerful multi-paradigm language. If none of those are to you're liking, I'd suggest looking at a dataflow language, just because they're different (and, in theory at least, they deal exceptionally well with multi-core).<p>Alternatively, you could go for something completely different: Applied Type System[2]. In this language, data types play a front stage role in programming and the language provides a powerful system for defining rich data types. It supports functional, imperative, concurrent and modular programming styles and boasts to be as efficient as or more efficient than C.<p>[1] <a href="http://factorcode.org/" rel="nofollow">http://factorcode.org/</a><p>[2] <a href="http://www.cs.bu.edu/~hwxi/ATS/ATS.html" rel="nofollow">http://www.cs.bu.edu/~hwxi/ATS/ATS.html</a>