Mostly what made me switch was driven by what my employer wanted me to do.
So over time my main programming language went through (ignoring recidivism duplicates)...
BASIC
Assembly
C
C++
Objective-C
C#
TypeScript
For fun, I've also significantly used Python, Swift, F#, D, Lua.
Also for fun and/or job related, I've worked with many different languages at least a little bit. Pascal, Object Pascal / Delphi, Perl, LISP, Scheme, FORTRAN, SmallTalk, Squeak, REXX, Rust, Ruby, JavaScript ES6, CoffeeScript, Elm, GorillaScript, MATLAB, Transact-SQL, Awk, Prolog, and probably a lot more that I've forgotten about.
Usually a critical factor is that certain languages are the premier language for a given platform. So if I am working on the JVM platform, Java is a likely "must learn" language even if the project were Clojure or Scala based (I haven't learned those yet, but they're in my queue). Or if my platform is iOS, then Objective-C and now Swift are the "must learn" languages.
Mostly what made me switch was driven by what my employer wanted me to do.
So over time my main programming language went through (ignoring recidivism duplicates)...
For fun, I've also significantly used Python, Swift, F#, D, Lua.
Also for fun and/or job related, I've worked with many different languages at least a little bit. Pascal, Object Pascal / Delphi, Perl, LISP, Scheme, FORTRAN, SmallTalk, Squeak, REXX, Rust, Ruby, JavaScript ES6, CoffeeScript, Elm, GorillaScript, MATLAB, Transact-SQL, Awk, Prolog, and probably a lot more that I've forgotten about.
Usually a critical factor is that certain languages are the premier language for a given platform. So if I am working on the JVM platform, Java is a likely "must learn" language even if the project were Clojure or Scala based (I haven't learned those yet, but they're in my queue). Or if my platform is iOS, then Objective-C and now Swift are the "must learn" languages.
All the love for Basic. My first as well =)