I have much more experience programming than I do with advanced mathematics, so perhaps this is just a comfort thing with me, but I often get frustrated when I try to follow mathematical notation. Specifically, I get frustrated trying to keep track of what each variable signifies.

As a programmer, this would be completely unacceptable no matter how many comments you added explaining it:

float A(float P, float r, float n, float t) {
  return P * pow(1 + r / n, n * t);
}


Yet a mathematician would have no problem with this:


  $A = P\ \left(1+\dfrac{r}{n}\right)^{nt}$
  
  where
  $A$ = final amount
  $P$ = principal amount (initial investment)
  $r$ = annual nominal interest rate (as a decimal)
  $n$ = number of times the interest is compounded per year
  $t$ = number of years


So why don't I ever see the following?

$\text{final_amount} = \text{principal}\; \left(1+\dfrac{\text{interest_rate}}{\text{periods_per_yr}}\right)^{\text{periods_per_yr}\cdot\text{years}}$

I think one reason is that often one does not want to remember what the variable names really represent. 

As an example, when we choose to talk about the matrix $(a_{ij})$ instead of the matrix $(\mathrm{TransitionProbability}_{ij})$, this expresses the important fact that once we have formulated our problem in terms of matrices, it is perfectly safe to forget where the problem came from originally -- in fact, remembering what the matrix "really" describes might only be unnecessary psychological baggage that prevents us from applying all linear-algebraic tools at our disposal. 

(As an aside, have you ever seen code written by a mathematician? It very often looks exactly like your first example.)
