Why OpenSocial is Important for Computer Science

I was blown away last evening by the November 2007 OpenSocial video. As it describes itself, OpenSocial “provides a common set of APIs for social applications across multiple websites. With standard JavaScript and HTML, developers can create apps that access a social network’s friends and update feeds.” If simple enough, the OpenSocial API could be a universal platform for the web applications of the future.

If this Google-instigated initiative succeeds it will provide a simple, easy-to-learn programming interface (API) to users of the Web. Social networking sites such as Friendster and MySpace and Ning will be able to adopt and distribute applications to their members. Applications designed for MySpace will run on Friendster and any other social networking site. If the API can be made simple enough social network members themselves will be able to become developers. If that happens the OpenSocial platform could become the Linux-model writ large–a true democratization of web application programming. This will place enormous creative power and potential in people’s hands.

For CS educators OpenSocial might provide an almost irresistible hook into the discipline. College and high school students alike, male and female, are joining social networking sites (Friendster, Myspace, FaceBook) by the millions. If the API is accessible to them, they will want to learn to write apps and widgets to improve their social networking experience. Entry-level courses that teach the API and introduce students to social network programming will bring students in our door. Some will get excited enough to learn more CS. But even those who stop after one course will have learned how to be web programmers.

Students will quickly think of applications that will be popular with their friends–what better way to spread the word about computer science. Other students will build potentially lucrative business applications, which will make them better able to donate to charity. :)

What about humanitarian applications? For the H-FOSS project the OpenSocial platform has huge implications and potential. There are thousands of charitable and humanitarian networks that could potentially benefit from apps written by CS students.

A simple example. Just as users share their music and other preferences, make it a single click for them to share their charitable preferences–i.e., build a simple widget that connects users to a charity’s web site. Say you make an appointment to donate blood through the American Red Cross site. The site invites you put their widget on your social networking page as a way to tell your friends about the Red Cross. You do so (one click) and the widget now becomes part of your profile. If you share it with your friends, they will have one-click access to the Red Cross and will know that you support it. The widget can be as powerful as you want to make–it could have whatever functionality you wanted to give it.

I’m guessing most people don’t currently put their charitable preferences on their social networking profiles, but why shouldn’t they? But obviously, if people did start sharing their charitable preferences, it would bring more people to the charity’s door. Would they be inclined to share if it was easy to do and if the charity encouraged it? Supporting a charity (or an environmental group or any non-profit) is something to be proud of and tell your friends about. And many people already do so. At the same time, charities love it when their supporters spread the word. Indeed, many charities (and presidential campaigns) are already using this kind of viral marketing to get their message out and build even bigger networks. The OpenSocial platform will make such an application “write once, run everywhere.”

What about the H-FOSS project? Clearly we are trying to build a social network. Perhaps as we grow our network of HFOSS@X partners, we should organize ourselves using something like Ning. In terms of building humanitarian FOSS, OpenSocial provides a platform that would help us make our model portable and sustainable. Take Sahana for example. An organized group of volunteers banded together in a disaster recovery effort is a social network. If Sahana adopted OpenSocial, relief workers would potentially be able to develop functionality that could spread throughout that network. Similarly, if VMOSS supported OpenSocial, it would become widely accessible. Indeed, one of the practical things we should consider for VMOSS is designing a way to incorporate social networking functionality into it.

Could OpenSocial, an open, easy-to-use, standard web development platform, provide us with the portability and sustainability that we seek? I rarely get this excited from watching a video!

  1. #1 by Ralph Walde on February 20, 2008 - 5:17 pm

    Are you proposing a Computer Science non-major course that, in a single college semester, would teach enough HTML, JavaScript, and Open Social that students in the course could contribute enhancements to the social websites that they might be involved with? Would a college offering such a course use a Open Social college based website for the teaching of such a course? I wonder whether there are any Open Social based textbooks in the works.

  2. #2 by ram on February 23, 2008 - 5:44 pm

    Well, it’s too early to propose anything. I’m just thinking out loud about the potential impact of Open Social. I’ve been doing some poking around in Open Social. I’ve downloaded and installed Shindig, so that I have a Open Social container on my Mac. That should let me test some simple applications. I don’t know yet if its simple enough to teach at the intro level, but so far I haven’t seen anything to make me think otherwise. Obviously it won’t be enough to simply teach Javascript syntax and semantics. You also have to teach about the underlying Open Social model–i.e., the social graph, its client/server communication prototcols, various objects and functions, etc. So these would have to be part of any course or textbook.

  3. #3 by Zoltan H on May 28, 2009 - 7:53 pm

    There is a book from Wrox, OpenSocial Network Programming, that covers programming with the OpenSocial API. I wrote a review on it and it’s pretty much a tutorial and reference to the 0.8 version (0.9 is now the current version). The book is pretty clear if you have a background in JavaScript.

    Link: http://yyztech.ca/reviews/book/opensocial-network-programming

(will not be published)