You can make pretty much anything seem equivalent if you abstract it enough. You&#x27;ve basically just equated MVC with any program that does IO. I can&#x27;t see how that&#x27;s a useful thing to do.<p>Just looking at what you said though: why would you represent a transformation (something inherently a verb&#x2F;action) as a model? &quot;Model - Input -&gt; output format transformation&quot;. It <i>operates</i> on models, it&#x27;s not A model.<p>Also, claiming the view as input&#x2F;output is pretty reductive. How do I represent a lexer as a view? More importantly, why would I want to?<p>Fun experiment, find the views and controllers in here: <a href="https:&#x2F;&#x2F;github.com&#x2F;llvm-mirror&#x2F;clang" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;llvm-mirror&#x2F;clang</a>