Microsoft product improvement suggestions
Markus Kuhn, Computer
Laboratory, University of Cambridge
Here is a list of the issues that I would most like Microsoft to
have a look at in their products, standards and conventions:
- The IBM PC Real Time Clock should run in UT.
- German/Dutch/etc. keyboard users
should be prevented from entering the spacing acute accent
(U+00B4) by any other means than deadacute+space, because too many
people accidentally use it as an apostrophe (as in "it´s").
- The keyboard input methods used by Word for entering directional quotation marks and other
typographic symbols not found on standard keyboards should be moved
from Word into the keyboard driver, such that all applications benefit
from them and users universally use typographically correct Unicode
symbols. The ASCII quotation mark, apostrophe, and hyphen-minus
characters should only be generated from keystrokes in a special ASCII
mode for writing source code, etc.
- Plain-text editors should not use the Unicode character U+000D
(carriage return). The use of this character to precede any occurance
of U+000A (line feed) at the end of a line in a plain-text file is a
historic anachronism from the days of mechanical teletype machines and
serves no useful practical purpose today. Neither POSIX nor MacOS
operating systems use this character. Continued use of this character
by Microsoft editors causes several unnecessary problems:
- Plain-text files have top be converted when transfered between a
Microsoft and non-microsoft platform.
- The C programming language expects only the LF character as the
sole new-line symbol. Microsoft implementations of the standard C
library therefore have to add code to strip thic character out of any
plaintext files, and it is necessary to specify an additional option
"b" (binary) in fopen() to disable this translation when processing
binary files. This adds unnecessary complexity and getting the "b"
option wrong is a common programming error that can corrupt binary
data. Microsoft should follow the much simpler and more robust POSIX
practice of not using CR, and removing any code for dealing with CR
from the standard C file I/O code, such that option "b" can be ignored
by fopen().
- Plain-text editors should not use the Unicode character U+FEFF
(byte order mark) in UTF-8 files.
The following two proposals are perhaps slightly more controversial,
as they relate more to U.S. customary habits rather than clear
engineering necessities, but discussion would be welcome:
- It would be wonderful if Microsoft could set the default numeric
date and time display format for the English (U.S.) language to the ISO 8601 format, to get the US population
finally used to the modern globally preferred 24h time-of-day notation
and to a sensible alternative for the confusing mixed-endian mm/dd/yy
date. Similarly, the use of inch-pound units in any form of software
should be phased out. If the U.S. want to fully join globalisation,
its people will have to get used to globally accepted basic
conventions such as the metric system and the 00:00-23:59 time
notation. I like to think that a standards-setting industry leader
such as Microsoft has a responsibility to lead here and set a trend,
rather than just follow.
- For example, font sizes should be
selectable in millimeters. (Though, admittedly, this area could
need a bit clearer standardization first, because the actual meaning
of the currently used point dimensions is largely undefined and used
inconsistently in different fonts.)
Please don't hesitate to contact me if you have any related information, ideas, questions
or suggestions.
Microsoft has a product
feedback page.
Older issues
Just for the record, sone older issues previously listed here that
no longer refer to current products:
Markus Kuhn