Posteado por
Javier February 19th 2008 en
Microsoft
Joel escribió un muy buen post sobre las especificaciones de los documentos de office que ms publicó hace unos días, y una de las primeras cosas que muestra es que son extremaaadamente complicados, ante lo cual dice que lo normal es asumir que los archivos de office:
* fueron deliberadamente ofuscados
* son el producto de una mente loca
* fueron creados por programadores locos
* son imposibles de leer y escribir correctamente
Cosas “logicas” a pensar, pero que Joel luego niega rotundamente.
Tiene algunos puntos interesantes:
* que los archivos fueron designados para computadoras viejas y que en esos tiempos lo que se buscaba era rapidez, por lo cual los archivos son guardados en formato binario para que al abrirlo lo único que haya que hacer es copiar la información del archivo a estructuras de c en memoria y listo, sin “parsear”.
* que fueron creados sin la interoperabilidad en mente, ya que eso es algo relativamente nuevo que la internet trajo. Antes no se pensaba tanto en compartir documentos entre todo el planeta por lo cual los documentos sgml y/o html no eran considerados. Y de cualquier manera, word soporta RTF el cual es muuucho mas facil de leer (tanto que es recomendado que si uno quiere hacer que una apliación “exporte documentos de word” se tome el trabajo de exportar a RTF en lugar de a un .doc)-
* que tienen que reflejar la ALTA complejidad de la aplicación. Cada una de las opciones de párrafo, página, texto, caráteres, estilo y lo que se te ocurra tiene que estar en el documento. Nombra una opción bastante clave, una que hace que un párrafo salte a la página siguiente para mostrarse completo. Ese “detalle” agrega un bit al documento y si uno quiere leer un documento de word desde su aplicación y no considera ese bit los documentos van a quedar malformados.
* que tienen que reflejar la historia de la aplicación. Miles de años de “horas programador” fueron puestos en el desarrollo de las aplicaciones de office y los documentos, y la mayoría de las cosas mas raras que hay en la especificación que presentó microsoft son cosas que ya no se usan, pero que tienen que estar ahi para mantener compatibilidad.
Después explica da unos ejemplos de estas cosas y termina su post mostrando algunas formas de usar documentos de office sin necesidad de implementar toda la complicada especificación en nuestro soft.
Algunas de las formas son: usar los objetos comm de office (solo desde windows) o directamente usar tipos de archivo compatibles, como csv en lugar de documentos de excel o rtf en lugar de documentos de word.