I've come to depend on Google more than I'm really comfortable with. At first, it was just for searching. They just did it better. Oh, and then I started to depend on Google News to sift through the world's happenings. Then, there was gmail, Google docs, and more. Now, my phone is Android. I use its navigation app to find my way in unfamiliar territory. I've got a Google browser. There is Google Voice, Google TV. I am watching the unveiling of a Google operating system with some interest. And, I incorporated one the Google API's into some code I was working on.
That last one just turned around and bit me. Now, I'm questioning some of those other gradually built dependencies I've created over the years. But for now, I'll just study the current predicament I've allowed myself to get into, and try and glean a few lessons, and salvage some value from the experience.
Google Translate API - the shiny bauble
One of the design goal of gwloto was to support multilingual environments. It is quite possible, even likely, for the workforce in a given shop to have language barriers. For something as important as safety, this is a huge consideration. In gwloto, all control plan information can be entered in as many languages as are required in the shop. If you have a mix of English and Spanish speaking workers, you can enter the lock out tag out instructions in both languages, so the worker can follow the control plan in his or her most native tongue.
While having a capable translator manually translate the instructions is the best practice, the convenience of having a button to jump start the translation process was a very attractive option. Google Translate API was a shiny sparkling jewel in this circumstance.
This of course required some research, planning, and experimentation. In the end, it was quite a nifty feature, at least until...
If it seems too good to be true
Google has announced it is shuting down the Google Translate API "due to the substantial economic burden caused by extensive abuse."
"Economic burden" is the specific clause from the terms of service for the API that allows them to skip from a 3 year deprecation period (an eternity in web time) to a complete phase out with an increasing reduction in service in only 6 months (a very short time in a product life cycle) without breaching their side of the TOS.
It would be easy to say I made a mistake by trusting Google, but that is fairly superficial. The exact exact mistake was giving them too much credit. I expected they would not be offering a free service that wasn't cost effective for them in some way. They pass out lots of free stuff, how was one to know this one was going to die young?
The Translate API is popular, and widely used. This is usually a godsend. Why is it an apparently unexpected economic burden? I suspect there are a design flaws that invite abuse. Consider this exchange on the Google_AJAX-APIs list:
Developer: ...stopped working because Google Translate API now requires API key...
Helpful responder: ... API v1 ... documentation says that that you need to register for one, but the API key is technically not required.
Now, consider the competition: Microsoft.Translator.Translate(appId, text, from, to, contentType, category); The appId is the functional equivalent of the Google API Key, and it IS quite clearly required. This helps sort out who is doing what with a web service. It is a pretty fundamental concept, and Google is changing it (and the documentation around it) to try and put the genie back in the bottle, so to speak. This should have been taken care of up front.
Then there is the obvious question, "What did Google get out of it?" There is a little "powered by Google" on the screen. If I back up and think, that is pretty small compensation, but it is what they asked for. There is no doubt a treasure trove of data to be mined about people's use of the service, but by now they probably have all they care about. It is hard to see a way to monetize the popularity, unless you stored up related advertisements to show latter.
There were signs, I just figured that with all the problems they do solve on a daily basis, they must know what the are doing. That is one giant bit of assumption, and my mistake.
At the end of the day, it is their toy, and they can do what they want with it. However, this move just started a ripple. Consider this little comment from the same list:
I literally started working on developing tools for my site using this API the beginning of this week. Looks like I've lost a week's worth of work ... Guess I'll have to look into ... unless this TOO is getting shutdown.
Lots of developers followed the rules. Lots of developers invested time in creating useful things based on this service. Lots of developers just found out they have wasted a lot of time and effort. This will have consequences. They may be hard to fit into a spreadsheet, but they will be there. Google professes to know this. If you look at their code of conduct in section Ia, you will find this "Our reputation as a company that our users can trust is our most valuable asset, and it is up to all of us to make sure that we continually earn that trust. All of our communications and other interactions with our users should increase their trust in us."
I guess that memo didn't circulate recently. And if wasting thousands upon thousands of other people's man hours doesn't qualify as being evil, I'm not sure what would.