PostScript: el lenguaje de Adobe que inventó la impresión moderna

John Warnock and Chuck Geschke created PostScript, a Turing-complete programming language that made Adobe Systems possible and transformed printing. PostScript is not PDF; it's powerful enough to run games like Doom inside documents. Steve Jobs called in 1983 to integrate it into the Macintosh, which let printers execute code directly and enabled typography based on Bézier curves.
Chapters
Cuando vi el título del capítulo pensé que hablaríamos de TypeScript e incluso me hice algunas notas y ahora que lo veo bien... ¿PostScript? ¿Qué es eso?
PostScript es un formato para visualización de documentos similar a PDF, pero en verdad tampoco entiendo. ¿Es un lenguaje?
¿Es como PDF? Esos son formatos para ver documentos. Si aceptamos PostScript como lenguaje, ¿qué es lo siguiente? ¿HTML?
Tranquilos chicos, todo tiene su explicación. ¿A que sí, pro?
Exacto. Aunque PostScript es un formato de presentación de documentos, sus creadores le incluyeron un lenguaje de programación Turing completo.
¿Estás diciendo que puedes incrustar un programa dentro de un fichero PostScript?
Exacto. De hecho, hay algunos ejemplos como el PS Chess, o en PDF tenemos un Tetris o el Doom.
Vaya, vale. Si puedes hacer un Tetris un ajedrez e incluso un Doom, está claro que tanto PDF como PostScript son lenguajes de programación. Ahora no sé si volver a revisar HTML vaya que también lo sea.
¡Novedades! Como todos sabéis, podéis haceros historiadores o cronistas del canal y disfrutar de contenido exclusivo, además de apoyarnos.
Totalmente, aunque eso no es ninguna novedad, profe. La novedad es que a partir de ahora también ¡Tenemos Patreon! Sí, eso sí que es una novedad. Aunque, ¿qué ventaja tendría ser historiador o cronista en Patreon?
Pues además de apoyarnos, el mismo contenido exclusivo se encuentra en Patreon sin publicidad.
Eso podemos decirlo aquí en YouTube.
Y no olvidéis que a través de la página web podéis seguir realizando vuestras votaciones de forma gratuita.
Y la forma óptima de darnos vuestro apoyo siempre es dar al like, suscribiros y compartir el vídeo con todos.
Sigamos con el vídeo. La misión de PostScript. El problema con PostScript es principalmente su nicho. Hay personas que quisieron demostrar su valía escribiendo código como PS/Chess, pero los primeros intérpretes estaban únicamente enlazados a las impresoras.
¿Eso quiere decir que se imprime una página por cada salida de datos que se produce?
Totalmente. No creo que las asociaciones ecologistas estuviesen muy de acuerdo con esta forma de operar.
Pero PS/Chess se puede jugar sin necesidad de imprimir páginas. Así que evolucionaron.
Vayamos al principio. Se dice que John Warnock fue no solo el creador de PostScript, sino también el fundador de Adobe y más tarde también el creador de PDF.
¿Se dice? ¿No queda claro?
Pues a ver, Wikipedia nos dice que los orígenes de PostScript llegaron de la empresa Evans& Sutherland, cuyos fundadores, David Evans e Iván Sutherland, eran también profesores de la Universidad de Utah.
Es común en Estados Unidos que el mundo empresarial esté entrelazado con las universidades. Sobre todo en estos casos donde la innovación es requerida.
Pero parece que los alumnos contratados en esta empresa no fueron simples alumnos. Además de John Warnock están también Ed Catmull, cofundador de Pixar, o Jim Clark, de Silicon Graphics.
Se procuraron auténticas estrellas para su empresa. Pero, ¿dónde está ahí el problema, bro?
Evans& Sutherland era una empresa de gráficos computarizados. Parece que en un artículo de los Anales de la Historia de iE cubo John Warnock contó su experiencia trabajando en esta empresa. Al parecer, lideró un equipo de programadores en la misión de crear una simulación de la Bahía de Nueva York para la entrada y salida de barcos.
Obviamente, para el Ministerio de Defensa de los Estados Unidos.
Vale, pero no entremos en detalles. Vayamos al grano. ¿Qué tiene que ver este encargo con PostScript?
Cuando John Gaffney fue enviado a tomar fotos de la bahía y tras completar 38 rollos Tomaron una semana entera para digitalizar los detalles de la bahía. Parece que tuvo una brillante idea de traducir la información a instrucciones de texto que tomasen argumentos introducidos desde una interfaz y así mostrar interactividad.
Se ve bastante obvio. En lugar de introducir solo datos, introducir datos y funcionalidad. Es incluso una idea cercana a la programación orientada a objetos.
Yo lo veo obvio, no sé dónde está la novedad.
Recuerda, Chip, estamos en la década de 1970. Aunque haya lenguajes interpretados, aún se tiene la percepción de que todo debe ser escrito en ensamblador si quieres optimizar cada ciclo de reloj, y sobre todo si tienes sistemas muy pequeños, como es el caso de los PDP-11, que utilizaban tan solo 64 kilobytes de memoria.
Exacto. Este fue el primer contacto de John Warnock con los lenguajes interpretados y fue una epifanía para él. Gaffney, Zimmer y Warnock se centraron en diseñar este lenguaje basándose en otro lenguaje con un enfoque a pila que conocían: Forth.
Según veo, las principales características de este lenguaje aún sin nombre fueron: tipos de datos incluyendo números enteros, reales, cadenas de texto, colecciones, nombres, operadores, procedimientos, diccionarios y archivos.
Totalmente.
Imagina que incluso separaron en los diccionarios el tipo de dato para el nombre, la clave. Le asignaron un tipo propio y diferente al del valor, que podía ser cualquier otro tipo de dato.
Exacto. Acerca del nombre del lenguaje parece que no le dieron ninguno de momento, pero sigamos. Xerox PARC. En Xerox PARC confluyeron grandes personalidades del mundo de la computación y la programación. John Warnock fue uno de ellos. Cuando terminó su periodo de educación en la Universidad de Utah, decidió ir a trabajar y vivir a California y comenzó a trabajar en Xerox PARC.
No me extraña. ¿Cuántos hemos nombrado a lo largo de nuestros capítulos que trabajaron en Xerox PARC? A la mente me vienen nombres como Alan Kay.
A mí me suena también Douglas Engelbart, quien inventó el ratón de ordenador.
Pero eso fue muy anterior al momento del que hablamos, Chip. El ratón fue inventado en la década de 1960 y Engelbart recibió la patente en 1970.
Ciertamente hubo muchos coetáneos junto a Warnock, pero no extensamente conocidos, como son William Newman, que tuvo trascendencia en su trabajo con la rasterización de los mapas de bits, o Adele Goldberg, por su trabajo en Smalltalk-80 y pixel art.
Entonces, cuando Warnock llegó a Xerox PARC, tuvo claro copiar el lenguaje desarrollado en su empresa anterior, y es así como surgió PostScript. ¿No?
Más o menos. Ciertamente, Warnock echaba de menos la facilidad de ese lenguaje creado en Evans y Sutherland. Como no tenía nombre y tomó la ayuda de Marvin Newell, llamaron al lenguaje JAM: John and Martin.
¡Espera! Aquí dice que la ayuda vino también de Doug Wyatt. ¿No lo tuvieron en cuenta en el nombre?
Parece que al becario nunca le dan el reconocimiento que merece.
Centrándonos en JAM, este lenguaje se basó en dar formato a páginas para su renderización de elementos 3D. La tarea de Warnock era representar líneas, curvas, formas rellenas, texto, patrones geométricos y recortes o grupos de los otros elementos.
No dice nada sobre los tipos de datos o el lenguaje en sí. ¿Cómo sabemos que se parece o si es similar al lenguaje anterior?
Parece que con los datos que tenemos no podemos saberlo, Hexa.
Solo podemos confiar. El anterior lenguaje también se basó en la representación de elementos dentro de un simulador gráfico. Pero me preocupa que el nombre PostScript aún no haya aparecido.
Estamos en los orígenes, Chip. Vamos a 1979. Interpress. En este año algunos ingenieros dentro de Xerox, junto a Warnock, se embarcaron en el proyecto de diseñar un nuevo protocolo de impresora para Xerox.
¡El famoso protocolo de impresora! ¡Ya estamos cerca de PostScript!
Sí. Aunque parece que este fue Interpress. Visto de otra forma, un nombre con más gancho comercial.
¡Exacto! En sí, no era el nombre del lenguaje, sino del grupo de desarrollo. Durante 2 años estuvieron trabajando en el protocolo y Warnock tenía la sensación de que los elementos eran inconexos y raros y serían difícilmente comprensibles por los usuarios.
Aun así, Chuck Geschke y Warnock intentaron convencer a la dirección de Xerox sobre la potencia comercial de Interpress para que, por un lado, les dejasen hacer mejoras y, por el otro, abrir Interpress como estándar para otras impresoras de la competencia. Ante la negativa llegó la ardua decisión.
¿Ardua decisión? ¿Pensaron en abandonar Xerox PARC? ¿Con la cantidad de gente tan elocuente que había en esos años trabajando en ese sitio? ¿Querían abandonar el idílico lugar?
Lo llaman el sueño americano, Chip.
Imagina que programas algo que te parece uno de los mejores trabajos de tu carrera.
Aunque haya que hacer muchas mejoras para que deje de ser inconexo y raro.
Exacto, pero aún así, uno de los mejores trabajos. Y la dirección dice que no se abrirá a otros, no será un estándar, quedará solo para las impresoras Xerox.
Bueno, entonces supongo que con la idea de mostrar al mundo su desarrollo iniciaron... Adobe Systems.
Exacto. Aunque tuvieron un par de salidas en falso, sí. Hablaron con David Evans, de Evans& Sutherland, y tuvieron claras desde el principio dos cosas muy importantes: primero, utilizar el código del lenguaje inicial de Sherlock, pero que no formó parte de ningún producto: JAM.
Es casi como el regreso. Como si la segunda parte no hubiese sido lo suficientemente buena y esta tercera tuviese que volver al original.
No creo que sea porque Interpress no fuese lo suficientemente bueno, sino más bien por problemas de copyright, Hexa.
¡Exacto! La segunda cosa importante, y ahí sí entró Evans, fue presentarles a Bill Hambrecht, un conocido inversor de capital riesgo de Silicon Valley muy interesado en la idea.
¿A un inversor le interesaba la idea de un lenguaje para impresoras?
El interés del inversor estaba en las ventajas de ese lenguaje de impresoras. Chip?
Totalmente. El inversor estaba cansado de las impresoras financieras disponibles entonces.
Por ese motivo, durante 2 años les inyectó la cantidad de 2 millones de dólares y en diciembre de 1982 fundaron finalmente Adobe Systems.
¡Al fin! Entonces tomaron Jam y lo convirtieron en PostScript.
Según parece, hicieron algunas iteraciones de desarrollo y junto con Chuck Doug Brods, Bill Paxson y Ed Taft evolucionaron ese Jam hasta conseguir PostScript.
Sí, pero en principio pensaron PostScript para plataformas serias.
¿A qué te refieres con plataformas serias? ¿IBM PC?
Me temo que no. Warnock consideró IBM PC una plataforma inmadura, Apple como un juguete, y por lo tanto decidió centrarse en Sun Microsystems.
Exacto, aunque ante el auge de PostScript En 1983 recibieron una llamada de Steve Jobs.
No me extraña, los colores y diseños de Apple son muy estéticos, pero de ahí a considerar sus máquinas juguetes... es pasarse.
No te tenía por una fangirl de Apple. Aunque conociendo a Jobs, si consiguieron un acuerdo vendría implícito con algo que otras plataformas no obtendrían.
Jobs proporcionó una interfaz para el lenguaje. Apple había desarrollado QuickDraw para el Mac, y querían desarrollar un conversor de QuickDraw a PostScript. Y, ¿a que no sabéis en qué lenguaje lo implementaron?
¡No me digas! ¿En PostScript?
¡Totalmente! De esta forma, ese programa podía residir en la memoria de la impresora y facilitar mucho la interfaz del Mac.
De hecho, esta técnica se empleó mucho por parte de muchos clientes y aplicaciones. El problema de las fuentes. El enfoque de Adobe estuvo siempre en los sistemas de publicación e impresión donde PostScript era siempre su mayor componente.
¡No es para menos! Las fuentes creadas a partir de curvas Bézier en mapas de bits se ganaron la aceptación de artistas gráficos, profesionales del mundo de la publicación, fabricantes de impresoras y diseñadores de fuentes tipográficas.
La técnica era novedosa y única. Nadie en la industria conseguía calidades similares, y esto hizo a Adobe Systems despuntar con sus programas en la década de 1980.
Pero no hay ninguna patente relacionada con las fuentes de esa época. ¿No hicieron nada novedoso?
Sí que lo hicieron, pero Warnock no quería que otras empresas revisaran la patente e intentaran copiar en cierta forma sus hallazgos, así que no publicaron ni publicitaron nada hasta la conferencia de la American Philosophical Society en 2012.
¿Guardaron el secreto hasta 2012? ¡Vaya! Lo tomaron como la fórmula de la Coca-Cola entonces.
A día de hoy, las fuentes más usadas son: TrueType, cuyos ficheros tienen extensión TTF, y OpenType, cuya extensión es OTF. El formato Type 1 cayó en desuso.
No solo cayó en desuso, Adobe lo sepultó. Tras servir a su propósito durante más de 40 años, decidieron que ya era hora de usar los estándares y abandonar este viejo formato.
Conclusiones. Tras más de 40 años, Adobe Systems demostró que PostScript, como lenguaje de programación, les permitió adelantarse a la competencia y construir software que no se ejecuta solo en las computadoras, sino también en impresoras.
El sueño de Sun Microsystems con Java.
Creo que ellos no soñaban con tener Java en las impresoras, sino en las lavadoras.
Un lenguaje intérprete puede ser lento, ineficiente, un desastre desde el punto de vista de la optimización. Aunque, a nivel de compatibilidad y portabilidad, nos han demostrado ser bastante útiles y, por tanto, PostScript tiene nuestro respeto.
Pues va siendo hora de abrir la caja de comentarios, ¿no? ¿Sabías que tanto PostScript como PDF son lenguajes de programación?
¿Comenzarás a tener miedo cuando recibas un PDF de una fuente supuestamente fiable?
En esos casos es casi mejor tirar el mensaje al buzón de spam. Pero ya que estamos, ¿has revisado alguna de nuestras fuentes con programas en PS y PDF?
¿Has probado el Doom PDF? ¿No? Pues échale un vistazo. Y como siempre, déjanos tu comentario.
Pro, dijiste que ya habría algo del curso. ¿En qué punto estamos?
Cerca, Hexa, muy cerca. De hecho, en pocos días habrá novedades. Solo presta atención a la web y para recibir noticias suscríbete al curso, que ya queda menos.
¿Que me suscriba? Pero si yo doy el curso de Zig.
¿Y no quieres hacer el de Pascal? Continuará.
More from Manuel

Historia de los Lenguajes de Programación: años 1960-1969 #basic #apl #simula #lisp #logo

¿Compilador o intérprete? La historia de una rivalidad que comenzó en los años 40








