Fog Creek Software
Discussion Board




Strange Design Decisions

I think I am seeing a pattern of very strange design decisions being made by major software vendors who historically have produced good software.

As an example, I will pick text on OS X. Historically, teh Mac platform has been one heavily oriented towards page layout and graphic design. Thus one would expect to see really fabulous text layout tools with a sensible UI. Apple even had a full-featured text layout engine with exotic kerning and hanging and stuff built in starting in OS 7.5, but it never caught on and was dropped.

The very basic minimal text support is to type, delete, copy, paste, bold and italic. In OS X though, the ability to itilicize has been removed. Italics can only be applied to font sets that have a specific separate itilicized font provided. Since all non-trivial text layouts contains at least a little bit of italics, this basically means that the vast majority of fonts available can not be used.

It seems very foolish to remove support for the OS applying italicization through an algorithm when an specialized italic font is not part of a font family.

Does any one else have any examples of these sorts of strange design decisions made by vendors who used to think things through? Is software decaying as the old school designers retire?

Ed the Millwright
Friday, January 09, 2004

There *isn't* an algorithm for getting Italic from Plain. Anyone who tells you otherwise doesn't know what printers mean by Italic.

You can *slant* text, but that's slanted, not Italic.

Joel Spolsky
Friday, January 09, 2004

WinAmp 2.x and 1.x are one of the best examples of this behavior.

Nullsoft have worked hard on lots of interesting and useful features. But, they also thrown them away constantly.

For example:

I downloaded new versions from time to time.

At version 2.11 they had some features that I liked, and they were clearly useful features.

Then, I downloaded 2.13 - which didn't contain those features!

So - they kept working on useful new features, then thrown them away.

Should they have kept most of the features, WinAmp would have been A LOT MORE than it is now.

I don't know why software companies do this.

Nullsoft should be called Work And Then Throw Away, Inc. (we Romanians also call this "Cooperativa Munca in Zadar").

Maybe they did it in order to keep WinAmp simple - but if that was their goal, then why did they work on those features, in the first place?

Did they work on them as a hobby?

Max
Friday, January 09, 2004

"It seems very foolish to remove support for the OS applying italicization through an algorithm when an specialized italic font is not part of a font family."

It should be noted that support wasn't _removed_ since OS X is a completely different operating system from OS 9.  OS X is essentially the latest version of NextStep/OpenStep and not a linear upgrade from OS 9.

Of course, what Joel says is probably the reason such a thing was never added!

Almost Anonymous
Friday, January 09, 2004

Software must be one of the few endeavors where the art of creative destruction is neglected.

Landscapers uproot dead trees; architects remove walls; civil engineers tear down old bridges.  Even acorns have to rot before they can germinate and grow into a trees.  But programmers are loathe to clean up after themselves.  They'll rarely remove an old, obsolete, or wrong feature because, Lord forbid, a customer may complain.  After all, it doesn't hurt to leave it in, does it?

Well, no, it wreaks havoc on your UI.  New users will reject your clunky old app. "What's with all this cruft?  This app makes no sense!"

Alyosha`
Friday, January 09, 2004

"Three terms categorize the slant of a font: roman, oblique, and italic.

The characters in a roman font are upright. The characters in an oblique font are artificially slanted. The slant is achieved by performing a shear transformation on the characters from a roman font. The characters in an italic font are truly slanted and appear as they were designed."

===================

MSDN documentation on font style:slant.


Friday, January 09, 2004

So the graphic-designer segment of Mac OS X users wouldn't have been caught dead using a "fake" italic font. They won't be missing anything.

For the rest of us, it either teaches you about "correct" font usage, or you can try an end-user-oriented program -- like Word -- that will do obliques for fonts which don't have true italic.

Nate Silva
Friday, January 09, 2004

The problem is that they should have given you an "Oblique" option in the style menu instead of "Italic"

Flamebait Sr.
Friday, January 09, 2004

Alyosha`: Programming does have the concepts of "uprooting trees", etc.:  refactoring.  Take a look at http://www.refactoring.com/

joev
Friday, January 09, 2004

"It should be noted that support wasn't _removed_ since OS X is a completely different operating system from OS 9.  OS X is essentially the latest version of NextStep/OpenStep and not a linear upgrade from OS 9."

That doesn't really explain it either though because the default word processing application (WriteNow) on the original big ugly black cube NeXT systems, did include support for making oblique text for typefaces that did not have an italic or oblique font.

Matt Latourette
Friday, January 09, 2004

"The problem is that they should have given you an "Oblique" option in the style menu instead of "Italic""

A quick glance at the 10.2.8 font panel shows either an "Oblique" option or an "Italic" option for most fonts.                       

Anechoic
Friday, January 09, 2004

"So the graphic-designer segment of Mac OS X users wouldn't have been caught dead using a "fake" italic font. They won't be missing anything."

I don't buy this at all.  It's really only serif fonts that look bad when made into a "fake" italic.  Sans serif fonts usually look just fine when you form an oblique in this way.  It's also occasionally useful to add a little extra slant to a script font or to slant a decorative font, although one may need to manually adjust the kerning to make it look right.  One of the rules of design is that the rules are made to be broken (you just have to know the rules well enough to know when it's appropriate to break them).  Folks that claim you should never ever do this to a font are merely engaging in artistic snobbery.  It's really no different than programmers who claim that you should never ever use a "goto" statement or watercolorists who claim that you should never ever use Chinese White in a painting.

Matt Latourette
Friday, January 09, 2004

I have 10.2.8 also and am looking at the panel now, just spent 5 minutes clicking on every single font installed and there are a large number of them.

Courier, Helvetica and Lifetime have Oblique variants. Not a single other one does.

Look, I know that slanted text and italic are two different things. I have done typesetting and I know where to find those functions where I can even adjust the level of Obliquity in InDesign and Quark. That's just such a totally ridiculous comeback to start fussing on implementation details. For 99% of the world, there's bold, plain, underlined and italic. From a user perspective, you want to slant a font for emphasis. If there is an italic font that is nicely designed, priority should be given to that. If not, an obliquing algorithm should be used. Leaving out the auto-obliquing given the small number of fonts that have an italic variant is totally stupid.

Ed the Millwright
Friday, January 09, 2004

And do let me mention that in the UI of nearly every OS X application in existence that supports styled text, you select the Oblique font by choosing the *italic* menu item.

Ed the Millwright
Friday, January 09, 2004

I recall the time when KDE dropped the windows-close on double clicking the windows icon, on most of its themes except those similar to Windows. It was done due to a "usability improvement". I, OTOH, found it so unusable that I switched to a Windows theme (which looks uglier, but it works). That policy is hard-coded into each theme, but the developers admit a customized behaviour would be a good thing to add. I want to add it, but there isn't a way to do so.

The GNOME 2.x was in many ways a big step backwards from GNOME 1.x. They arranged the buttons order in Macintosh way, dropped the nice font selection widget, and generally made everyone who were used to Windows, KDE or GNOME 1.x uncomfortable. Many people switched to KDE at this point,  and I tried GNOME 2.x, was flavourgusted and switched back to KDE. KDE can be customized to behave like other popular desktop systems, while the GNOME people think that their way is "The True Way"<tm> and don't want to accomodate for what other people are used to.

Shlomi Fish
Saturday, January 10, 2004

Typographically speaking, what Joel said is correct.

Li-fan Chen
Saturday, January 10, 2004

This reminds me so much of the story of the jumbojet that is trying to lad in seattle but it is too foggy to see and the onboard navigation has failed. He sees a tall building and as he flies past he asks a guy working on the roof, "Where am I?" and the guy says, "You're in an airplane." so he banks to the right and does a perfect blind landing right at the airport.

Ed the Millwright
Saturday, January 10, 2004

As long as we're in analogy world, I would say that strictly refactoring is not uprooting trees.  Refactoring is more akin to pruning trees.

Redesigning an application is uprooting trees.  That is _not_ refactoring. 

Rick Watson
Saturday, January 10, 2004

No, no! The elephant is like a snake!

Philo
Saturday, January 10, 2004

> Did they work on them as a hobby? <

Knowing Justin Frankel, lots of the things in Winamp were probably put there just because he was interested in them at the time.

> There *isn't* an algorithm for getting Italic from Plain. <

Is there an algorithm for getting Bold from Plain?

www.MarkTAW.com
Saturday, January 10, 2004

"Is there an algorithm for getting Bold from Plain?"

No, there isn't. Fake oblique looks good enough for most sans-serif fonts but fake bold _always_ looks bad.

Chris Nahr
Sunday, January 11, 2004

The true question here seems to be if "oblique" is a truely separate desired effect, or whether it is just a way to imitate an italic in absense of an officially designated italic style.
If in presense of a true "italic" you would never ever have a need to be able to say: "yes, I know you have the lovely crafted italic there but I want you to shear me the roman", then there is absolutely no need to complicate the UI beyond maybe hinting the presence of a true italic.
In that case the semantics of "oblique" in construction are close to nil since it is a nearly black-box technique of generating an a bsent font family style member on the basis of another family member.
If you would have a need to select oblique instead of the italic when both are truly present, then the user has to be able to choose. You can then argue wether "differentiate between oblique and italic" should be default or a hidden "advanced" option.
However, if you are going to be truly tightass and claim that users should denied to use that blasphemous"oblique" abberation because "the morons should learn it is not italic", I'd say that same reasoning should probably consistently apply to weight, stretch, variant and even size.

Just me (Sir to you)
Monday, January 12, 2004

>>The true question here seems to be if "oblique" is a truely separate desired effect, or whether it is just a way to imitate an italic in absense of an officially designated italic style.<<

In typographic terms, "italic" refers to a cursive font which can never be programmatically created. Comprehensive fonts have in fact obliques _and_ italics for the same font. The italics are custom-designed cursives while the obliques are mathematically slanted.

Eventually, the issue boils down to whether the program is aimed at people who know typography or at those guys who write their memos in Comic Sans. Typographers really need separate obliques and italics, and they'd rather hand-draw hieroglyphs than accept fake italics. People who don't know the first thing about typography won't mind.

In the interest of good typesetting, I am strongly opposed to producing any kind of program for the latter crowd!

>>However, if you are going to be truly tightass and claim that users should denied to use that blasphemous"oblique" abberation because "the morons should learn it is not italic", I'd say that same reasoning should probably consistently apply to weight, stretch, variant and even size.<<

Actually, that's exactly what happens in fine typesetting. There actually are different hand-crafted font variants for different weight and spacing. There are different hand-crafted variants for different sizes, too, but each variant is acceptable for a range of point sizes due to "hinting" that was manually put in the font variant to reduce the ugliness of scaling it beyond its native size.

Chris Nahr
Monday, January 12, 2004

*  Recent Topics

*  Fog Creek Home