bk99.de entertain the web since 1997

Why Microsoft Office file formats are so complicated

Summary

Joel Spolsky explains the historical complexity of binary Office formats and shows why full compatibility has to preserve numerous old special cases. Early Office versions ran on very limited hardware. Binary formats were optimised for fast loading and saving.

Ideas

  • File formats often store optimised internal states rather than abstract document models.
  • Old hardware limits influence structures decades later.
  • Fast incremental saving leaves behind chained and partly redundant data.
  • Backward compatibility preserves bugs and special cases of early versions.
  • Undocumented assumptions arise when implementation and format grow together.
  • Converters need knowledge of behaviour, not just a description of fields.

Insights

  • Persistent formats accumulate technical history like layers of sediment.
  • Compatibility is a user feature but causes permanent development costs.
  • A clean new schema does not solve the migration of existing documents.
  • Documentation must explain intent, variants and error cases together.

Facts

  • Numerous versions had to remain mutually readable.
  • The specifications ran to thousands of pages.

Recommendations

  • Define new formats independently of transient memory structures.
  • Maintain reference files for old and faulty variants.
  • Test converters against real document collections rather than only generated examples.

References

Read the original article

Search the Web Archive