In my few months of studying group cohomology, I've seen two "standard" complexes that are introduced:
- We let $X_r$ be the free $\mathbb{Z}[G]$-module on $G^r$ (so, it has as a $\mathbb{Z}[G]$-basis the $r$-tuples $(g_1,\ldots,g_r)$ of elements of $G$). The $G$-module structure of $X_r$ comes by virtue of being a $\mathbb{Z}[G]$-module.
The boundary maps $\partial_r:X_r\to X_{r-1}$ are
$\partial_{r}(g_1,\ldots,g_r)=g_1(g_2,\ldots,g_r)+\sum_{j=1}^r(-1)^j(g_1,\ldots,g_jg_{j+1},\ldots,g_r)+(-1)^r(g_1,\ldots,g_r)$
- We let $E_r$ be the free $\mathbb{Z}$-module on $G^{r+1}$ (so, it has as a $\mathbb{Z}$-basis the $(r+1)$-tuples $(g_0,\ldots,g_r)$ of elements of $G$). The $G$-module structure of $E_r$ is defined by $g(g_0,\ldots,g_r)=(gg_0,\ldots,gg_r)$. The boundary maps $d_r:E_r\to E_{r-1}$ are
$d_{r}(g_0,\ldots,g_r)=\sum_{j=0}^{r}(-1)^j(g_0,\ldots,\widehat{g_j},\ldots,g_{r})$
We may then proceed to compute the cohomology of $G$ with coefficients in a $G$-module $A$ using $0\to \text{Hom}_G(X_0,A)\to\text{Hom}_G(X_1,A)\to\cdots$ or by using $0\to \text{Hom}_G(E_0,A)\to\text{Hom}_G(E_1,A)\to\cdots$ Elements of $\text{Hom}_G(X_r,A)$ are "inhomogeneous cochains" and elements of $\text{Hom}_G(E_r,A)$ are "homogeneous cochains". In either case, all that matters is what happens to the basis elements, so really we can say that an "inhomogeneous cochain" is a function $f:G^r\to A$, and that a "homogeneous cochain" is a function $f:G^{r+1}\to A$ that satisfies $f(gg_0,\ldots,gg_r)=g\cdot f(g_0,\ldots,g_r)$.
Lang defines them both in his Topics in cohomology of groups, and says
... we have a $\mathbb{Z}[G]$-isomorphism $X\xrightarrow{\approx}E$ between the non-homogeneous and the homogeneous complex uniquely determined by the value on basis elements such that $(\sigma_1,\ldots,\sigma_r)\mapsto (e,\sigma_1,\sigma_1\sigma_2,\ldots,\sigma_1\sigma_2\ldots \sigma_r)$
but Serre defines the only the homogenous cochains in Local Fields and then says that a cochain
... is uniquely determined by its restriction to systems of the form $(1,g_1,g_1g_2,\ldots,g_1\cdots g_i)$. That leads us to interpret the elements of $\text{Hom}_G(E_r,A)$ as "inhomogeneous cochains", i.e. as functions $f(g_1,\ldots,g_i)$ of $i$ arguments, with values in $A$, whose coboundary is given by ...
To put it bluntly, my question is: Why are we doing this? I can think of some possible reasons:
Historical - perhaps one way was defined first, now the other is more popular, but the older definition is still included out of tradition.
Practical - perhaps there are important computations that are significantly easier to see or do using one or the other approach, or where it is useful to switch between them for some reason.
Big picture - perhaps there is a high-level interpretation of one or both approaches that ties in with some other field where (co)homology plays a role.
So, what's the real motivation for defining both "homogeneous" and "inhomogeneous" cochains?