I have some functions that work on strings for some business logic.
Should I put them as normal functions in helper files and access them as:
custom_function(my_var)
Or is it better to extend the string class and access them as:
my_var.custom_function
I find extending built-in objects like that confusing. You move from project to project and wonder why you cannot do my_var.foo only to realize that foo was a function that your colleague wrote.
Just imagine you added extension methods indiscriminately. Now you have to copy a block of code from one project to another and spend time scratching your head about the extension methods.