3 ms·
It’s a lot easier to maintain an orthogonal design when your software isn’t being used. Mentally, I'm translating this to "it's okay to have messy design if yo
by romaniv 14y ago
It’s a lot easier to maintain an orthogonal design when your software isn’t being used.
Mentally, I'm translating this to "it's okay to have messy design if your software is used". This is probably the most common excuse for writing bad software.
Some things in Unix really should follow Unix philosophy more closely.
- raldi 14y agoI'd rephrase it more like, "Clean design is a means to pleasing users; it's not an end in itself." When is it okay to get messy? When it's a net win for the user experience.
- romaniv 14y agoThat's exactly what I'm talking about. "Pleasing users" is often used as an excuse for horrible internal design. People cite examples like ls and proceed to conclude that the Unix philosophy is a concept of abstract philosophy not applicable to real life, when they should conclude that there are simply some issues with ls design. Nearly every time I hear "but it's okay to be messy, because it's real life" or "I must do this bad thing to please the users" the person saying it advocated something that is an insignificant short-term gain for a tiny subset of users at the expense of very significant long-term losses for all the users. Internal design usually does not affect end users directly, but it has tremendous indirect effects in terms of performance and reliability, which people do care about. LS is a good example of this. Having some obscure flag might have solved a particular problem in the past, but now everyone has to deal with extra documentation, complexity and bugs.
- raldi 14y agoThat may be the case sometimes, but not always. Here are some examples of what I think were good uses of messiness: ls output can be sorted in all sorts of ways with just a few characters of typing, even though it would be cleaner to make people use sort. grep has a flag for counting lines that match, even though wc is supposed to be used for counting lines. rm can remove directories with the right flags, even though rmdir is supposed to be the tool for removing directories. I think those were all net wins for the user, both in the short term and the long term.