NetBSD-Users archive

[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 erase one.

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 level.

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 something though.

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.


Home | Main Index | Thread Index | Old Index