Is there any guidance or pitfalls/benefits of using one over another? I see that includes can be done more or less the same way a Macro can be done (certainly for simple variable changes).
An example being with a series of social sharing links. So I currently have the following setup as an include like so;
<ul class="social-list">
<li>
<a href="https://twitter.com//intent/tweet/?text={{ object.title }}&url={{ craft.request.url|url_encode }}&via={{ socialMedia.twitter }}" target="_blank" title="Share on Twitter" class="js-social-share // track-social" data-label="Shared">
<svg role="img" class="icon // icon-social // icon-social--share // icon-twitter">
<use xlink:href="/assets/img/icons.svg#share-twitter">Twitter</use>
</svg>
</a>
</li>
<li>
<a href="https://www.facebook.com/sharer/sharer.php?u={{ craft.request.url|url_encode }}" target="_blank" title="Share on Facebook" class="js-social-share // track-social" data-label="Shared">
<svg role="img" class="icon // icon-social // icon-social--share // icon-facebook">
<use xlink:href="/assets/img/icons.svg#share-facebook">Facebook</use>
</svg>
</a>
</li>
<li>
<a href="https://plus.google.com/share?url={{ craft.request.url|url_encode }}" target="_blank" title="Share on Google Plus" class="js-social-share // track-social" data-label="Shared">
<svg role="img" class="icon // icon-social // icon-social--share // icon-google-plus" class="js-social-share // track-social" data-label="Shared">
<use xlink:href="/assets/img/icons.svg#share-googleplus">Google Plus</use>
</svg>
</a>
</li>
<li>
<a href="mailto:?Subject={{ object.title }}&Body=I%20saw%20this%20and%20thought%20it%20might%20be%20of%20interest! {{ craft.request.url|url_encode }}" title="Share via Email" class="track-social" data-label="Shared">
<svg role="img" class="icon // icon-social // icon-social--share // icon-share-email">
<use xlink:href="/assets/img/icons.svg#share-email">Email</use>
</svg>
</a>
</li>
</ul>
and then calling the file like so;
{% include '_includes/social-sharing' with { object : product } %}
But the same could easily be achieved using a Macro. Something I have previously used for something else, where an include would have also worked.
So is there a best case for when to use a Macro or an Include and what would be better in the above instance and why?
Thanks.