¿Por qué Microsoft cambió los documentos de Word de doc a docx?

Para comprender esta decisión, debe comprender el historial del software de Windows con referencia específica a Word y Excel.

Había una vez una cosa llamada intercambio dinámico de datos, o DDE, que permitía la colaboración entre dos aplicaciones en ejecución. Un uso de DDE permitió la incrustación (por ejemplo) de un trozo de hoja de cálculo de Excel en un documento de Word.

Word tiene una tabulación básica, pero Excel es tablas por excelencia , por lo que fue una buena disposición, especialmente cuando los valores pueden calcularse a partir de los datos en otra hoja de cálculo vinculada.

La gente hizo un uso cada vez más elaborado de esta instalación y el apoyo para él se hizo cada vez más elaborado. Con la transición de la multitarea cooperativa de 16 bits a Windows de 32 bits, la vinculación e incrustación de objetos se convirtió en una tecnología por derecho propio. Es posible que lo conozca como OLE que gradualmente se transformó en COM y ActiveX. Desde Office95, las aplicaciones de Microsoft Office se han implementado con tecnología COM.

Cuando edita un documento, está creando y configurando propiedades en una jerarquía de objetos COM. Cuando guarda este documento, está serializando todo el gráfico. Serializar significa almacenarlo como una secuencia lineal de bytes. El gráfico en este contexto se refiere a un árbol de objetos COM. Esos objetos pueden ser parte o la totalidad de otra aplicación de Office, que puede contener objetos incrustados, o pueden ser de algún otro servidor COM, por ejemplo, una foto JPEG.

Cuando hace clic en Guardar en Word, esto crea una secuencia (una forma de escribir en un archivo en el disco) y le dice al objeto más externo que se serialice en la secuencia. En el proceso de hacerlo, le dice a cada uno de los elementos COM incrustados en él que se serialicen en la secuencia, y lo mismo hacen.

Históricamente, la serialización COM básicamente hacía una copia binaria del objeto desde la memoria al flujo de archivos. Esto es lo que hay en un archivo DOC.

Sin embargo, también puede describir un objeto COM y todas sus propiedades, algunas de las cuales pueden ser objetos COM incrustados, utilizando XML.

Si, en lugar de una copia binaria de memoria, el objeto COM se describe a sí mismo y su estado usando XML, lo que obtienes es un archivo DOCX.

Con el enfoque binario, cargarlo de nuevo en la memoria es muy simple: copiar del archivo a la memoria. A menos que lo esté cargando en una plataforma diferente, como una Mac. Luego necesita un montón de software de carga complicado para decodificarlo y producir el objeto equivalente de MacWord y luego establecer todas sus propiedades.

Este material multiplataforma es mucho menos complicado si todo lo que tiene que analizar es XML. Analizar XML es muy fácil y muy rápido y no tiene endianness para complicar tu vida.

¿Pero por qué debería importarle a Microsoft?

Primero, Microsoft recibe muchas tonterías de Evil Empire sobre encerrar deliberadamente a las personas. Honrar un estándar abierto lo apaga. En segundo lugar, libera a Microsoft de las restricciones de compatibilidad de bits en todas las versiones. Tercero, se puede transformar con XSLT. Cuarto, es transparente. Puedes ponerle un virus pero no puedes ocultarlo .

Las razones principales fueron portabilidad y mantenibilidad. La seguridad también jugó un papel importante.

Desde las primeras versiones de Word y Excel, la forma en que se guardaron los documentos DOC y XLS fue básicamente como “forzar un volcado del núcleo”. Es decir, no había un formato per se, sino que el “documento” resultante era básicamente una instantánea binaria del área de datos en el momento en que el usuario hizo clic en “guardar”. En la era oscura de la era de las PC, esto era conveniente porque las computadoras eran más lentas y simples, ya que nosotros mismos somos los documentos. Al guardar y cargar instantáneas binarias en lugar de un formato de archivo estructurado definido por separado, no era necesario escribir ninguna rutina de codificación o análisis. La gestión de archivos es una operación simple de copia de memoria. Es por eso que MS Office siempre fue bastante rápido en cargar y guardar.

Pero luego las cosas se complican rápidamente. Primero está el lanzamiento de nuevas versiones de los programas. Debido a que los documentos son volcados de memoria, eso significa que la compatibilidad se rompe MUY fácilmente. Si la interfaz binaria cambia en lo más mínimo, el documento antiguo se bloqueará en la nueva versión. Por lo tanto, cada vez que salía un lanzamiento importante de Office, MSFT tenía que agregar una gran cantidad de hinchazón para convertir lo que es un blob binario complicado en un nuevo blob complicado. Luego está la versión para Mac. Como en ese momento tenía una arquitectura de hardware y un sistema operativo completamente diferentes, los viejos formatos de blob binarios eran completamente incompatibles e inútiles. Eventualmente tiene varios “formatos” ligeramente diferentes, todos llamados DOC o XLS. Se convirtió en una pesadilla de conversión de archivos! Algo así como el infierno de DLL …

El segundo fue la creación de “vinculación e incrustación de objetos” u OLE. Si incrusta algo como un mapa de bits, o un gráfico de Excel, etc. Esto funciona incorporando los datos de otro programa y cuando lo carga en realidad ejecuta ese programa dentro de Word. Sí, ese cuadro en su documento de Word se hace realmente abriendo una copia “oculta” de Excel y ejecutándola dentro de esa pequeña caja que contiene el cuadro. Pero dado que estos archivos son volcados de memoria, el problema de compatibilidad de la versión no solo afecta a Office … ¡afecta a TODO lo que incrusta! Por lo tanto, si se ha vuelto loco con OLE y cosas incrustadas de programas fuera de la oficina, ¡puede romper sus documentos de oficina actualizando otro programa!

Finamente está el problema del virus. Como los formatos antiguos eran volcados directos de memoria, no hubo verificación de cordura. Los virus podrían ocultar mucho más fácilmente algo ejecutable en documentos de Office antes de los nuevos formatos “*** X”. Entonces, por un tiempo, los archivos DOC y XLS se convirtieron en un medio popular para propagar malware.

Entonces, para abordar estos problemas, MSFT creó los formatos “X”. Básicamente tomaron los volcados de blob binarios y crearon rutinas de “serialización” basadas en XML que traducían el estado binario en descripciones con formato XML de cómo reconstruir las instantáneas binarias. Esto significa que los formatos de archivo fueron más fáciles de decodificar y no dependemos de la versión del programa o la arquitectura de la CPU (docx y xlsx, etc., son archivos de texto rellenos en un archivo zip … no tienen binario). El costo de esto hacía que sea más difícil y más lento guardar y cargar … ahora estaba involucrado un analizador. Sin embargo, en la década de 2000, las computadoras eran tan poderosas que la penalización de rendimiento era de solo milisegundos y, por lo tanto, no preocupaba a los usuarios. Sin embargo, la compensación valió la pena:

  • Los nuevos formatos no dependen de la comparabilidad binaria para funcionar en futuras versiones o puertos de programas. Se pueden realizar cambios importantes que alteran las interfaces binarias en Office y se garantiza la compatibilidad con versiones anteriores sin la necesidad de un proceso de conversión especial
  • Hace que sea mucho más fácil proporcionar una compatibilidad perfecta entre plataformas y arquitecturas, como Windows en ARM, MacOS, Android, etc.
  • Los virus no pueden ocultar fácilmente el código binario dentro de los documentos … están limitados a lo que las macros pueden hacer dentro de sus cajas de arena
  • Al utilizar correctamente los analizadores XML, los formatos de archivo pueden ser compatibles con versiones anteriores y posteriores, e incluso pueden gestionar conflictos de versiones dentro de los componentes OLE al degradarlos con gracia. ¡No más pesadilla de conversión de archivos!

Mucha gente desearía que MSFT hubiera adoptado otro formato basado en XML llamado ODF, pero no querían trabajar porque no les beneficiaba. En su lugar, simplemente crearon etiquetas y atributos XML para representar las estructuras de datos dentro de los archivos basados ​​en el volcado binario heredado. Menos trabajo y mantiene algunas barreras a la competencia. En cualquier caso, era una media medida en la dirección correcta.

Debido a que DOCX supera a DOC de la siguiente manera,

  • Doc se puede leer en todas las versiones de MS Word, pero Docx solo se puede leer en Word 2007 y versiones posteriores, a menos que haya instalado algunos paquetes adicionales o de compatibilidad en MS Word 2003;
  • El tamaño del archivo Docx es un 75% menor que el tamaño del archivo de doc;
  • Los archivos Docx pueden convertirse fácilmente en doc, .html, .rtf y otros formatos de archivo, pero un documento debe convertirse con la ayuda de un software profesional;
  • Docx es un formato de archivo de apertura que puede ser fácilmente accesible;
  • Docx es más potente y versátil en funciones.

Fuente: Diferencia entre Doc y Docx

La razón principal de este cambio fue agregar transparencia, versatilidad y portabilidad al formato para hacer que el documento de Word sea más fácil de entender técnicamente e integrar desde otras aplicaciones, servicios de software, procesos, etc. Aquí hay un artículo que explica más detalles: http://www.thebookdesigner.com/2