why this is necessary?
In my own experience, people who only know one or the other often end up with gaping holes in their skillset. One I see a lot even yea verily here on HN is people who only work with dynamic scripting languages do not realize just how slow their languages are, and pour vast amounts of ultimately wasted effort into speeding their scripting language up when the answer is to stop using them. On the flip side, people who know only a static language, and it's often only one static language, tend to have serious tunnel vision in general about software engineering; I would almost say it's like they don't so much know how to "program" as to drive their IDE in that one language. These people are often the worst about whatever the dogma is in their particular language and will end up driving themselves mindlessly off a cliff, even in their "native" language, when solving problems their dogma doesn't work well for. Example: The thing we've almost all seen with Java codebases that have patterns freaking everywhere, but where they aren't actually doing anything; the factoryfactory that only ever constructs one type of thing in the end, the template code pattern that has only one thing in the code that uses it, etc.
Having at least that much diversity in your language toolkit helps you escape the sort of thing Dijkstra was talking about with how BASIC was ruining people. The effect he was really observing is that in general, if you only have one language, and especially if you spend too much time in that one language before branching out, you tend to start mistaking the details of your language for the foundational reality of computing, and that causes all sorts of "difficult to characterize well in an HN post" problems for you. In Dijkstra's day, that happened to be BASIC, but today there are many languages that can cause that problem. Perhaps Javascript is the leader, not because of any specific characteristic of the language itself but because it is relatively easy to be a "web programmer" and never end up branched out into anything else. I see the negative effects of this from a bunch of people who think that the JS solution is the only solution, and can't even process the idea that if another language does it some other way, there may in fact be reasons for that and it may be a better solution in some ways. I wish that were sarcasm, but it really isn't, it's experience from helping people online.