I don’t know that I have a “favorite” programming language.
What I use for getting everyday things done: Python, with a bit of shellscript for the really quick things. Why? Because I know it well. I learned Python years ago because it had libraries I needed, kept using it because it got the job done, and then worked for many years at an employer where it was one of the Officially Approved Languages.
What I mess around with, when I’m messing around with code recreationally: currently Elm. Why? Because functional reactive programming is a freaking awesome idea, and Elm makes it actually make sense. Also, whereas Python supports antigravity out of the box, Elm supports time travel.
What I would use if I needed to write code that would run fast and handle user traffic: Go. Why? Because it is efficient, safe (from buffer overflows and the like), and makes concurrency really easy. There’s not really any such thing as high-performance code without concurrency these days. Safety matters a lot, too — the last project I wrote in Go was an SSH honeypot to log the usernames and passwords that attackers try. It helps that Go code is clear enough that I could actually read enough of the crypto libraries to have confidence that I wasn’t going to regret it.
Other languages I like for one reason or another: Haskell and Lisp, for expressing two deeply contrary ideals on what programming is.
I don’t know that I have a “favorite” programming language.
What I use for getting everyday things done: Python, with a bit of shellscript for the really quick things. Why? Because I know it well. I learned Python years ago because it had libraries I needed, kept using it because it got the job done, and then worked for many years at an employer where it was one of the Officially Approved Languages.
What I mess around with, when I’m messing around with code recreationally: currently Elm. Why? Because functional reactive programming is a freaking awesome idea, and Elm makes it actually make sense. Also, whereas Python supports antigravity out of the box, Elm supports time travel.
What I would use if I needed to write code that would run fast and handle user traffic: Go. Why? Because it is efficient, safe (from buffer overflows and the like), and makes concurrency really easy. There’s not really any such thing as high-performance code without concurrency these days. Safety matters a lot, too — the last project I wrote in Go was an SSH honeypot to log the usernames and passwords that attackers try. It helps that Go code is clear enough that I could actually read enough of the crypto libraries to have confidence that I wasn’t going to regret it.
Other languages I like for one reason or another: Haskell and Lisp, for expressing two deeply contrary ideals on what programming is.