[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: The Chthulhoid horror that is keyboard handling in Unix
On Thu, 1 Apr 2010, Johnny Billquist wrote:
I totally disagree with you.
I'm not surprised to hear that. I totally disagree with you, after all,
and you are wrong.
Let me work it backwards for you.
The point is not that I want things to work by magic instead of by agreed
protocols, the point is that the protocols are *broken* for common uses
today. I can't be sure that I can even type *my address* in most programs
I have installed, without manual setup. That is *wrong*. (It is pure
luck that even my name works -- thank you Mom and Dad.)
And that's with a relatively common 8-bit character set. Ever tried
getting UTF-8 to work? I can't even get the terminal window and the shell
to agree on how many bytes make up a character, and how many deletes will
It's like saying I have this file here, and I want to send it to this other
computer, and I don't want to set up a network or anything. It should just
work. After all, it's pretty obvious. File. Copy. Transfer. I shouldn't need
to know what goes on in between.
Exactly. I shouldn't have to care. Do you care what is on the wire
between the keyboard and the keyboard controller? Do you care what is on
the wire (or in the air) when you make a phone call? Do you care what
encryption algorithm is used between your browser and the bank web site?
Would you like to be offered all the choices, and have to deal with the
inevitable errors when you haven't done your homework?
I wouldn't. I like abstractions and well defined interfaces, and unless
I am working at the interface, the above are examples of things that are
Not My Problem.
The point I want to make is that keyboard handling and character sets are
*exactly like that*. It should just work, and it's not something that a
user should be forced to deal with.
Note "forced". If you want to connect a terminal to your PC, or telnet
to some more ancient system, by all means go ahead. But having the
*opportunity* to have control at a low level should not equal an
*obligation* for everyone else to have to get involved at the same low
So yes, there are multiple ways of doing this, and they all work. But they
are different. So you need to choose. And it might make a difference, because
some other machine you might want to talk to might have a different idea, in
which case you get into trouble again.
Well, they "all work" as long as everything agrees, but there's plenty of
opportunity to disagree. Maybe you have heard about Murphy's Law? If
there is more than one way of doing things, and one of them is somehow
wrong, someone, somewhen will eventually get it wrong. It is better if
there is only the right way of doing things, IMO.
People reading are probably sick of all this ranting by now, so it's time
to stop and admit that I don't know how to improve things. There are some
things that seem obvious, like Unicode everywhere, and a command line
interface that does not rely on emulating old hardware, but there's no
obvious way to fit it all together. I would like to take a stab at doing
Does anyone else feel the same? Any ideas? Wouldn't necessarily have to
be in any way related to the NetBSD project, but I'll ask here.
Main Index |
Thread Index |