Maybe this is an education availability problem? What are you doing to teach the young generation?
I think the article is wrong. Kids if thought today are more intelligent than past generations.
it might be important to separate the hardware and software parts of intelligence.
IQ tests mostly measure the hardware part (pattern recognition, working memory, spatial reasoning, attention to detail, speed, focus, reasoning about abstract rules)
the software part is mostly about applied epistemological rationality, how good one's life strategy is, and how well one can execute that. (of course there's a hardware component to this too. someone with good emotional resilience, low neuroticism, high self-motivation achieves things with relative ease given the opportunities)
then there's a measurement problem. if someone is taught the importance of attention to detail since they were very little, taught to control their emotions better (eg. boredom), then they will likely score better on the hardware test too.
that said our collective knowledge is much greater than decades ago, our teaching methods are better too, but alas not everyone received the same top quality teaching.
plus there is a big issue with the curriculum. most people are tragicomically underskilled in dealing with themselves and other people, hence they are bad at recognizing and solving problems that brutally impact their lives (and the lives of those around them).
aaand of course there's the plain old resource availability problem (everyone inherits, the question is what. advantaged people get advantages with very high probability, disadvantaged people get disadvantages...)
The goal is to make the code write-only and replace it with spec declaration? ... math ppl still cant accept the "x = 1;" statement :)