The topic of this post can be summarized in one line as: "One man's theory is another man's application", or alternatively, "One man's platform is another man's app".
Let me elaborate, first using CS research and then using software as examples.
In CS research (and may be in other fields too; I just happen to know a bit about CS), there's a spectrum of research from the purely theoretical (that almost belongs in a Math dept) to the ridiculously applied (which basically belongs in a software company). Whats funny though is how folks working at any point in that spectrum view the fields "upstream" and those "downstream". I'll illustrate with a section of the spectrum that I am most familiar with (without saying anything about the extremities of the spectrum). Mathematicians who do pure Math take great pride in it and look down upon applied research as something best left for lesser mortals. However, logicians (e.g. Godel, Boole, etc.) would argue that each field of Math is nothing but the application of logic to a set of axioms (e.g. the fundamental axioms of algebra, or of Euclidean geometry, etc.). Similarly, CS theory folks take great pride in working on very abstract models (e.g. modelling a communication network as a graph, modeling text documents as points in n-dimensional space, etc.) and not worrying about "implementation details" that they leave for systems folks to deal with. However, Mathematicians think of CS theory as being utterly applied stuff since they are only concerned with existence problems (e.g. "is there is prime number between any n and 2n?") whereas theorists ask "implementation" questions like "can we find a prime between n and 2n
efficiently?". Similarly, database researchers work on "database theory" problems like indexing, privacy, etc. but don't worry about implementing any of their results in a real database systems (they leave those "implementation details" to software engineers aka code-monkeys). And on it goes...
A very analogous situation exists in the software world where one man's platform is another man's app. For example, at Amazon there is a Website Platform group that is tasked with running the fleet that hosts the retail website. All the website features work as apps on top of the platform which provides basic services (monitoring tools, deployment systems, etc.) to all app owners. However, the website platform (called Gurupa) is itself an app running on the Linux box. And the deployment tools etc. that they build are built on top of compilers, linkers, and other linux apps. And those apps are themselves running on top of the linux OS. And on it goes...
In each case, there is a healthy tension between folks working on systems upstream v/s downstream. The platform folks think that engineers who write apps don't care as much about performance as they should, their badly-engineered systems break the platform, etc., whereas the app-writers think that they're working on the coolest problems and running the platform is just leg-work, neither realizing that the platform folks are really the app-folks for someone further upstream and the app-folks are writing a platform for someone downstream.
It is fun to conjecture what lies at the extremities of this spectrum. May be it is
turtles all the way down...