At the most coarse, generic level, perhaps. But there's been huge amounts of research both academically and industrially into, for example, how to structure functional programs, how to manage side effects, and working within concurrent/distributed/asynchronous environments. Saying that nothing new has happened in programming languages since the 1960s because the major paradigms had all been discovered already is like saying nothing new has happened in automotive design since the 1960s because private vehicles still usually have 2 or 4 wheels.
Corrections welcome...
You're cool.
Most think ML[0] did it first, and dare I say did it right first. It gets rid of entire categories of boilerplate (interfaces come to mind) because types are fully inferred. In other words, if `funpost(request)` uses .User, .Body, .Time, from request, the only requirement is that the 'request' object has those properties with correct types further down the chain in usage. Other languages can do this but not typically to the degree in ML's type system (known as Hindley-Milner [1]). There are times it can't quite figure it out but it is, again, less frequent than in others.
[0] - https://en.wikipedia.org/wiki/ML_(programming_language) [1] - https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_sy...