In my experience so far most languages I've encountered have been similar enough that language choice mostly comes down to "Does it have the APIs I need" and "Do I like the tooling." There are a handful of exceptions where the capabilities of the language are fundamentally different enough to provide a competitive edge.
- Systems languages with manual memory management, like C or Zig, where real-time/low-latency performance is important.
- Rust and its borrow checker, as an alternative to manual memory management.
- A strongly FP influenced language such as a Lisp or Haskell. Especially Lisp macros. Exceptionally good for working with structured data in cases where purity is more important than performance.
- The BEAM/OTP architecture for distributed systems (Erlang/Elixir).
- Languages with good CUDA/PTX/Vulkan support, for programs that need the GPU.
- Assembly. This was a much bigger deal in the past before compilers got good. Today good mostly for educational purposes.