Today I’m going to provide a counter point to my last post “Why we should all learn to code”. Is it true that coding is an essential skill for undergraduates, particularly those who want to use geospatial data? To interact with technology in an advanced way (i.e., as more than a user) do you have to ‘speak the language’?
What has gotten me thinking about not needing to code was a great blog by Steve Coast on the issues of “Small Data”. Steve points to the issues that an everyday Joe or Jane user would have with accessing and using some of the online data that they may find useful. His example takes a wishlist of books from Amazon and then cross-references with his local library to find what is available. The (many) steps he describes shows how challenging this type of analysis would be for an average user.
This got me thinking about all the hype about Big Data, the Geoweb, APIs, Web 2.0, and Mashups. The term ‘democratization’ is often thrown around, but this term definitely needs to be unpacked. Are tools and data democratized by simply being available, even if large segments of the population can’t access it? The cost of entry to manipulate online data is just too high for many. And that is a shame, because there are plenty of ways that these technologies can be put to work in daily life. I have recently come across some initiatives that promise to bring advanced data gathering and analysis to the masses. I’ve already discussed Geocommons as a code-free way to make and share geospatial data and maps, and there are plenty of similar options from Google and ESRI.
Two new services have really caught my eye: 140kit and ifttt (if THIS then THAT). These are both simple websites, built with sweet user interfaces, that anyone can use to gather Twitter data (140kit), and automate a variety of cross-platform tasks (ifttt). The ifttt interface in particular makes setting up automated tasks between a variety of services, or ‘channels’ (Twitter, Gmail, WordPress, SMS, Facebook) as easy as…well…following a recipe:
This is an example of two ifttt recipes. The first takes your tweets and archives them to your Google Calendar and the second one takes facebook photos and uploads them to a dropbox folder. Pretty simple stuff, but challenging to do otherwise. There are a lot of options with ifttt and it is worth checking out. Plus, you can create and submit your own recipes. 140kit takes a different approach, in that a user requests for a sample of tweets on a certain topic or geo location, and then similarly requests an analysis on the results. These requests aren’t instantaneous, they need to be handled by a live operator, so there is some lag in the system. Still, this can provide an easy way to tap into the firehose of Twitter. No coding required.
So what is the take home point here? Should you learn programming or not? Services like ifttt, Geocommons, and 140kit are all looking to meet the needs of ‘the rest of us’ – people who don’t know a programming language and don’t want to learn one (or several). This isn’t bad – for most of what people need, these simplified services will do the trick. But they are just that – simplified. Eventually users of these services will likely hit a wall where their advancing needs of analysis or data collection just can’t be met without getting dirty with code. But for many people, these services will be all that they need, plus more. Average users get introduced to some very powerful technology through the miracle of the GUI. If this leads anyone to get interested in how things work under the hood, and then to pick up a programming language, then this is a win for everyone.