April 15th, 2010

illo me

Google Cloud Printing.

Printing has always been a sore spot for people creating new operating systems. Every printer talks a little differently than every other printer and for the past 30 years printer manufacturers have considered the details of how to talk to their printer to be a trade secret which must not be shared under any circumstance.

This means that in order for your phone, iPad, or even Linux or GoogleOS powered Netbook to talk to your printer, either the manufacturer needs to care about your platform enough to write a driver for it or some enthusiast needs to do this for them.

Since Google created Android and is working on GoogleOS, this problem affects them. Their answer: put it in the cloud.

Since most new devices have internet access and can make HTTP requests, the idea is that applications that want to print can send a request to Google (or another compatible Cloud Printing provider) and then Google will send the job to your printer.

But wait! How does Google figure out how to print to your printer?

In the hypothetical future, printers will be "Cloud Printing" aware, so instead of installing a driver the printer will be network enabled and presumably speak HTTP. You will register your printer with your Google Account and it will need to be directly accessible from the Internet. [Aside: I doubt this future will happen. Printer manufacturers enjoy being proprietary. They believe it gives them a competitive advantage for some odd reason.]

To work with printers today, you will need a computer with appropriate drivers already. You will install a server on that computer that will proxy and translate Cloud Printing requests to registered printers. Your other devices will then be able to send jobs to that printer. The computer with the proxy will need to be visible to Google, of course.

I like that someone is trying to solve the Tower of Babel of Printers problem. Ubiquitous device support is a good thing and hardware developers are not always the best software developers, so common printer driver code should make everyone's lives better. I also understand why you would want this new common language to work over a network since many of the newer computing devices (Android phones, iPhone, iPad, some netbooks) can talk to networks but do not have USB ports.

However, I do not understand why print jobs should have to take a round trip over the internet just so all printers can speak the same language. Requiring someone to hand off personal data to a third party with no clear added benefit is creepy. Couldn't this be accomplished by having the "proxy" for legacy printers work on the local network? Is involving Google in the handshake going to convince manufacturers to build printer firmware that speaks HTTP? Does fitting the word "Cloud" in there make it more buzzword compliant?

Maybe I misread something, but this does not make sense to me.