1. The consideration of an abstract thing as if it were concrete, or of an inanimate object as if it were living.
  2. The consideration of a human being as an impersonal object.
  3. (programming) Process that makes out of a non-computable/addressable object a computable/addressable one.

(see also the Wikipedia disambiguation page)

I find the concept of reification fascinating and useful (according to Five Dollar Words for Programmers, it's from the Latin res facere, "thing making"). I actually didn't know about meaning #1 (especially in the fallacy sense, as in "we need to be careful not to reify the economy"), nor about meaning #2 (apparently it's a thing in Marxism and in critical theory). The Computer Science/programming meaning, however, is something that I think about constantly, and I would like to explain why it's relevant to you.

Let's start with an example of what reification is in social media.

Consider a plain blog post, either on WordPress or on LiveJournal. It's a generic, untyped container, and it can hold pretty much anything expressible in HTML -- text, links, images, videos, and so on. The fact that posts are general-purpose is a good thing. But the downside is: the blogging engine cannot readily determine what kind of post it is.

Now, take a look at what Tumblr does, when you go to make a new post. It gives you choices:

You can make a Text post (very much like a regular blog post, with links and paragraphs and so on). But also, you can instead post a single standalone Photo. Or just a URL (Link) you want to share, with commentary or without. Or a link to a (YouTube, say) Video. (I didn't actually know what the Chat type is for, but apparently it's for "overheard" conversation snippets). You get the idea. Now, why do they have those choices? Can't you just make a plain blog post (using text or HTML), and have it consist of a single YouTube video link, and have it serve the same purpose? I'm going to explain the advantages shortly. The key thing to note is what's happening here, behind the scenes.

If you made a regular blog post, and all it contained was a quote that you liked, in quotation marks and everything, you would know that the post contained a quote. And your readers would know that the quote was the whole point of the post. (You could also add proper HTML markup, and actually put it into blockquote tags). But the blogging engine, the system, wouldn't know that it was a quote.

But if, instead, you had a way to explicitly mark your post as a Quote type (by clicking on the new Quote button in Tumblr, for example), that would be an example of reification. The blogging software would then "know" that your entry was about a quotation, in the sense of, you could test for the type in the backend logic, and display the quote differently, file it in its own category, and offer new functionality based on that knowledge.

To put it simply, reification (in the context of social media software), is where when you go to make a new entry, you can choose what kind of thing it is (whether you're creating a long-form post, a short Twitter-style note, or just sharing a link, or uploading a photo).

So, why force users to make extra decisions, why complicate your code, risk confusion, and so on? Reification enables you to do the following things.


You can display entries of different types, well, differently. If it's a quote, you can center it, put really bitchin' giant quotes around it, format the author/source of the quote correctly, center the whole thing, and so on. If it's a YouTube video, the user can just post a URL, and behind the scenes, you can actually post an embedded YouTube player already showing the video, and so on. This is a minor advantage, relatively speaking, since technically, the user could apply those special styles manually (if they knew HTML and cared about doing that).


Instead of a single generic stream of posts (which is the only option for a system like LiveJournal), you can now give readers additional choices. Do they not feel like reading at the moment, and just want to look at pictures their friends posted? They can click on the Photos stream, and only view those. Or the inverse -- don't care to be spammed by people posting videos or pictures, at the moment? Turn those off, for this session. FetLife does this quite well, by the way -- you can either read your entire update stream, or just view people's pictures, or videos, or only their posts, etc. In this context, you can think of post types as agreed-upon tags/categories, that are built right into the user interface, to make the reader's experience easier.

Aggregation and New Functionality

Once you start going down this path of having explicit entry types, you can really get creative with your functionality.

For example, having a separate standalone Photo type means that you can now easily integrate with third-party photo-specific services (and vice versa). So now, when you upload a photo, you can select a checkbox and also have it post to your Instagram account (or Flickr, or Pinterest, or whatever comes along). Similarly, you can now extend Instagram/Tumblr/whatever clients to also cross-post to your blog engine, correctly typed and formatted. And if you look at it another way, having Photos integrated into your blogging platform in a first-class way can replace specialized services like Instagram. You can now offer the same functionality as Instagram, for example (in the sense of, a dedicated image feed from your friends), with the advantage of being able to reuse users' existing friends lists, filters/circles, and other such security and trust mechanisms.

Even if there are no other third-party services to integrate with, for a particular post type, this separation means that you're gaining the functionality of standalone apps. Consider Links, for example. Why use a standalone bookmarking service (do you remember in addition to sharing those links with your friends, when you can click a tab and view all of the links (and just the links) you've ever posted? Same with Quotes. I love quotes, and keep a simple quote text file. I would much rather have it integrated into my blogging system/social network, so I can see quotes that other people posted, so I can see just mine, so they can be linked off of my user profile.

You can now have all sorts of fun with stats. Viewing a user's profile, you could now view a pie chart, "This user's activity is 80% videos, 10% photos, and 10% text posts".

That's just with a small handful of existing types that Tumblr offers. And those types only denote what kind of media a post primarily contains. You could actually get even more specific, and start marking more abstract conceptual categories, denoting an author's intentions:

Book/movie/game reviews - What if you had a way to explicitly mark "this post is a review"? Now, you could say "I really like how Cat writes about movies! Let's see what else she's watched and reviewed lately." Or Danielle wrote some intriguing book reviews last month, let's see if I can find that one book she raved about." Review types are especially powerful when combined with widely-recognized unique IDs. If you can not only select "This post is a book review", but also input its ISBN number? From there, given an open enough API, it's a skip away from being able to install a browser plugin, so that when you're looking at a particular book in your favorite online bookstore/library/whatever, you can see at a glance what your friends, from your contact list, had to say about the book.

Recipes I would love to be able to view the recipes my friends list posted, or to use my own feed as a personal cookbook.

Quantified Self type entries - Things like RunKeeper entries, exercise program updates, diet progress, steps walked, all that stuff which you now track through separate apps, and keep separate contact books (and filters, if the apps have any) for, why not centralize those channels, and reuse one set of friendslist / filters / whatever?

So, to summarize: reification, in the contest of social media posts, offers all sorts of useful new features and capabilities, and I would like to see more of it.