Implementing intepreters is cool. But the key value of studying compilers is that it provides you with the tools to build robust, extensible input processing (and, to a slightly lesser extent, data processing and output) code. If programmers are confident with using regular expressions and context-free grammars as appropriate, even if it's just coding up recursive descent parsers, I think they can produce much better input processing in their software.
And a large quantity of software needs to parse input, and possibly turn it in to different output, at some point in its execution.
Comments
I would bump up compilers to their own level.
Implementing intepreters is cool. But the key value of studying compilers is that it provides you with the tools to build robust, extensible input processing (and, to a slightly lesser extent, data processing and output) code. If programmers are confident with using regular expressions and context-free grammars as appropriate, even if it's just coding up recursive descent parsers, I think they can produce much better input processing in their software.
And a large quantity of software needs to parse input, and possibly turn it in to different output, at some point in its execution.