A developers toolbox should include:
- A Statically typed language
- A Dynamically typed language
- A scripting language
This can be less that 3 different languages.
You also need to know when to use each of them.
Currently my go-tos are:
3. Bash or Powershell
Groovy is a halfway house. You can use @CompileStatic to enforce the parts that you want. It has enough types to allow Intellij to perform essential refactorings.
Elixir is a concurrency-oriented language that is dynamically typed and functional.
Bash is great for glueing together small unix utilities. You can get a long way using sed, awk, grep, jq and curl.
For interactive investigation of systems there is always the powershell REPL.