Yes, different languages are made for different purposes. The concept of low-level and high-level is relative to the task. When writing systems applications you reach for C, C++, whereas for server code you might reach for Scala, Elixir, and obviously you have the platform-specific languages such as Obj-C. When you want to verify your code formally, you might reach for Coq or Isabella, writing theorem provers usually in Standard ML or OCaml.
Furthermore, the tools you use mold your way of thinking. That's why teaching Haskell as an introductory language is a better choice than Java.