Google for Developers: Pros and Cons of Google's Sheets API

April 18th, 2017 by inflectra

Chris, one of Inflectra's latest interns, has created a brand new way to get data into SpiraTeam: Google Sheets (feel free to check out the code on Github). Google Sheets is great product, letting you create spreadsheets from anywhere at anytime. While it's great for us as consumers to use, what's it like for a developer? Chris explains some plusses and minuses to working with the Google Sheets API.

Three reasons Google Sheets is good for developers

  1. The IDE is very, very easy to access: all the files live on Google drive so you can access them anywhere, and build in Google's IDE from anywhere--it's completely cross-platform.
  2. The documentation is really robust: Google has put a lot of effort into producing lots of docs, with different examples explaining the API pretty well. Often documentation gives one best case example, which is not that useful in a real world context.
  3. Deployment is straightforward: you deploy to the Sheet Add-Ons store straight from the IDE. The process is a breeze, and everything is hosted for you with easy version control.

Three areas Google Sheets should improve

  1. Outdated JavaScript: the Google App Script (GAS) engine uses a custom flavor of JavaScript. It's got lots of useful functionality but is also significantly behind the latest Javascript iterations (no ES6 in sight).
  2. Unpredictable and Non-Standard: in the couple of months the project lasted, there were two moderate-level problems that were uncovered and patched to the GAS engine. These caused annoying and unexpected side effects in the code base. Google should also do a better job explaining the differences between a web app and an add-on--the distinction is vague.
  3. Optimization: we rely heavily on making a lot of API calls to transfer data to SpiraTeam. These all run on Google's servers, which could explain the poor performance. There is a non-zero level of effort needed to understand how to avoid basic application lag by structuring the code to properly use GAS's internal and external calls.

Google API SpiraTeam Google app script Javascript intern