One thing we need to learn to accept is that no tool is ever perfect. What is optimal for building applications may get in the way when doing embedded work. An outstanding teaching language may not be efficient enough for experts. There are many different situations we'll encounter as programmers. Not every can be resolved with the same set of tools, so the more we have available (and understand!), the better.