Differential 0-forms are ordinary scalar functions. We measure the change via a 1-form differential. $d\phi(X)$: $d\phi$ is a differential 1-form applied to a differential 1-vector $X$. $D_X\phi$ is the directional derivative of $\phi$ along $X$. In coordinates: $d\phi(X) := {\partial \phi\over \partial x^1} dx^1 + ... + {\partial \phi\over \partial x^n} dx^n$

$<\nabla\phi,X> = D_X\phi$: The gradient is the vector field $\nabla \phi$ such that the inner product with any vector field $X$ gives the directional derivative of $\phi$ along $X$. $d\phi(X) = D_X\phi$: The differential is the 1-form $d\phi$ such that applying $d\phi$ to $X$ gives the directional derivative of $\phi$ along $X$. The gradient is a vector field while the differential is a 1-form. In coordinates: $\nabla\phi = {\partial \phi\over \partial x^1}{\partial \over \partial x^1} + ... + {\partial \phi\over \partial x^n}{\partial \over \partial x^n}$ A linear combination of the basis vector fields with the partial derivatives of $\phi$ as coefficients. $d\phi(X) := {\partial \phi\over \partial x^1} dx^1 + ... + {\partial \phi\over \partial x^n} dx^n$ A linear combination of the basis 1-forms with the partial derivatives of $\phi$ as coefficients. We can define the differential in the absence of an inner product. For example, when we don't have a geometry associated with our space, we have a notion of differential but not the gradient. In the discrete setting, we can define the differential knowing only the connectivity of the mesh. If we want to know the gradient, we have to know something like the vertex positions or the edge lengths.