
Alan Cox Quits As Linux TTY Maintainer — "I've Had Enough" - boundlessdreamz
http://linux.slashdot.org/story/09/07/29/1925224/Alan-Cox-Quits-As-Linux-TTY-Maintainer-mdash-Ive-Had-Enough?art_pos=4
======
spoondan
What I find impressive is that Alan continues to assist on the issue after he
has "had enough", providing in-detail responses to questions and correcting
part of Linus's patch. I think he also responded to Linus's initial complaint
with grace and aplomb.

I'd like to think I am poised and dedicated, but I doubt I am even half so as
Alan.

~~~
rythie
He has been doing it since 1991, and spent 10 years working at RedHat.

------
zaph0d
From TFA - "After reading the thread on a mirror, it's important to note that
after the argument, Alan and Linus continued to debate the technical merits of
how to patch the bugs. The ongoing conversation was civilized and concise. Of
course Linus is too much of a pompous ass to apologize to Alan for completely
misunderstanding the problem and proposing dangerous and useless ways of
fixing it, then arguing about it ad nauseum. Oddly, this doesn't seem to
bother Alan or maybe he's just used to it."

~~~
DarkShikari
This is one thing I have found true of great open source developers in
general: regardless of their attitude, regardless of past events, regardless
of the situation, they can carry on technical debates on how to deal with an
issue.

In other words, for such people, the technical merits of an idea supersede all
other aspects.

~~~
pbhjpbhj
I read the thread (didn't understand most of it) but Torvalds describes Cox
work as "crap" and tells him "you're full of crap". Way to stick to the
technical merits there ...

That's some attitude.

~~~
DarkShikari
Did I ever say I was referring to Linus? ;)

~~~
pbhjpbhj
No, I didn't assume you did. My comment was partially tangential (now there's
a geeky oxymoron).

------
rythie
If you want to read some actual detail on this, read this LWN article:
<http://lwn.net/SubscriberLink/343828/d298eb0f131f2039/>

~~~
barrkel
A telling piece of opinion in that article:

> This code worked with the older TTY code, but broke with 2.6.31. There is
> probably no way to fix it which doesn't saddle the kernel with maintaining
> weird legacy bug-compatibility code

"Maintaining weird legacy bug-compatibility code" is the essence of
professional and responsible platform software engineering - the software that
other software relies upon. It's one of the reasons why platform software
development is so hard and why software engineers are paid as much as they
are.

There's another misguided notion mentioned that I see a lot in both open
source and Wikipedia, two kinds of crowd-sourcing efforts which generally
desperately seek authority-figures of some kind, like "standards":

> Alan thinks this behavior is reasonable; it complies with the applicable
> standards

Compliance to the "applicable standards" isn't worth anything if it breaks
software and makes users' lives worse. It's not for nothing than
POSIXLY_CORRECT applies to many GNU apps, and is not enabled by default.

~~~
corbet
(I'm the author of the article in question)

I disagree completely. Maintaining ABI compatibility is crucially important,
and the kernel development community understands that. But ABI compatibility
does not mean going to all lengths to enabling buggy code to continue to work.
In this case, "fixing" kdesu would have required putting in code to recognize
this specific data stream and ensure that a read terminated exactly where it
always used to so kdesu wouldn't get confused and throw away good data. It
would be an albatross around the neck of any developer working in the TTY
layer for years, and those developers are already up to their asses in
albatrosses. All to perpetuate an easily-fixed bug in an open-source
application.

That kind of "compatibility" wrecks your platform over the course of a few
years; you simply can't maintain code like that. A "professional and
responsible" software engineer needs to recognize that and avoid it.

~~~
Gormo
Maybe Linux (and other similar projects) ought to divide into separate streams
- one "research" trunk, that focuses on cleanliness, elegance, and standards
compliance and is not constrained by backward compatibility commitments, and
from which multiple "practical" branches might diverge, each always
maintaining compatibility to its point of origin, despite the tendency to
accumulate cruft as it evolves.

~~~
davidw
You're free to fork it:-)

Quick answers aside, those guys work hard to try and make everyone happy with
the resources they have available, and it's not an easy job.

------
JeremyChase
Being a fan of the BSDs I have to point out that this type of decision would
not happen there. The reason being that the kernel and userland are not
separate entities; they are a system. If you update your kernel the userland
has to update with it, and that is to accommodate changes just like this.

~~~
Saavedro
I would point out that the userland in BSDs that would update with the kernel
would be the CORE utilities and programs. Say, like GNU utils on a linux
distro. kdesu is part of KDE, which is an application installed on top of the
OS, not something maintained as part of the OS. Would you say there wouldn't
be any issue with a BSD kernel update breaking an extremely widely used
application such as, say, Apache?

~~~
Malus
There would be issues, but the BSDs tend to break the ABIs on the development
branches only, not the stable branches (e.g. CURRENT vs STABLE in FreeBSD).
This usually gives port maintainers enough time to patch their ports
appropriately or to send their patches upstream. Users should never see any
breakage unless they choose to use the development branches.

------
akkartik
Alan:
[http://linux.slashdot.org/comments.pl?sid=1319387&cid=28...](http://linux.slashdot.org/comments.pl?sid=1319387&cid=28875027)

Linus:
[http://linux.slashdot.org/comments.pl?sid=1319387&cid=28...](http://linux.slashdot.org/comments.pl?sid=1319387&cid=28873731)

Coda:
[http://linux.slashdot.org/comments.pl?sid=1319387&cid=28...](http://linux.slashdot.org/comments.pl?sid=1319387&cid=28873411)

~~~
sachinag
Wait, none of these comments are actually made by the people you say they are.

~~~
akkartik
Yeaaaah.. they were summaries of positions. Thanks for insinuating that I was
being misleading. Did you really think 'Coda' was a person?

I've been watching parent get upmodded and my comment get downmodded with
increasing disbelief. Time was that +16 used to mean it was not to be missed,
and -4 was a troll or ad hominem.

~~~
benreesman
The voting is completely out of whack these days. I'm not sure if the
constituency of the community has changed, or if people are just feeling
ornery.

------
smithjchris
This is the typical example where Linux suffers from lack of true engineering.
The kernel API and libs should be stable, predictable and well documented.
There should be no hacks to support odd behaviour because odd behaviour should
not be specified. Isn't that why we have POSIX?

What with recent issues with egotistical libc maintainers, people throwing
their pacifiers over having to support junk, people moaning about ext4 (even
though it works fine and is poor app behaviour), it doesn't give people much
confidence.

Confidence is key.

~~~
davidw
> The kernel API and libs should be stable, predictable and well documented.
> There should be no hacks to support odd behaviour because odd behaviour
> should not be specified.

There should be a pony too.

How can the kernel not have lots of hacks? It deals with hardware, which is
often _weird_.

~~~
smithjchris
NetBSD comes with a Pony :)

POSIX rarely changes. They should start there and work backwards.

UNIX nearly died because vendors wouldn't allow interoperability. Don't let it
happen again.

Look at Win32 - still works like it did back in '91 (with Win16).

~~~
jasonkester
Certainly you understand _why_ Win32 still runs old Windows 3.1 code from
1991? It does so because of countless little hacks and "compatabilty mode"
switches in the OS that emulate old bugs that existed in old versions that
badly behaved software was taking advantage of.

<http://www.joelonsoftware.com/articles/APIWar.html>

That's a good overview of how much "Maintaining weird legacy bug-compatibility
code" you need in an OS with any history whatsoever.

~~~
smithjchris
I have seen the win32 subsystem source (legitimately through shared source - I
used to work for the British Ministry of Defence). It's _very_ clean and tidy
and not full of junk like that believe it or not.

The reason it still works is that they thought about it properly to start
with. There have been very few extensions. The main one being adjusting
pointer sizes (which are hidden behind a typedef like LPSTR anyway so that is
irrelevent).

And for the record I take anything Joel says with a pinch of salt. The guy is
a trendy blog mouth piece.

~~~
jasonkester
In that case, I should have linked you directly to the Raymond Chen articles
that Joel was paraphrasing:

[http://blogs.msdn.com/oldnewthing/archive/2003/10/15/55296.a...](http://blogs.msdn.com/oldnewthing/archive/2003/10/15/55296.aspx)
[http://blogs.msdn.com/oldnewthing/archive/2003/12/23/45481.a...](http://blogs.msdn.com/oldnewthing/archive/2003/12/23/45481.aspx)

Here's a quote:

 _This is just the tip of the iceberg with respect to application
compatibility. I could probably write for months solely about bad things apps
do and what we had to do to get them to work again (often in spite of
themselves). Which is why I get particularly furious when people accuse
Microsoft of maliciously breaking applications during OS upgrades. If any
application failed to run on Windows 95, I took it as a personal failure. I
spent many sleepless nights fixing bugs in third-party programs just so they
could keep running on Windows 95._

~~~
gaius
Windows 95 and Windows NT are not the same thing.

~~~
smithjchris
Precisely. I forget that the 9x series of operating systems existed sometimes!

------
radioactive21
nerd fights make great drama. let me know when episode two starts.

I wanted to edit that it would be freaking hilarious if Alan went and worked
with Microsoft.

------
RyanMcGreal
Is this a bad time for me to adopt my most _gravitas_ y James Earl Jones voice
and intone, "The perfect is the enemy of the good"?

~~~
RyanMcGreal
Boy, did I ever misfire in my attempt at humour!

~~~
smithjchris
I +1'ed you to make you feel better :)

