I learned that because synthetic detergent doesn't make strong dative bond with Ca^2+ or Mg^2+ , you could use it in hard water.
But I couldn't understand why soap makes strong dative bond and synthetic detergent doesn't.
For example why -SO3^- doesn't make strong enough dative bond to make scum with  Ca^2+?