A difference is that SVC always solves the kernelized / dual problem. Ridge solves the primal problem if more appropriate and supports different solvers.

Another difference is that the divide between SVC and LinearSVC historically is more due to the fact they originate from 2 different libraries (libsvm and liblinear) rather than for well thought reasons.