We can discuss about this statement, but finally everybody has to decide by himself what may be the best for him.In the meantime, as I mentioned to Birgitta I still won't create a VIEW if it's only used in one program, and in that case using externally described fields to build the data structure is perfectly fine.
Those statement "I only use it in a single program" may be true today, and may be true tomorrow, but in 6 month someone decides that the result has to be downloaded with Excel or must be displayed in a web application or the java programmer has to consume the same data.
What unfortunately happens mostly, the complete SQL statement is copied (it's only only another program). ... and 1 year later the data is needed in another environment (only another program!)
An now imagine, you have to modify something, you have to find all occurrences of your SQL statement and modify it in all environments.
If you had a view, you'd simply have to modify the view.
I never state "I only need it in a single program", but "I expect it may be used in multiple programs". In this way I decide to create and use views.