Oscar and Felix of Neil Simon’s play, “The Odd Couple,” represent two opposed personality types. Oscar is a slovenly sportswriter, and Felix is an uptight and compulsively neat newswriter (he was a photographer in the TV series). I think it’s telling that both Oscar and Felix are in creative fields, because they represent two opposing forces that exist in all kinds of creative people.
A lot of the debates I hear, as a programmer, seem to be between Oscars and Felixes.
I think every programmer has their own internal Oscar and Felix. I’ve heard myself take both the Oscar and Felix sides of many design debates. But like most programmers, I tend to let one of them express himself a bit more.
Personally, I tend to be a bit more of an Oscar. I’m a pragmatist, and I don’t mind being a little sloppy if it gets the job done. I’ve worked with Felixes, who insist that getting a job done correctly will ultimately save time down the road. We are both right.
Because I’m a bit of an Oscar, the Felixes of the programming world tend to annoy me. I call them names like “anal retentive.” The Felixes don’t particularly like the Oscars and call them “Cowboys.” Unfortunately for Oscar, the world of programming seems to attract an unusually high number of Felixes; perhaps they are attracted by their love of order and logic. Unfortunately for Felix, there are also lots of Oscars, who like the creative freedom of programming.
Felixes and Oscars have their own programming languages. Oscar loves Perl, a weakly-typed language that provides “more than one way to do it.” Felix prefers strongly-typed languages with strict rules. Felix invented Java, a language which did away with many of the Oscarisms in C, such as using integer results in boolean expressions (Horrors!). Although Felix invented Java, he says that Oscar ruined it. Back in the day, Felix preferred Pascal over C, but Oscar won.
Some days, I think there are just too many Felixes around, making life miserable for Oscar. Felix believes that it is Oscar who is responsible for the myriad languages and standards that afflict us. “He’ll use anything without even cleaning it first!” he whines. Oscar believes it is the fault of Felix, whose desire for perfection perpetuates competing standards with few real differences to the end user. “If Joe User can’t tell the difference,” Oscar insists, “it doesn’t matter.”
In the end, it is Oscar’s lack of discretion, and Felix’s intolerence for anything less than perfect that are responsible for the current mess. This is why there are Atom, RSS 1.0 and RSS 2.0 buttons at the top of this page.
One of the most annoying things for an Oscar is having to sit through discussions between two Felixes. One of the interesting differences between Oscars and Felixes, is that Oscars don’t debate much (when they do, one of them turns into a Felix). Felixes do debate because, although they both believe in perfection, they each have a different idea of what perfection is. Or perhaps, like the blind men and the elephant, they allow their hands to rest on a different feature of the invisible elephant that is perfection.
Ultimately, debates between Felixes have little to no effect on the end user of an application. They usually affect issues which are only of interest to programmers. Programmers engage in debates of this sort all the time. How do you indent the brackets in your code? Which is better 2, 4 or 8 spaces per tab? Most significant bit or least significant bit first?
Some Felixes will give themselves all kinds of extra work, to avoid what they perceive is an even larger amount of work in the future. Oscars believe that the amount of work that Felix is avoiding tends to be smaller than the work he is doing to prevent it.
They may both be right.
Although I tend to characterize other programmers as Oscars and Felixes, it is important to remember that each of us has our own Oscar and our own Felix. It is only when we can get them to come to agreeable terms that we can write good software.
Do you know any Oscars or Felixes? Let’s hear about it.