Многим приходится иметь дело со старыми аппаратными интерфейсами: к примеру, это наследственные команды в процессоре или режимы работы оборудования. Программисты могут поспорить, что подобное усложняет разработку программного обеспечения, является проблемой с точки зрения безопасности и банально не нужно, поскольку софт работает хуже в режиме совместимости. Инженеры рвут волосы при очередном упоминании необходимости добавить поддержку старого оборудования. И их можно понять.
Но вычислительные машины ценны не своими характеристиками, а набором программного обеспечения, которое они могут запускать. Именно поэтому во многих ситуациях так важно обеспечивать обратную совместимость с оборудованием предыдущего поколения — нравится это разработчику или нет. Но иногда обратная совместимость принимает причудливые формы. Сложно подобрать правильное слово: то ли это «костыли», то ли вполне обоснованные решения.
Читать полностью »