> What does the discrete version get you? What are its applications to CS?
Everything! When you are programming a computer, everything must be discrete. If you need any differential geometry, it is discrete differential geometry then. You may want to hide this fact and pretend that your stuff is continuous, but at some point you will be computing derivatives by evaluating a function on nearby points. In that case, discrete differential geometry tells you which weights to put in your difference scheme.
> If you need any differential geometry, it is discrete differential geometry then
This is a bit oversimplified/exaggerated.
We need to use discrete bits in our representation for a computer, but our numbers can be the coefficients of continuous functions or relations (e.g. polynomials or trigonometric polynomials), and so it is possible to represent continuous functions to whatever precision we have compute resources to handle without “discretizing” per se.
Everything! When you are programming a computer, everything must be discrete. If you need any differential geometry, it is discrete differential geometry then. You may want to hide this fact and pretend that your stuff is continuous, but at some point you will be computing derivatives by evaluating a function on nearby points. In that case, discrete differential geometry tells you which weights to put in your difference scheme.