# Legacy
Software over time never shrinks, it only expands. The legacy
tail of hardware on that software is long.
We are still emulating teletypes, software support still exists for
many terminal types, among other things, that have long since become
extinct.
We are still using qwerty keymaps, designed to avoid the binding of
physical hammers. Horizontally offset keys to allow for the physical
bars which connected the keys to the hammers.
The list goes on ...
The reasons for many of these design choices have long gone, but they
are entrenched.
Maybe after a time people don't stop to question why? It becomes the
standard, the norm and there are too many layers to risk significant
change.
## Hardware
There is no excuse with regard to hardware. We don't need to use
qwerty keymaps or horizontally offset keyboards. The manufacturers
just need to change their offerings or we need to find keyboards we
can switch the keycaps. Personally I use a remapped qwerty keyboard
with a dvorak keymap. I haven't needed to look at the keys for a very
long time, even when I was learning I put a printout behind the
keyboard so that I could keep my hands in place.
## Software
This one is more challenging because of the nature of software.
Everything is derived from or built upon something which came before
and removing things at the lower levels of the stack can have
unforeseen effects on what is above.
Plan9 I think tried to sidestep this problem of legacy. Being
something new, something different, there were no expectations of
backward compatibility, that gives a lot of freedom. Although they
did port a lot of their familiar tools from UNIX.
## Cutting the tail
I'm not sure if there has ever been an audit of hardware still in use
but if not, I think it would be a great help so that there is a point
you know you can cut the tail without causing problems. To be able to
confidently remove swathes of decades old code would surely be
something worth celebrating?
## Old is not necessarily bad
With regard to hardware there are tradeoffs. Older is usually less
power efficient and performant, but what you sacrifice in power
efficiency and speed you usually gain in longevity, repairability and
robustness.
With regard to software many lessons are learned over time and mature
software usually has the majority of the bugs fixed and
implementation issues ironed out. Reimplementations can often
introduce new bugs and repeat previous, already resolved
implementation errors.
## Summary
A note to hardware producers, we no longer need horizontally
staggered keys, unless the reason is to improve ergonomics. Please
also produce keyboards with switchable key caps so they can be
arranged for more optimal key maps.
Computer users, you should use a keymap that is most optimal for your
usage[1].
OpenBSD is meant to be comparatively minimalist and I have very few
packages installed, yet I am using 5.7G of my 7.3G root partition.
Last sysupgrade I ran out of available space to complete and the
situation, as explained above, will only continue to get worse.
How do you identify and remove legacy code from the current stack
without it all coming crashing down?
## References
[1](
http://patorjk.com/keyboard-layout-analyzer/v2/)