Why do engineers use the Z-transform and mathematicians use generating functions? For a (complex valued) sequence $(a_n)_{n\in\mathbb{N}}$ there is the associated generating function
$$
f(z) = \sum_{n=0}^\infty a_nz^n$$
and the $z$-Transform
$$
Z(a)(z) = \sum_{n=0}^\infty a_nz^{-n}$$
which only differ by the sign of the exponent of $z$, that is, both are essentially the same and carry the same information about the sequence, though encoded slightly differently. The basic idea is the same: associate a holomorphic function with the sequence and use complex calculus (or formal power series).
However, the engineering books I know which treat the $Z$-transform do not even mention the word "generating function" (well one does but means the generator of a multiscale analysis...) and the mathematics books on generating function do not mention the $Z$-transform (see for example "generatingfunctionology").
I am wondering: Why is that? Has one formulation some advantage over the other? Or is it just for historical reasons?
(BTW: There is not a tag for the $Z$-transform, and the closest thing I found was "integral-transforms"...)

Given a sequence of numbers $\{x[n] \colon n \in \mathbb Z\}$ the $z$-transform
is defined as 
$$X(z) = \sum_n x[n]z^{-n}$$ which when evaluated at $z = \exp(j\omega)$
(where $j = \sqrt{-1}$ is what electrical engineers typically use for
what mathematicians denote by $i$) gives 
$${X}(\exp(j \omega)) = \sum_n x[n] \exp(-j\omega n)$$
which is called the 
discrete-time Fourier Transform (DTFT) of the sequence.  Engineers view this as
slightly easier to use and remember than evaluating the generating function
$$\hat{X}(D) = \sum_n x[n]D^{n}$$ (where $D$ denotes delay) at 
$D = \exp(-j\omega)$ to arrive at the same result.  So, it is essentially a matter of convention.
