There was a retired software Eng professor that I had heard two very non-controversial rumors about:
1) He got his PhD in Numerical Analysis
2) He got his PhD in Compiler Optimization.
So I asked him which was true.
The answer: Both! In those days you had to optimize your code to get your NA code to run fast enough.
We cannot imagine that anymore. Or at least I cannot.
Over time the fields of computer science advance more so its hard to be master of more than one field. But its not that simple: there has been work recently applying Machine Learning to... well
everything really. Even so, I think the trend is more towards separation. Or perhaps it oscillates.
I am NOT going to be the grumpy old man (Google once thought I was 70, see here) who says things were better in my day when the fields were closer together. But I will ask the question:
1) Are people more specialized new? While I think yes since each field has gotten more complicated and harder to master. There are exceptions: Complexity theory uses much more sophisticated mathematics then when I was a grad student (1980-1985), and of course Quantum Computing has lead to more comp sci majors knowing physics.
2) Is it good for the field that people are specialized? I am supposed to say that it is terrible and that great advances are made when people are interdiscplinary. But there are many more small advances that are made by someone who has a mastery of one (or two) fields.
3) The PhD Process and the Tenure Process encourage specialization. This I think IS bad since there are different modes of research that should all be respected.'