13

I'm reading a programming book and found the following paragraph.

Collections do not usually implement enumerators; instead, they provide enumerators, via the interface IEnumerable:

public interface IEnumerable
{
    IEnumerator GetEnumerator();
}

By defining a single method retuning an enumerator, IEnumerable provides flexibility in that the iteration logic can be farmed off to another class. Moreover, it means that several consumers can enumerate the collection at once without interfering with one another. You can think of IEnumerable as “IEnumeratorProvider,” and it is the most basic interface that collection classes implement.

What does "farmed off" mean? Is it a common English usage? From the context I guess it probably means "moved", but I can't find this it in the dictionary.


Update (3/27/2021)

I've written an email to the author of the book and below is his reply.

Yes, it was intentional. However, "farm out" has more matches on Google, so I'm happy to switch to that.

So it seems "farm off" has its use in some parts of the US.

3
  • 1
    Nothing in that paragraph is common English usage. The meaning is not so much "moved", but that the actual work - that is, the iteration logic - can be done by some subroutine. – jamesqf Mar 26 at 16:28
  • 1
    @Just a learner Jamesqf is so far correct, either "farm off" or "farm out" looks wholly out of place in the paragraph. FYI, "… it seems "farm off" has its use in some places of the US" would seem much more natural as "… it seems "farm off" has its uses in (some) parts of the US". – Robbie Goodwin Mar 28 at 22:35
  • Thanks @RobbieGoodwin for the comment! – Just a learner Mar 29 at 1:23
29

You're thinking along the right track when you say it means "moved." Personally I haven't ever heard the term "farm off;" I think the author probably meant "farm out."

To subcontract (a task, responsibility, etc.) to another; to outsource.

4
  • 17
    The author may have accidentally mixed "farm out" with "palm off". – Robyn Mar 26 at 2:47
  • 7
    I immediately understood "farmed off" as a version of "farmed out". In this case I actually prefer it. Farming-out implies that some other., possibly poorly-paid, person will do it. "Farmed off" feels like saying "it's like farming out, but in a writing-code context". – Owen Reynolds Mar 26 at 2:59
  • 3
    It's something I've heard reasonably often myself, although it's possible (as @Robyn says) that this is conflation of two similar phrases with the same meaning. I just wanted to put in a word for having heard this in the wild. Regardless, the answer is as you say. – Graham Mar 26 at 10:45
  • In the context used here (software), it means "delegate this work to some other player in the system". The IEnumerable and IEnumerable<T> interfaces in .NET are very flexible. The provide an indication that a class acts like a collection. However, how that is implemented is up to the implementer, the consumer doesn't care. The collection-ness might be defined in the class at issue, or it might be done somewhere else (by farming out the work to that other actor). – Flydog57 Mar 27 at 22:46
19

Farmed off is a quite common term from where I'm from, in fact I've also used it a lot in code comments and programmatic documentation. It's a colloquial term similar to outsourcing, but at a more local scale.

To assign to someone or something outside of the immediate or assumed origin of responsibility, A noun or pronoun can be used between farm and off

After finishing the prototype I farmed off the documentation to the support team, they do that stuff all the time.

The use of Farm in the phrase is important, it emphasises that the task will be performed by a lower skilled or experienced operator, or at least to an operator who manages bulk work and operates with lower profit margins or expectations.

  • In Software Engineering, this might refer to the developer, but in OPs context it is more about the context of where the logic will be executed, it will likely have access to less background knowledge but also less need for it:

    the farmer does not need to be told how to manage any individual animal, they manage herds of them and know what they are doing.

Whilst we have described the target, the use of Off specifically implies that you are indifferent about the decision or the transaction but also that there is no undue imposition or burden involved.

This differs to similar usage of the phrase palm off where the operator would still be unapologetic, but may have made false claims, or deliberately concealed information in an attempt to un-burden themselves of the task. To palm something off is to do so in an underhanded way.

If I "Farmed it off", then it was just another regular occurrence or was otherwise a reasonable thing to do. I could do it, but I can't be bothered, they do this stuff anyway, the overall outcome would be the same.

If I "Palmed it off", then I have avoided the responsibility for something that I did not want to do, or had no intention of doing, even though the task was specifically assigned to me. After the fact, if the burden turned out to be greater than I originally expected or intended, you might say that I "dodged a bullet".

In trying to find a citation, the closest reference I can find is Farm Out, I would suggest that off could be swapped out for out and still retain the same meaning, however Farm Out has specific agricultural usage, whereas to Farm Off does not.

I can understand the intent of "Farming out" if used in OP's example but out sounds foreign to me in this context.

6
  • 3
    This is the right answer. The term "farm off" is widely used in software development, maybe more than "farm out". – David Hammen Mar 26 at 13:59
  • 3
    Interesting! May I ask what region(s) you know that this is used in? Also, is your quoted definition coming from somewhere specific, and if so, where? I didn't see anything (other than this question) in an admittedly cursory google search. – Hellion Mar 26 at 14:03
  • 1
    I speak British English and I recognise both 'Farm Off' and 'Farm Out'. To me, 'Farm Out' implies to than the work will be done by more than 1 person/worker other than me and is not derogatory towards the workers, whereas 'Farm Off' implies 1 or more workers and is somewhat derogatory. – William Smith Mar 26 at 23:26
  • @Hellion I'm from Melbourne, Australia. Grew up on a Farm, now in IT. I suspect that the difference between OUT and OFF would fall into the category of British vs US English. – Chris Schaller Mar 27 at 1:30
  • 3
    The author of the book states "farm off" was intentionally used. See my updates. – Just a learner Mar 27 at 12:31
15

I believe this is a mistake or a regionalism on the author's part, and that the more common wording is farm out:

1: to turn over for performance by another usually under contract
farm out a job
2a: to put (someone, such as a child) into the hands of another for care
definition from m-w.com

The class that implements IEnumerable does not need to also implement the actual enumeration process, but can have some other class that actually provides the functionality: the work has been "farmed out" to this other class.

1
  • The only mistake here was to use colloquial vocabulary without respecting the potential reach of their works. – Chris Schaller Mar 26 at 8:14
15

"farmed off to" means transferred to another person or entity.

This phrase goes back to the 1800's.

For example, from the 1877 The Subterranean World at page 372:

The mines of Almaden , after having been the property of the religious knights of Calatrava , who had assisted in expelling the Moors , were farmed off to the Fuggers , the celebrated merchant princes of Augsburg , whose descendants still rank among the high aristocracy of Germany . Afterwards , from the date of 1645 till the present time , they have either been worked on Government account or farmed off to private companies

From the 1968 US House Committee on Science and Astronautics :

President Johnson's suggestion of a technological plan right along the lines of the Marshall plan , with certain sections , say in the space race , farmed off to Europe , and done in a conscious way of trying to build up in Europe the kind of technological community...

From the 2002 Vegas Pro 11 Editing Workshop:

Titles can take a lot of artistic development time, and a lot of creative energy as well, and therefore titles are often farmed off to editors or artists who specialize in nothing but titling sequences.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.