I am a programmer with a .NET / PHP background.
I recently reviewed a video training on Flashbuilder 4 / ActionScript. One of the videos in the video training is named "Creating a Data Model with a Value Object". I mentioned that "value object" was an unfamiliar term to me and didn't really know if he meant by it "model" or not and it was a bit confusing since I can only understand it as a "model" yet the title suggests that we are creating a model with a value object, suggesting they are two different entities.
The trainer said that he was told this was a fairly common term in Java, also sometimes referred to as a "transfer object". In fact, the Wikipedia page for "value object" redirects to "Data transfer object", and stackoverflow questions like this one mention that a "value object" might also be a "mapped object in Java".
What is the etymology of this term and how does it relate to other data-model-related terms? Does it come from the Java world and did it at some point go out of wide-spread use?