<p>In natural sciences, say Physics, its all about discovering things that are already there, the Holy Grail being the Theory of Everything. Although the journey towards the TOE is still a long way ago, we believe we can achieve it maybe a thousand years later. So physics, strictly speaking, has a grand finale.</p>
<p>But how about computer science, is computer science all about discovering, or is it more about development/invention (Artificial Intelligence) than discovering (Complexity Theory)?</p>
<p>Or is it a blend of both?</p>
<p>I think the distinction you’re making between the terms is just semantics. On the more theoretical side, you’re “discovering” things we didn’t know about CS, and on the practical side, you’re “inventing” new things using CS. Either way, in the end we’re just furthering our understanding.</p>
<p>Keep in mind that Physics makes use of its discoveries in order to invent new ways to do things. So the distinction is moot.</p>
<p>“Discovery” in its purest sense means that you’ve found something that was already there, so only natural sciences will lend themselves to this kind of “discovery.” But there are other types of discovery. Math is full of discovery. Euler’s identity, that’s a discovery. Texture-mapping and ray-tracing, those are discoveries of a sort.</p>