5 ms·
You mean like Postscript 20 years ago?
by akrulino 7y ago
You mean like Postscript 20 years ago?
- geofft 7y agoWith less Turing-completeness and the ability to execute on <$100 consumer-level printers, but basically yes.
- appleflaxen 7y agoCan you elaborate on the similarities? I don't really understand PS, CUPS, or GCP, but I think an overview of how they relate would be really interesting.
- geofft 7y agoPostScript is a programming language that lets you describe how a page looks. (It's a real, Turing-complete programming language, and you can do things like print a fractal with a couple of lines of PostScript.) It was popular with high-end printers like the Apple LaserWriter, and it required a real CPU inside the printer in order to evaluate the PostScript and render it into an image of the appropriate resolution, which could then be printed. So it was completely out of the question for consumer-level printers like cheap inkjets. Today, of course, adding a real computer to a cheap inkjet is entirely doable (a $5 Pi Zero is far more powerful than the LaserWriter), but in the past you basically needed a driver that ran on your computer that converted a high-level document (e.g., a page from a word processor) to physical instructions for the printer. CUPS is a program that implements the Internet Printing Protocol, basically a way to send, view, and cancel print jobs over an HTTP API. If you have a local printer connected with a parallel port, you can run CUPS and have other machines send to it. The other thing CUPS does is conversions: you can send a PDF to CUPS, and it will run the driver to convert it to whatever format the printer needs. So an application that talks to CUPS only needs to know how to generate PDFs. CUPS also supports talking to remote print servers, e.g., other CUPS servers, printers that natively speak IPP, or printers that speak some other protocol. Google Cloud Print is a service which has the unusual property that printers connect to it, not vice versa. Therefore you can print a document to a Google Cloud Print printer without being on the same network, which IPP doesn't let you do. (For printers without direct GCP support, you'd need to leave a computer plugged into it and running, but some newer printers with built-in networking know how to talk to Google and let you register it to your Google account.)
- jabl 7y agoTo elaborate a little, "IPP Everywhere" / AirPrint, "Driverless printing" or whatever it's called, is basically having the printer run a CUPS server and broadcast itself on mdns/bonjour, and then clients can print to it directly without having to install manufacturer-specific printer drivers (the IPP protocol itself has the necessary features so that you don't even need PPD's). The only thing the client needs to be able to do is support IPP and a few file formats mandated by IPP (PWG-raster (a simple raster format) and JPEG, even PDF is optional IIRC). (There's something called the "IPP sharing extensions" (IIRC) for supporting things like central print servers with auth, proxying and whatnot for enterprise deployments)
- jkoberg 7y agoIt's not a big deal now that embedded machines with a half a gig of RAM/multicore processors and open-source postscript rendering software is common, but postscript traditionally came with a heavy price in compute resources and software licensing fees. For a long time the RIP in the printer was a more capable system than the PC driving it, and printers that handled it were correspondingly premium products.