That's a real can of worms. There are tons of different notions of differentiability for functions lacking classical smoothness: the Gateaux derivative, the weak derivative, the distributional derivative, the directional derivative, the subgradient (for convex functions), Clarke's generalized gradient, Hadamard differentiability, Bouligand differentiability, the metric derivative and the upper gradient to name a few. All these notions can't be ordered by "generality" in any way I am aware of. And there are even notions of differentiability for set-valued maps...

I think the reason for the large number of notions is that differentiability has distinct motivations: local approximation by a simpler structure (e.g. by linear maps (add some sort of continuity if you like)), measuring the rate of change (add a notion of direction if you like), inverting the process of integration in some sense, finding descent directions for optimization, an algebraic ruleset for polynomials…

Oh, and you may want to have a look at this answer which contains 12(!) more notions of differentiability.