Scribe es un lenguaje de marcado y un sistema de procesamiento de textos que fue pionero en el uso del marcado descriptivo . [1] [2] Scribe fue revolucionario cuando se propuso, porque implicó por primera vez una separación clara de presentación y contenido . [3] [4] [5]
Scribe fue diseñado y desarrollado por Brian Reid de la Universidad Carnegie Mellon . Fue el tema de su tesis doctoral de 1980, por la que recibió el premio Grace Murray Hopper de la Association for Computing Machinery en 1982. [1]
Reid presentó un artículo que describe Scribe en la misma sesión de conferencia de 1981 en la que Charles Goldfarb presentó GML (desarrollado en 1969), [6] el predecesor inmediato de SGML .
En 1979, al final de su carrera de estudiante de posgrado, Reid vendió Scribe a una empresa de software del área de Pittsburgh llamada Unilogic (posteriormente rebautizada como Scribe Systems [7] ), fundada por Michael Shamos , otro científico informático de Carnegie Mellon, para comercializar el programa. Reid dijo que simplemente estaba buscando una forma de descargar el programa sobre los desarrolladores para evitar que pasara al dominio público.
Michael Shamos se vio envuelto en una disputa con los administradores de Carnegie Mellon sobre los derechos de propiedad intelectual de Scribe. La disputa con la administración se resolvió extrajudicialmente y la universidad admitió que no tenía ningún derecho sobre Scribe. [8]
Reid aceptó insertar un conjunto de funciones dependientes del tiempo (llamadas " bombas de tiempo ") que desactivarían las versiones del programa copiadas libremente después de una fecha de vencimiento de 90 días. Para evitar la desactivación, los usuarios pagaban a la empresa de software, que luego emitía un código que desactivaba la función interna de bomba de tiempo.
Richard Stallman consideró que esto traicionaba el espíritu del programador . En lugar de respetar la idea de “compartir y compartir por igual”, Reid había introducido una forma para que las empresas obligaran a los programadores a pagar por el acceso a la información. [9]
El Texinfo de Stallman está "basado libremente en el Scribe de Brian Reid y otros lenguajes de formato de la época" [ cita requerida ] . [10]
El uso de Scribe implica un proceso de dos fases:
El lenguaje de marcado Scribe definía las palabras, líneas, páginas, espaciado, encabezados, pies de página, notas al pie, numeración, tablas de contenido, etc. de forma similar a HTML . El compilador Scribe utilizaba una base de datos de estilos (que contenía definiciones de formato de documento), que definía las reglas para formatear un documento en un estilo particular.
Debido a la separación entre el contenido (estructura) del documento y su estilo (formato), los escritores no tuvieron que preocuparse por los detalles del formato. En esto, existen similitudes con el sistema de preparación de documentos LaTeX de Leslie Lamport .
La idea de utilizar un lenguaje de marcado, en el que la metainformación sobre el documento y su formato estuvieran contenidos dentro del propio documento, se utilizó ampliamente por primera vez en un programa llamado RUNOFF ; Scribe contenía la primera implementación robusta de un lenguaje de marcado declarativo. [11]
En Scribe, el marcado se introdujo con un signo @, seguido por un bloque Begin-End o por una invocación de token directa:
@Encabezado(El comienzo)@Begin(Cita) Empecemos por el principio, un muy buen lugar para empezar.@Fin(Cita)
También fue posible pasar parámetros:
@MakeSection(tag=beginning, title="El comienzo")
Por lo general, los documentos grandes se componían de capítulos, y cada capítulo se encontraba en un archivo independiente. A continuación, se hacía referencia a estos archivos mediante un archivo de documento maestro, concatenando así numerosos componentes en un único documento fuente de gran tamaño. El archivo maestro también solía definir estilos (como fuentes y márgenes) y declaraba macros como MakeSection, que se muestra arriba; las macros tenían funciones programáticas limitadas. A partir de esa única fuente concatenada, Scribe calculaba los números de capítulo, los números de página y las referencias cruzadas.
Estos procesos replican características de lenguajes de marcado posteriores como HTML . Colocar estilos en un archivo separado proporcionó algunas ventajas, como las hojas de estilo en cascada , y las macros programadas presagiaron los aspectos de manipulación de documentos de JavaScript .
El procesador de textos FinalWord de Mark of the Unicorn , que se convirtió en Sprint de Borland , incluía un lenguaje de marcado que se parecía a una versión simplificada de Scribe. Antes de ser empaquetado como FinalWord, las versiones anteriores del editor y del formateador se vendían por separado como MINCE ("MINCE Is Not Complete Emacs ") y Scribble respectivamente.
LaTeX extiende TeX con las ideas de marcado descriptivo de Scribe.
Por sus contribuciones en el área de producción de textos computarizados y sistemas de composición tipográfica, específicamente Scribe, que representa un avance importante en esta área. Incorpora varias innovaciones basadas en la investigación de la ciencia informática en el diseño de lenguajes de programación, sistemas basados en el conocimiento, procesamiento de documentos informáticos y tipografía.
Brian Reid. Lenguaje innovador de formato de texto. Motivo por el que Reid recibió la Medalla Hopper en 1982.
trabajo de Brian Reid con sistemas de marcado comenzó en la década de 1970. Inventó e implementó de forma independiente el marcado descriptivo y desarrolló su teoría. Su sistema Scribe puede haber sido la separación más clara de estructura y formato jamás construida. Su disertación sobre él ya estaba completa en 1981, el año en que se presentó en Lausana en la misma sesión en la que Charles Goldfarb presentó públicamente GML; SGML se propuso aproximadamente un año después.
El marcado "generalizado", "genérico" o "descriptivo" se ha descubierto varias veces, aparentemente de forma independiente. Scribe [Reid 1981] es uno de los primeros formateadores basados en la estructura en lugar de en comandos de formato.
Para Reid, el acuerdo fue beneficioso para ambas partes. Scribe no pasó a ser de dominio público y Unilogic recuperó su inversión. Para Stallman, fue una traición a la ética del programador, pura y simplemente. En lugar de honrar la noción de compartir y compartir por igual, Reid había introducido una forma para que las empresas obligaran a los programadores a pagar por el acceso a la información.