A Change in Perspective In this challenge you will write a piece of text which when viewed from two different angles will create two different programs.
Your string as viewed from above must take a string containing only characters ASCII 10, 32 - 126 and output it as viewed from above.  Additionally your program when viewed from the left must take a string containing only characters ASCII 10, 32 - 126 and output it as viewed from the left.
A string viewed from above will be the first non-space character in every column of the string, or a space if no such character exists, in the order of the columns.
Here is a Haskell program that implements this:

stitchZip (' ' : b) (c : d) = c : stitchZip b d
stitchZip (a : b) (c : d)   = a : stitchZip b d
stitchZip [] x = x
stitchZip x [] = x

main = getContents &gt;&gt;= (putStr . foldr1 stitchZip . lines)

Try it online!
A string viewed from the left will be the first non-space character in every row of the string, or a space if no such character exists, in the reverse order of the rows. We reverse the order of the rows since our left hand would be towards the bottom of the string.
Here is a Haskell program that implements this:
stitch ' ' y = y
stitch x y = x

main = getContents &gt;&gt;= (putStr . reverse . map (foldl stitch ' ') . lines)

Try it online!
Your program may use characters outside of that ASCII range, but for layout purposes all characters (other than newlines) are considered to have a width of 1.  As a side effect of how the views work, your programs cannot have newlines in them (although your string almost certainly will).
Scoring
Your score will be the number of non-space characters in your submission plus the number of space characters that appear in the two programs.
For example if your program were:
sc  e ex mp e
g
        a
   r

d
           l
  o

you would score 16 since there are 14 non whitespace characters in the submission, and each program (score example and old rags) has 1 space.
Your goal is to have as low a score as possible.
Jelly, score 9 + 0 = 9

 Z
       ⁶
      €
     ɗ
    o
   Ḣ
  ḟ
 Ṛ
Ỵ


From the top:

ỴZḟḢoɗ€⁶


Try it online! (or see it self-operate)

From the side:

ỴṚḟḢoɗ€⁶Z


Try it online! (or see it self-operate)

How?

Ỵ Z|Ṛ ḟḢoɗ€⁶ [Z]  - Link list of characters:
Ỵ                 - split at newline characters
  Z               - | top: transpose to get columns
    Ṛ             - | side: reverse the lines
           ⁶      - set the right argument to a literal space character
          €       - for each (x = column (top) OR line (side)):
         ɗ        -   last three links as a dyad - i.e. f(x, space)
      ḟ           -     filter discard (spaces from x)
       Ḣ          -     pop &amp; yield the head (first remaining character or 0 if none left)
        o         -     logical OR (with space character) (replace a 0 with a space)
                  - | top: no code remaining
              Z   - | side: transpose (at this point a no-op since we have a flat list)