Ir al contenido

Historia de PostScript

PostScript tiene el encanto de ser el punto de encuentro de dos disciplinas en general alejadas una de la otra: la gráfica y la programación. Es por eso que cuando lo conocí (hace ya algunos años) me interesó profundamente, pero encontré aún más interesante la historia de sus orígenes, sobre todo porque dio lugar al nacimiento de uno de los gigantes del software que hoy conocemos. Esa historia es la que me propongo compartir aquí.

Durante el desarrollo de la tecnología encontramos muchas veces que algunos inventos y descubrimientos fueron luego aprovechados para fines distintos de los que originalmente habían previsto sus inventores o descubridores, lo que no les impidió explotarlos debidamente. Como alguien dijo alguna vez: si invento un cohete y al lanzarlo se precipita en el mar, a partir de ahora lo llamo “submarino”…

En realidad, mal podríamos acusar a PostScript de haberse “hundido” en sus comienzos (de hecho no hizo más que crecer hasta que algo superior lo reemplazó), pero es justo decir que no fue pensado para el uso al que se destinó después y que determinó su desarrollo y su éxito. Dado que la gráfica digital, tal como la conocemos, le debe buena parte de su existencia a este invento, no me pareció mal rendirle un humilde homenaje.

Los orígenes

Primer logo de PostScript.

En los comienzos de la década de 1980, la industria de la fotocomposición y la preprensa eran muy diferentes de lo que ahora conocemos. En esa época se utilizaban los llamados sistemas de fotocomposición o sistemas de preprensa, un conglomerado de equipos altamente especializados e interconectados que eran, ante todo, tecnológicamente complejos, costosos y, sobre todo, cerrados: todas sus partes estaban implementadas y resueltas por el fabricante de manera propietaria, es decir, sin publicar una sola línea sobre cómo funcionaban internamente o cómo podían conectarse con sistemas diferentes. No había así manera práctica de reemplazar etapas del proceso por otras implementadas por terceras partes, por ejemplo para lograr mejoras en la calidad o en la eficiencia, o siquiera de intercambiar información con ellos. Esto (que no parece gran cosa hasta aquí) impedía en la práctica que se creara un mercado donde otros pudieran competir para ofrecer mejores soluciones parciales al sistema global.

Un sistema típico de fotocomposición, Atex, costaba entonces U$S 400.000 y requería de uno a dos meses de entrenamiento para poder operarlo y mantenerlo (siempre que uno calificara como cliente para acceder a uno de estos sistemas; no eran para cualquiera…) Otro tanto ocurría con los sistemas de preprensa, como las estaciones de trabajo Scitex (parte de la cual fue adquirida por Creo, y ésta más tarde por Kodak) para procesamiento de imágenes y de salida final, o los sistemas Crossfield (luego comprada por FujiFilm), entre otros.

Por otro lado, alrededor de esa época, la tecnología de impresión en papel (que hoy llamaríamos Computer to Print, es decir, imprimir desde la computadora directamente al equipo impresor) estaba diseñada sobre una sencilla idea: cuando la impresora recibía un código numérico (un número entre 0 y 255, lo que llamamos un byte) el equipo imprimía el carácter cuyo código ASCII era ese número; por ejemplo, enviar a la impresora un 65 haría que ésta imprima una “A”, cuyo código es precisamente el 65. ¿Con qué tipo de letra, podríamos preguntar? La respuesta es fácil: con la que viniera de fábrica con la impresora. Esta tecnología se parece a la de una máquina de escribir, donde los “tipos” vienen junto con la máquina; aquí hemos reemplazado las teclas por códigos ASCII.

Por lo tanto, la forma de cada letra (la tipografía) era una propiedad fija del equipo impresor; no existía un control de esta característica por parte del usuario. Esto cambió parcialmente con la llegada de las primeras impresoras de matriz de puntos (dot-matrix) donde cada carácter se imprimía como una serie de puntos, donde la ubicación de cada punto descansaba en una memoria interna de la impresora. En algunos modelos más sofisticados, esta memoria contenía más de un estilo de tipografía, dando al usuario la posibilidad (impresionante para entonces) de elegir el tipo de letra mediante un selector en la impresora.

La tecnología de matriz de puntos permitió también, mediante algunos agregados, imprimir gráficos, y entonces se hacía posible imprimir caracteres de texto de manera gráfica, permitiendo al software de diseño cierto control de la tipografía, pero los resultados obtenidos (que sólo satisfacían a los nerds de la época) dejaban mucho que desear desde el punto de vista de las artes gráficas, debido a la poca resolución alcanzable por estos métodos. La calidad necesaria podía ser alcanzada con la tecnología de impresión láser, pero no existía (aún) la forma de aprovechar sus características al máximo. Por supuesto, siempre alguien es el primero…

El germen de una idea

La revolución, silenciosa e ignorada por sus iniciadores, comienza en el año 1976 con John Warnock, un miembro de una conocida empresa de computación gráfica llamada Evans & Sutherland, quien concibió un sistema de interpretación de una base de datos de gráficos tridimensionales, el lenguaje Design System. Por entonces, Xerox poseía en California el instituto PARC de investigación y desarrollo, una especie de laboratorio donde muchas de las ideas allí gestadas se convertirían luego en tecnologías dominantes, como por ejemplo la interfaz gráfica de usuario (GUI – Graphical User Interface), que nos trajo los íconos, las ventanas y el mouse, las redes Ethernet y, justamente, las impresoras láser. Esta última había sido desarrollada recientemente, y los investigadores reconocieron la necesidad de algún mecanismo estándar para definir los contenidos de una página. Xerox lanza así la iniciativa InterPress, con la idea de crear un sucesor para su anterior formato de datos Press, ya utilizado en los sistemas Xerox Star para controlar impresoras de tecnología láser.

John Warnock. Imagen bajo licencia Creative Commons Attribution-Share Alike 3.0 Unported.
John Warnock.

Para 1978, Evans & Sutherland le solicita a Warnock trasladarse desde las instalaciones de San Francisco a sus oficinas principales en Utah, pero él no estaba dispuesto a mudarse. Decide así dejar E&S y unirse a Xerox. Comienza a trabajar con un tal Martin Newell y reescribe su lenguaje Design System para convertirlo en el lenguaje JaM (por ‘John and Martin’), usado principalmente para la investigación de cuestiones relacionadas con la impresión de texto e imágenes (algo más cerca a nosotros, finalmente…) Éste evoluciona hasta convertirse en el lenguaje InterPress.

Convencido del potencial que podría tener InterPress como método estándar de descripción de páginas, Warnock y su jefe, Charles M. ‘Chuck’ Geschke, intentan infructuosamente durante dos años convencer a los directivos de Xerox de convertir InterPress en un producto comercial. Al no obtener resultados, en diciembre de 1982 ambos abandonan Xerox para fundar su propia compañía. Deciden bautizarla con el nombre de un pequeño arroyo que corría detrás de la casa de Warnock en Los Altos: Adobe. (Y uno podría imaginar que Adobe empezó a hacer fortuna con Photoshop…)

Inicialmente, Warnock y Geschke analizaron la posibilidad de crear ellos mismos una impresora sumamente potente empleando las ideas que surgieron durante el desarrollo de InterPress. Sin embargo, pronto se dieron cuenta de las costosas inversiones que ello implicaría, y por lo tanto tendría más sentido desarrollar las herramientas para que otros fabricantes pudieran controlar sus impresoras. Tomaron como base InterPress y derivaron de él un lenguaje más simple, al que denominaron PostScript, el cual lanzaron al mercado en 1984.

Los planetas se alinean

Apple LaserWriter
Apple LaserWriter.

Quiso el destino que en ese momento las ventas de las computadoras Macintosh de Apple estaban empezando a declinar, y Steve Jobs, fundador y director de Apple para entonces, estaba a la búsqueda de algo novedoso con lo cual salir al mercado y recuperar ventas. Visitó a Warnock, se entusiasmó con la tecnología PostScript e invirtió en Adobe 2 millones y medio de dólares para asegurarse de tener un controlador PostScript para su propia impresora láser, la Apple LaserWriter, que así resultó ser la primera impresora en red. Esto permitiría a este equipo imprimir con calidad tipográfica a un precio “accesible” de U$S 6.995 en su lanzamiento en marzo de 1985 (piensen que una impresora de Xerox costaba alrededor de medio millón de dólares y ocupaba un cuarto pequeño). Además, permitió la impresión de imágenes con calidad fotográfica a página completa; otros equipos, como la primera LaserJet de HP, permitían la impresión de imágenes sólo en un área pequeña de la página.

PageMaker, versión 1.0
Gráfica de la caja de la versión 1.0 de PageMaker (en diskettes de 3.5″). La versión para PC contenía además una versión completa de Windows (muchos equipos de entonces sólo contaban con DOS!)

Sin embargo, disponer de una computadora y una impresora de calidad no hubiera hecho un gran impacto de no haber dado con un tercer socio. A través de Johnatan Seybold (hijo de John Seybold, pionero en la tipografía basada en computadoras, creador de los famosos seminarios que llevan su nombre) conocieron a Paul Brainerd —uno de los primeros clientes y luego parte del staff de Atex—, quien estaba por entonces ocupado en un proyecto de desarrollo de software de edición para una computadora de escritorio. Paul había acuñado el término “desktop publishing” y la impresora de Apple era la oportunidad ideal para vender el concepto. Rápidamente formó Aldus Corporation y produjo el primer software de este tipo, Aldus PageMaker, que salió al mercado en julio de 1985 a un precio de U$S 495. Pocos años después, PageMaker llegó a convertirse en el cuarto programa más popular del mundo. Esta combinación de cosas, demás está decir, salvaron a Apple y convirtieron a Aldus y a Adobe en sólidas empresas.

PostScript permitió encontrar una solución satisfactoria al problema de la impresión del texto. Como mencionamos, anteriormente era necesario tener las tipografías definidas de forma fija dentro de la impresora. Ahora, PostScript brindaba la capacidad de definir texto como cualquier otro objeto gráfico —describiéndolo matemáticamente a partir de líneas rectas y curvas, y luego escalarlo a cualquier tamaño deseado— y de resolverlo a cualquier resolución.

Tratar el texto como cualquier otro objeto gráfico era un concepto sumamente avanzado, pero para su correcta implementación hubo que atender algunas cuestiones. Es conocido que las tipografías no pueden escalarse proporcionalmente a tamaños pequeños; los glifos y pequeños detalles de cada letra corren el riesgo de deformarse y desaparecer cuando el tamaño se acerca al orden de magnitud de los puntos empleados para imprimirlas. Adobe resolvió esto agregando al código ciertos elementos llamados hints que identifican las características de cada letra que deben especialmente preservarse para lograr una buena apariencia. Este método logró la impresión de texto de excelente calidad aún a bajas resoluciones; antes de esto se creía que la única manera de conseguirlo era con pequeñas imágenes de cada letra diseñadas y ajustadas manualmente. Adobe se reservó este hallazgo y definió un formato propietario (léase: para mí solito y para nadie más) para almacenar estas nuevas tipografías PostScript, llamadas Type 1, y comenzó a licenciar la nueva tecnología.

El despegue y las primeras turbulencias

Linotronic 300
Linotronic 300

Las cosas sucederían rápidamente a partir de este punto. Linotype (hoy Heidelberg) fue la primera compañía en reconocer el potencial de la nueva tecnología, quien introdujo al mercado la filmadora Linotronic 300 con soporte de PostScript en 1985; dos años después comenzaría a ofrecer tipografías PostScript. Muchos otros empiezan a complementar estos sistemas con elementos específicos de preprensa, como el soporte para elementos de color en CMYK que PostScript originalmente no tenía —después de todo, no olvidemos que había surgido del medio corporativo para la impresión de documentos en impresoras láser monocromáticas: sólo trabajaba con niveles de gris y colores RGB. Adobe corrige esto en la siguiente versión, PostScript Level 2, lanzada en 1991, donde entre otras cosas se incorpora la posibilidad de aceptar imágenes comprimidas (esencialmente en JPEG), algoritmos de tramado de calidad, y la separación in-RIP, esto es, permitir la creación de un archivos PostScript compuestos (con la versión anterior eran necesarios tantos archivos como separaciones, es decir, cuatro en CMYK).

(Párrafo aparte, Adobe casi comete un error fatal con PostScript level 2: publicó los futuros agregados que haría y recién entonces se puso a trabajar en la nueva versión… Para su asombro, potenciales competidores desarrollaron intérpretes para esa versión más rápido que lo que Adobe creyó posible.)

Logo de PostScript (nivel) 3.
Logo de PostScript (nivel) 3.

Adobe y Aldus se fusionan en 1994, con lo cual PageMaker pasa a llamarse Adobe PageMaker. A fines de 1997 Adobe lanza PostScript 3, donde incorpora el soporte de espacios de color genéricos (como el entonces novedoso sistema Hexachrome de seis colores, por ejemplo) y mejores degradados al aumentar los niveles de un tono de 8 a 12 bits, pasando así de 256 a 4096 niveles.

No todos son laureles en la historia de PostScript. El punto fuerte de este sistema se convirtió de alguna forma en su talón de Aquiles. Aunque desde sus orígenes fue claramente orientado a la descripción de páginas, PostScript es también un lenguaje de programación, y tiene (en potencia) más capacidades que las necesarias para simplemente describir el contenido de una página (por ejemplo, es perfectamente posible hacer complicadas operaciones matemáticas en PostScript: pueden ver aquí algunos ejemplos destinados a mis alumnos). Visto retrospectivamente, solucionó el problema del control preciso de un equipo de impresión, obteniendo calidades nunca antes alcanzadas, pero a expensas de algo que hoy es más importante en la industria gráfica: la confiabilidad en el intercambio de información. ¿Qué significa esto? Que ahora que solucioné el problema de la impresión, me interesa más comunicar fielmente el diseño de una página de una etapa a otra del proceso.

En efecto, un documento PostScript no es más que una serie de instrucciones cuya interpretación generará el o las páginas descriptas por aquél. Como cualquier otro lenguaje de programación, un programa PostScript puede contener errores —accidentales o deliberados— que impidan obtener la página descripta. Por su naturaleza, un intérprete PostScript no puede recuperarse de un error durante la lectura de un documento; en una situación así simplemente deja de procesarlo y simplemente informa el error encontrado, imposibilitando el acceso al resto del documento que (quizás) no contenía errores de allí en más.

Otra complicación surgió por la necesidad de indicar al sistema de impresión ciertas opciones sólo válidas para él, como por ejemplo la elección de un cierto tamaño de hoja (como en las impresoras que poseen más de un origen para la carga del papel), la utilización de una resolución o lineatura deteminada, etc. Dado que esta información era dependiente del equipo, Adobe concibió la idea de sintetizar todas las opciones válidas posibles para cada equipo particular en un archivo descriptivo conocido como descripción de impresora PostScript (PostScript Printer Description), o más comúnmente, archivo PPD. Cuando se instala el driver de una impresora PostScript, éste contiene un archivo PPD que es el que permitirá al usuario elegir las opciones que ese equipo soporta mediante un diálogo al momento de imprimir, conocido normalmente como Ajuste de Página (Page Setup). El documento PostScript así generado incluye instrucciones adicionales para utilizar tales opciones, y si bien no deja de ser una característica cómoda en un cierto flujo de trabajo, contradice uno de sus objetivos de diseño, a saber, la independencia del dispositivo; el documento PostScript resultante ya no es apropiado para cualquier impresora, sino sólo para esa impresora específica.

Una lenta retirada

Numerosos sistemas de preprensa se crearon y comercializaron alrededor de PostScript como su lenguaje natural, llegando a recibir el título de “estándar de facto” de la gráfica digital; en efecto, jamás se intentó siquiera normalizar el lenguaje a través de una entidad como ISO, por ejemplo. Esto se logró en buena medida gracias a que el motor de procesamiento de esos sistemas, comercializado por Adobe y denominado CPSI (Common PostScript Interpreter) fue rápidamente adoptado por sus fabricantes, asegurándose así compatibilidad full con el lenguaje.

Sin embargo, esta “burbuja de bonanza” empezó a vislumbrar su fin cuando en 2000, de la mano de Illustrator 9, Adobe introduce una característica que sería el deleite de los diseñadores y la pesadilla de los impresores: la transparencia. Esto rompe con el modelo de imagen opaco de PostScript, donde los objetos tienen un color específico y cubren o tapan cualquier objeto por debajo de él, cualquiera sea el color.

PDF
Icono estándar de un documento PDF.

Los inconvenientes mencionados antes, más la necesidad de introducir nuevas características, quedan subsanados (en una buena medida) con un tipo de documento que Adobe diseñó tiempo después de la consolidación de PostScript (alrededor de 1992), con el concepto del intercambio de información en mente: el Formato de Documento Portable ó PDF (Portable Document Format). La idea detrás de PDF (ver aquí la historia de su propia génesis y evolución) fue sugerida por Illustrator: cuando Adobe crea este programa, lo hace básicamente como un “intérprete PostScript visual”, de manera que a medida que se crea un diseño, Illustrator va generando el código PostScript correspondiente. Es más: hasta la versión 8, un documento Illustrator (.ai) no es más que un documento PostScript. Como para entonces el programa existía para dos plataformas diferentes (Mac y Windows) y sus documentos podían ser intercambiados con total fidelidad, ¿por qué no elevar esta idea a la de un formato estándar de intercambio gráfico?

En 1996, PDF empieza a ser considerado por la industria gráfica (al incorporar soporte de color CMYK) y se empieza a pensarlo como un futuro sustituto de PostScript. De hecho, luego de unos pocos años de desarrollo paralelo, Adobe dejó de introducir mejoras en la tecnología PostScript para incorporarlas en PDF.

Podía pensarse entonces que en algún momento Adobe lanzaría al mercado un PostScript Level 4 que incluya todas las mejoras introducidas en las distintas versiones de PDF hasta la fecha. Sin embargo, Dov Isaacs de Adobe dijo textualmente en 2006, ante la pregunta de si Adobe tiene una tal versión lista para salir a la venta:

Absolutamente es algo que no sucederá. PostScript es un lenguaje de programación, no realmente un lenguaje de descripción de páginas. Por su misma naturaleza, no es capaz de proveer confiabilidad en todo el flujo de trabajo de un extremo al otro, dado que por definición, el contenido puede cambiar de una etapa a otra. (…) No, no hay un PostScript nivel 4 esperando una señal del departamento de marketing. A partir de PDF 1.4, todos los agregados al modelo de imagen de Adobe fueron incorporados en PDF y no en PostScript.

Este mensaje no hizo sino confirmar que Adobe ya no pondría más recursos en PostScript. Durante un tiempo, el desarrollo de PostScript y PDF se mantuvieron más o menos sincronizados, pero en el año 2001, con el lanzamiento de la versión 1.4, PDF recibió agregados que no tenían equivalente en PostScript, marcando así “el comienzo del fin”. De hecho, en 2005 Adobe empezaba a desaconsejar el uso de las tipografás Tipo I en favor de las nuevas tipografías OpenType.

Los sistemas de preprensa, a partir de entonces, se basan en el nuevo motor APPE (Adobe PDF Print Engine), que reemplaza al antiguo CPSI y, naturalmente, utiliza PDF nativamente en lugar de PostScipt. La tecnología PDF comparte varias cosas con su “hermano mayor”, en especial el modelo de imagen, que es la manera en que se hacen referencia a los diferentes elementos que forman una página (las imágenes, curvas, textos, la propia página). Pero a diferencia de PostScript, PDF es netamente descriptivo: sólo es posible agregar objetos dentro de un PDF describiéndolos explícitamente uno por uno. En cambio, PostScript permite crear una serie de objetos mediante un código más o menos ingenioso. Esto hace que PDF sea un lenguaje de descripción “más tonto” que PostScript, pero por eso más seguro: ya no hay instrucciones que interpretar, sólo descripciones. Otra diferencia es que ese modelo de imagen ha sido mejorado en PDF, agregando características no soportadas en PostScript, como el uso de objetos con transparencia, perfiles de color ICC, capas (layers) y tipografías OpenType.

A pesar de sus inconvenientes, y de estar técnicamente superado, PostScript todavía está presente en varias formas, particularmente en las tipografías Tipo 1 todavía en uso, y en enormes colecciones de imágenes y clipart creados en PostScript Encapsulado o EPS (encapsulated PostScript). Por ello, y por iniciar la revolución del desktop publishingPostScript tiene un lugar de privilegio en la historia de la tecnología.

Publicado enGeneralHistoria

Se el primero en comentar

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *