# OpenDoc

OpenDoc fue un software de componentes. Un framework estándar creado por Apple en los noventa del siglo pasado. Fue desarrollado para crear documentos compuestos que fueran una alternativa a los Object Linking and Embedding (OLE). de Microsoft. El desarrollo se hizo en la AIM alliance entre Apple, IBM, and Motorola, OpenDoc es uno de los primeros experimentos de Apple con los estándares abiertos y métodos de desarrollo colaborativo con otras compañías. Iniciando de hecho un consorcio. EL desarrollo activo fue descontinuado en marzo de 1997.
La idea central de OpenDoc era crear componentes, pequeños y usables, responsables de una tarea específica, como editar texto, editar bitmaps o navegar un servidor FTP. OpenDoc provería un framework en el que estos componentes podían correr juntos y cada componente crea un formato de documento para guardar los datos. Estos documentos podrían entonces ser abiertos por otras computadoras, donde los OpenDoc frameworks sustituían componentes adecuados para cada parte, aunque fueran de un proveedor. diferente. De esta manera los usuarios podía construir sus documentos por partes. Como no existe una aplicación principal y la única interfaz visible es el documento por sí mismo, el sistema es conocido como centrado en documento.
En sus inicios se imaginó que OpenDoc permitiría por ejemplo, a pequeños desarrolladores entrar en el competitivo mercado del software de suites de oficina, permitiendo construir un buen editor en vez de tener que proveer un paquete completo.

## Primeros esfuerzos

OpenDoc fue creado inicialmente por Apple en1992, después que Microsoft se acercó a Apple preguntando retroalimentación sobre un proyecto OLE II propuesto. Apple había estado experimentando con componentes de software internamente durante algún tiempo, basado en el trabajo inicial realizado en su modelo de liga Publish and Subscribe y el lenguaje de scripting AppleScript, que a su vez se basó en el entorno de programación HyperCard. Apple revisó el prototipo y el documento de Microsoft y devolvió una lista de problemas que vieron con el diseño. Microsoft y Apple, que eran muy competitivos en ese momento, no pudieron ponerse de acuerdo sobre objetivos comunes y no trabajaron juntos..
Al mismo tiempo, un grupo de desarrolladores externos se había reunido en el Apple Worldwide Developers Conference (WWDC '91) e intentó establecer un formato de documento estandarizado, basado conceptualmente en el Electronic Arts Interchange File Format (IFF). Apple se interesó en este trabajo y pronto dedicó algunos ingenieros a la tarea de construir, o al menos documentar, dicho sistema. El trabajo inicial se publicó en los CD de la WWDC, así como una serie de versiones de seguimiento en los CD de desarrolladores posteriores. Un sistema de documentos de componentes solo funcionaría con un formato de documento conocido que todos los componentes pudieran usar, por lo que pronto el formato de documento estandarizado se incorporó al esfuerzo del software de componentes. El formato cambió rápidamente de uno simple usanba etiquetas a una capa de persistencia orientada a objetos muy compleja llamada Bento.
Inicialmente el esfuerzo tenía un nombre de código "Exemplar", después "Jedi", "Amber", y eventualmente "OpenDoc".

## Visiones en competencia

Con OpenDoc entrando en la histórica alianza AIM entre Apple, IBM y Motorola, Apple también participó en Taligent durante parte de este período, que prometía una funcionalidad algo similar aunque basada en mecanismos subyacentes muy diferentes. Mientras OpenDoc aún se estaba desarrollando, Apple confundió mucho las cosas al sugerir que debería ser utilizado por personas que portan software existente únicamente, y los nuevos proyectos deberían basarse en Taligent, ya que ese sería el próximo sistema operativo. En 1993, John Sculley llamó Project Amber (un nombre en clave para lo que se convertiría en OpenDoc) un camino hacia Taligent. Taligent fue considerado el futuro de la plataforma Mac, y el trabajo en otras herramientas como MacApp fue considerablemente despriorizado.
A lo largo de toda la vida útil de OpenDoc, los analistas y los usuarios supuestamente "tenían puntos de vista muy diferentes" de la iniciativa OpenDoc. Estaban confundidos acerca de su papel, con respecto a cuánto del desarrollo basado en OpenDoc sería su responsabilidad frente a la responsabilidad de IBM y Apple. Nunca hubo muchos componentes OpenDoc lanzados en comparación con los componentes ActiveX de Microsoft. Por lo tanto, la recepción fue muy variada.
A partir de 1992, Apple también participó en un esfuerzo por reemplazar el marco de desarrollo de MacApp con una solución multiplataforma conocida como Bedrock, de Symantec. Think C de Symantec se estaba convirtiendo rápidamente en la herramienta preferida para el desarrollo en Mac. Apple había estado trabajando con ellos para trasladar sus herramientas a PowerPC cuando se enteraron de las herramientas de migración internas de Symantec. Apple propuso fusionar los conceptos y el código de MacApp existentes con los de Symantec para producir un sistema multiplataforma avanzado. Bedrock comenzó a competir con OpenDoc como la solución para el desarrollo futuro.
A medida que OpenDoc ganó popularidad dentro de Apple, la compañía comenzó a presionar a Symantec para que incluyera la funcionalidad OpenDoc en Bedrock. Symantec no estaba interesado en esto, y finalmente renunció al esfuerzo y pasó el código a Apple. Bedrock estaba en un estado de desarrollo muy temprano en este punto, incluso después de 18 meses de trabajo, ya que el equipo de desarrollo de Symantec sufría una rotación continua. Apple propuso que el código se usaría para la programación OpenDoc, pero nunca más se supo de esto y Bedrock desapareció.
Como resultado de que Taligent y Bedrock eran las futuras plataformas prometidas oficialmente por Apple, se invirtió poco esfuerzo en actualizar MacApp. Debido a que Bedrock se suspendió en 1993 y Taligent se suspendió en 1996 sin ningún lanzamiento de MacOS, esto dejó a Apple solo con OpenDoc como un sistema de programación moderno basado en OO.

## Participantes

El equipo de desarrollo se dio cuenta a mediados de 1992 de que se necesitaba una coalición industrial para promover el sistema y creó los Laboratorios de integración de componentes (CI Labs) con IBM y WordPerfect. IBM introdujo el sistema System Object Model (SOM) biblioteca compartida al proyecto, que se convirtió en una parte importante de los esfuerzos futuros de Apple, dentro y fuera de OpenDoc. En 1996, el proyecto fue adoptado por el Grupo de administración de objetos, en parte debido al uso de SOM de la Arquitectura de agente de solicitud de objeto común (CORBA), mantenida por el OMG.
Como parte de la alianza AIM entre Apple, IBM y Motorola, OpenDoc es uno de los primeros experimentos de Apple con estándares abiertos y métodos de desarrollo colaborativo con otras empresas. Apple y sus socios nunca publicaron el código fuente, pero pusieron la fuente completa a disposición de los desarrolladores con fines de retroalimentación, pruebas y depuración.

## Lanzamiento

El subsistema OpenDoc fue publicado en el System 7.5, y después en OS/2 Warp 4.

## Productos

Después de tres años de desarrollo en OpenDoc, el primer lanzamiento de producto basado en OpenDoc es el navegador web CyberDog de Apple en mayo de 1996. El segundo fue el 1 de agosto de 1996, de los dos paquetes de componentes OpenDoc de IBM para OS / 2, disponibles en el Club. Sitio web de OpenDoc para una prueba gratuita de 30 días: Person Pak es "componentes destinados a organizar nombres, direcciones y otra información personal", para su uso con aplicaciones de gestión de información personal (PIM), a $ 229; y el Table Pak "para almacenar filas y columnas en un archivo de base de datos" a $ 269. IBM anticipó entonces el lanzamiento de 50 componentes más a finales de 1996.Gaudin, Sharon (29 de julio de 1996). «IBM ships first batch of OpenDoc components». Computerworld: 14. Consultado el 17 de julio de 2019. </ref>
El WAV procesador de textos es un OpenDoc procesador de textos semi-exitoso de Digital Harbour LLC. El paquete Numbers & Charts es una hoja de cálculo y una solución de gráficos en tiempo real 3D de Adrenaline Software. Lexi de Soft-Linc, Inc. es un paquete lingüístico que contiene un corrector ortográfico, un diccionario de sinónimos y una herramienta de traducción simple que utilizan WAV y otros componentes. El software Nisus Writer de Nisus incorporó OpenDoc, pero su implementación fue irremediablemente defectuosa. Bare Bones Software probó el mercado haciendo que su editor de texto gratuito BBEdit Lite esté disponible como un componente de editor OpenDoc. RagTime, un paquete de oficina completamente integrado con hoja de cálculo, publicación y edición de imágenes se transfirió a OpenDoc poco antes de que se cancelara OpenDoc. El lanzamiento de Apple en 1996 de ClarisWorks 5.0 (el predecesor de AppleWorks) fue planeado para soportar componentes OpenDoc, pero esto fue descartado.

### Educativo

Otra aplicación de contenedor OpenDoc, llamada Dock'Em, fue escrita por MetaMind Software con una subvención de la National Science Foundation y encargada por el Centro de Investigación en Educación Matemática y Científica, con sede en San Diego State University . El objetivo era permitir la inclusión de contenido multimedia en los documentos que describen el plan de estudios.
Varias simulación física fueron escritas por MetaMind Software y por la firma de software rusa Physicon (OpenTeach) como partes de OpenDoc. Los planes de estudio de física para la escuela secundaria y la escuela intermedia los utilizaron como enfoque. Con la descontinuación de OpenDoc, las simulaciones se reescribieron como applet de Java y se pusieron a disposición del Centro como The Constructing Physics Understanding (CPU) Project por Dr. Fred Goldberg.
Los componentes de la plataforma de micromundos educativos E-Slate se implementaron originalmente como partes de OpenDoc en C ++ tanto en MacOS como en Windows, se reimplementaron más tarde (después de la interrupción de OpenDoc) como applets de Java y finalmente como JavaBeans.

## Problemas

La flexibilidad de OpenDoc tuvo un costo. Los componentes de OpenDoc eran invariablemente grandes y lentos. Por ejemplo, abrir una parte de un editor de texto simple a menudo requeriría 2 megabytes de RAM o más, mientras que el mismo editor escrito como una aplicación independiente podría ser tan pequeño como 32 KB. Esta sobrecarga inicial se volvió menos importante a medida que aumentaba la cantidad de documentos abiertos, ya que el costo básico era para las bibliotecas compartidas que implementaban el sistema, pero era grande en comparación con las máquinas de nivel de entrada del día. Muchos desarrolladores sintieron que la sobrecarga adicional era demasiado grande y, dado que el sistema operativo no incluía la capacidad de OpenDoc, la huella de memoria de sus aplicaciones basadas en OpenDoc parecía inaceptablemente grande. En términos absolutos, la sobrecarga de la biblioteca por única vez era de aproximadamente 1 megabyte de RAM, que en ese momento era casi la mitad del complemento de RAM completo de una computadora de escritorio de gama baja.
Otro problema era que OpenDoc tenía poco en común con la mayoría de los formatos de documentos del "mundo real", por lo que los documentos OpenDoc solo podían ser utilizados por otras máquinas OpenDoc. Aunque uno esperaría algún esfuerzo para permitir que el sistema exportara a otros formatos, esto a menudo no era práctico porque cada componente contenía sus propios datos. Por ejemplo, requirió un esfuerzo significativo para que el sistema pudiera convertir un archivo de texto con algunas imágenes en un documento de Microsoft Word, tanto porque el editor de texto no tenía idea de lo que había en los objetos incrustados como porque el formato propietario de Microsoft no estaba documentado. y requirió ingeniería inversa.
Otro problema fue el hecho de que cada parte guardaba sus datos dentro de Bento (el nombre anterior de un formato de archivo de documento compuesto OpenDoc) en su propio formato binario interno, y era muy común encontrar que un componente no podía abrir un documento creado por otro. aunque los datos internos representan objetos similares (datos de hoja de cálculo, por ejemplo). OpenDoc intentó resolver este problema permitiendo a los desarrolladores almacenar múltiples formatos para representar el mismo objeto de documento. Por ejemplo, era posible y se animaba a almacenar un formato común como JPEG junto con un formato binario editable, pero en la práctica pocos desarrolladores siguieron esta recomendación. Este problema no era exclusivo de OpenDoc y, de hecho, también lo experimentó el equivalente de Microsoft, Object Linking and Embedding (OLE). De hecho, muchos años después, los documentos XML que intentan incrustar otros formatos XML también encuentran problemas similares.
También parece que OpenDoc fue víctima de un concepto de sobreventa, el de los documentos compuestos. Solo unos pocos ejemplos específicos son comunes, por ejemplo, la mayoría de los procesadores de texto y los programas de diseño de páginas incluyen la capacidad de incluir gráficos, y se espera que las hojas de cálculo manejen gráficos.
El mayor problema del proyecto fue que formaba parte de una competencia muy enconada entre los miembros del consorcio OpenDoc y Microsoft. Todos los miembros de la alianza OpenDoc estaban tratando de obtener tracción en un mercado dominado rápidamente por Microsoft Office. A medida que los diversos socios acumulaban sus propias tecnologías favoritas con la esperanza de convertirlo en un estándar de la industria, OpenDoc se volvió cada vez más difícil de manejar. Al mismo tiempo, Microsoft utilizó la sinergia entre el sistema operativo y las divisiones de aplicaciones de la empresa para hacer que sea efectivamente obligatorio que los desarrolladores adopten la tecnología OLE de la competencia. Para obtener un logotipo de cumplimiento de Windows 95 de Microsoft, uno tenía que cumplir con ciertas pruebas de interoperabilidad que eran bastante difíciles de cumplir sin la adopción de la tecnología OLE, aunque la tecnología solo era útil en gran medida para integrarse con Microsoft Office. OpenDoc se vio obligado a crear una capa de interoperabilidad para permitir a los desarrolladores incluso considerar la adopción, y esto agregó una gran carga técnica al proyecto.

## Cancelación

OpenDoc tenía inscritos varios cientos de desarrolladores, pero el momento no era el adecuado. Apple estaba perdiendo dinero rápidamente en ese momento y muchos en la prensa de la industria esperaban que la empresa fracasara.
OpenDoc pronto fue descontinuado. Con Steve Jobs (quien estaba en NeXT mientras se desarrollaba) señalando que "pusieron una bala en la cabeza [de OpenDoc]", y la mayor parte del Grupo de Tecnología Avanzada de Apple fue despedida en una gran reducción de personal en marzo de 1997. Otras fuentes señalaron que Microsoft contrató a tres desarrolladores de ClarisWorks que eran responsables de ClarisWorks.
AppleShare|AppleShare IP Manager de la versión 5.0 a la 6.2 dependían de OpenDoc, pero AppleShare IP 6.3, la primera versión compatible con Mac OS 9 (publicado en 1999), eliminó la dependencia de OpenDoc. Apple renunció oficialmente a la última marca registrada en el nombre "OpenDoc" el 11 de junio del 2005.

## También ver

* KParts por una alternativa de código abierto.