Imagine that you are a reporter sent to the gates of a stadium shortly before a very important baseball game between the Giants and the Athletics (sorry, Bay Area resident speaking here. For my non-American readers, please replace these with names of famous soccer teams). Your mission is simple: ask people entering the stadium who they think is going to win.
If you ask Giants fans, the answer is guaranteed to be "The Giants, of course!". Well, that’s fine, but that was not the question. You didn’t ask them who they wanted to win, but who they thought was going to win.
The only problem is that in most people’s minds, these questions are completely equivalent.
They’re not.
After all, no matter how much of a Giants fan you are, you might know that their star player is currently injured, another one is not playing today and that the other team has been winning a lot of games recently and on top of that, they are playing in their own stadium. With this in mind, reason should clearly tell you that no matter how much you want the Giants to win, the odds are against them for this particular game. It seems to be common sense, but yet, you will probably not find a single fan reasoning this way.
I call this the "fan syndrome", and this phenomenon is so widespread that I am sure it has a scientific name, which I confess not knowing (if you do, please leave a comment).
Here is another example.
Some time ago, I was following the results of an election and as the day was going by, it was clear that candidate A was going to win over candidate B. Yet, candidate B and his representatives could be seen and heard regularly on the TV saying that they were confident that they were going to win.
I found that attitude puzzling, so I asked a friend why they didn’t simply tell the truth. My friend summarized this attitude with a simple sentence: "Nobody likes to pick a loser".
And then it hit me: what these politicians are doing is simply catering to the "fan syndrome" of their voters. They want to make sure they don’t regret their vote.
What’s troubling with this attitude is that it can actually cause this candidate to really lose the election, whereas they might have turned the tables if they had been forthcoming with the voters. Very often, I have been on the fence about voting. One candidate has my preference but for various reasons, I find myself too busy or not motivated enough on election day. If, during that day, my preferred candidate had come out saying something like "The polls are not looking good for us, so if you haven’t voted yet, please do so, we need all the help we can get", I would probably have overcome my apathy and gone out to vote. And it could very possibly have made a difference.
But because of the "fan syndrome", that’s not how things work and consequently, elections sometimes take a very different path from what common sense would have dictated.
So why am I telling you this?
Because my recent posts questioning whether Ruby and/or Ruby on Rails will ever become mainstream have caused me to receive a lot of emails asking me "Why don’t you like Ruby on Rails?".
Uh?
And then I understood. Everybody assumes that I suffer from the fan syndrome, or to be more precise, of the "reverse fan syndrome": if I say negative things about something, it means that I don’t like it.
Here is the deal: I have no problem picking a loser. It doesn’t bother me at all. I like underdogs and I actually have a strong track record of liking marginal things in domains as varied as computer technologies, movies, music or even food. But I make a point of never ignoring the realities.
Here is another fact: I love Ruby and I love Ruby on Rails even more. I use both on a regular basis and it’s a constantly pleasant experience. But just because I love these technologies doesn’t mean that you will hear me say that they are going to take over the world. In fact, I’m pretty sure that they won’t and that Ruby on Rails will, sadly, follow the same path as AOP: a great idea that will remain the privilege of a few expert developers. But let’s not get into this debate right now because this is not the point of this article.
My point is this: don’t fall in love with the technologies you like. Just because you made a choice doesn’t mean that it’s the right choice for everybody. Accept this, respect people who disagree with you and consider, just for a moment, that maybe — just maybe — they might actually have a point.
Be a fan, but don’t give in to the fan syndrome.
Update: Discussion on TheServerSide
#1 by Dennis Doubleday on December 15, 2005 - 10:09 am
Rails is billed as the simplest, most productive way yet to build web apps. Why would it remain the province of “a few expert developers”?
And I think the jury is still out on AOP.
#2 by Frank Bolander on December 15, 2005 - 10:30 am
The jury is out for me on ROR, I like it some days and other days, it irks me to no end.
In other words, I really like the mixins to do compositional programming. I also really hate mixins and the bloat they cause.
For me, AOP for Ruby to introduce mixins would be the best of both worlds. The Ruby classes could stay lean and orthogonal concerns remain, well… orthogonal. I’d accept the opportunity cost of metadata versus declared linkages.
#3 by Marc on December 15, 2005 - 1:05 pm
“Rails is billed as the simplest, most productive way yet to build web apps. Why would it remain the province of “a few expert developers”?”
Because the quality of a product has little to do with its success. It’s all about marketing and promotion. OS/2 was vastly superior to Win 3.1 but Windows won in the end. There are of course many other examples of this. Also, we really don’t know about the quality of RoR just yet. People are still learning its limits. It’s too new.
It took me a long time to learn to just go with the flow. If the flow shifts to RoR, you can be sure I’ll be with it. Until then, I’m all about Java.
#4 by Michael on December 15, 2005 - 2:11 pm
Man, LISP on rails is so much more productive then RoR. Have you seen how few lines of code it is to do reddit in LISP?
(joking !).
It is an interesting time to live in though. I think we can use and appreciate all these technologies. I think it is easier to use rails when you need to, and java and .net when you need to, then in the past when you had to know details about DCOM, CORBA and so on, and go between all sorts of C++ apis with 10 different ways to do a string.
I was also thinking the other day, after bashing out some ruby, and then some java, how little keystrokes I actually use in java. Sure, its IDE codegen but it seems to work. VS 2003 is even nicer, it seems to pop up the “intellisense(tm)” even faster. I would miss those IDE feature, which are from, gee, 1990something in a dynamic language with no comparable IDE.
But its all good.
#5 by Sean Ness on December 15, 2005 - 8:38 pm
I like the Red Sox…and I always think they are going to win!
And where do Ruby and Ruby on Rails play? Are they skateboarding teams? I am soooo out of the loop!
#6 by Robert_your_fan on December 16, 2005 - 8:21 am
cedric, you miss an important aspect–the human psychology. now ok, I believe, that you are rational, and have a logic thinking, so you could possibly vote for a politican not declaring himself as the best.
in case of voting, most people have to make decision by a limited amout of informations; one the most important is to see, that their favourite is strong; not only strong, but the most strong.
This will imply kinda fact, that he is also the best, and will lead them (represent them) probably better, than other.
If a politican doesn’t try to build up this image about himself, he is loosing this powerfull weapon.
#7 by lowlander on December 16, 2005 - 8:46 am
This phenom is called “fanboy”ism… which is an americanism of the french term fanbois.
If you REALLY want to see this aspect of human nature in action, go play Blizzard’s World of Warcraft.
IMO MMORPGs are currently the most interesting petri dish for a lot of our humanisms.
#8 by Jimmy on December 16, 2005 - 9:26 am
“Man, LISP on rails is so much more productive then RoR. Have you seen how few lines of code it is to do reddit in LISP?”
You mean Lisp-On-Lines, right?
http://www.cliki.net/lisp-on-lines
#9 by The Friend on December 16, 2005 - 10:39 am
I don’t know anything about Ruby, but regarding the other examples in your post:
I think the baseball teams and political candidates are actually very different situations. In one, the audience is actually selecting a winner by a vote; in the other, the audience is just watching as other factors (for the most part) determine the outcome.
If one candidate was a super-heavy favorite to win an election, and there was nothing else interesting on the ballot, and the weather was bad, I can imagine some of the candidate’s supporters not bothering to go vote because “he’s gonna win anyway”. But at the same time, if people think their guy is gonna LOSE either way, why bother going out in the rain just to be part of the losing team?
In short: many people feel affection for the underdog, and a minority of people will even support him. But a majority of people are swayed by success, confidence, and power.
That’s why the underdog IS the underdog.
#10 by Bill Kress on December 16, 2005 - 10:57 am
The Fan Syndrome is a great thing to think about, and it does point out some really interesting aspects of human nature.
There is another aspect that is interesting. If the Giants trounced the Athletics every single game, how long would it be before people in your area became Giants fans and root for them over their local team?
It will never happen. Most people just aren’t built in a way that lets them abandon their local tribe.
This counts for cities, states and countries as well. Once a person has found “Home”, where everyone they know is telling them what a great team they have, they will be very unlikely to want to switch.
Engineers are usually a little more flexible than that, but you will always find someone who thinks that vi is the only way to go because that’s what they learned on.
I think your concept of Fan Syndrome explains many of the religious wars we seem to get into on slashdot and any other forum where these concepts come up.
Thank you for reminding us to look around ever so-often.
#11 by Ken Wong on December 16, 2005 - 12:09 pm
After reading the reply, people are still missing the point.
This is not about sport teams, programming languages, etc. THIS IS ABOUT HOW WE RESPONSE TO OUR DEVOTED OBJECTS. The devoted object is only background issue, the way we support them is the real issue. And this is human issue.
Whether the devoted object is a programming language (Java, Ruby, LISP or even .NET), sport teams (Red Sox, Giants, Golden State Warriors, San Jose Shark), we always hope for the best to our devoted objects. We spend so much time to observe them, learn them, cheer for them, and support them (If you’ve been a fan, you know what I mean). We hope our devoted objects will be idolized by others too. The advantages will overwhelm its competition and any disadvantages, well, it’s not an issue because we
#12 by The Friend on December 16, 2005 - 12:23 pm
Oh, and I forgot…
“Amiga forever!!!”
#13 by Dude on December 16, 2005 - 1:48 pm
The most eloquent argument about why TestNG sucks that I’ve ever seen.
The “Fan Syndrome” is cognitive dissonance at it’s finest, and Cedric has a nasty case of it.
#14 by Larry Freeman on December 16, 2005 - 6:39 pm
Cedric, thanks for the blog! As usual, you have written something that gets people talking. I must respectfully disagree with you about the future prospects of ROR at the moment.
Programming languages like any technology have an implicit value and cost. When the value is greater than the cost, the programming language grows in popularity. When the costs start outweighing, usage decreases. Hype and innovation are very important for what we read about but unfortunately (or fortunately) but ultimately has little bearing on the actual market unless it addresses real customer needs (as well explained in Crossing the Chasm).
The problem is that most people don’t acknowledge the costs. For example, the talk about ROR reminds me of Microsoft’s MFC. Here’s the deal with MFC. It was very easy to get started and very easy to get lost.
The major cost of ROR right now is that it is not proven. There is a lot of momentum but not yet a track record of success with industrial strength products. That’s real cost.
The current momentum is encouraging start ups and others to bet their business on ROR. We will see what results. My money is that ROR will require some optimizations and then it will shine.
The real question will come down to whether an alternative technology is able to provide greater value. So far, it looks like ROR is heir to the throne in the Linux and Unix space.
Cheers,
-Larry
#15 by Mohan Radhakrishnan on December 17, 2005 - 7:40 pm
I am a AOP fan and I am not an expert. Recently a Spring AOP project was *outsourced* to us. It is true. An AOP project was outsourced. It is not that exclusive anymore.
#16 by Dan Creswell on December 18, 2005 - 11:35 am
Nice post Cedric.
I think there’s another notable side-effect of the behaviour you describe which is that one will not, in many cases, be able to have a reasoned technical debate about the merits of one choice over another.
The implications for building quality software and/or systems, learning and advancement of our trade in general are quite staggering.
#17 by Anonymous on December 19, 2005 - 9:58 am
Why don’t you like Ruby on rails?

#18 by Anonymous on December 20, 2005 - 3:14 pm
Great post. One other aspect of this is the “hidden agenda”. Unlike sports teams who may win or loose with little real consequence for the fan, many developers have a lot to gain or loose from the adoption of a technology and will do anything to promote it (a la JBoss guys astroturfing on tss).
I like the idea of getting back to basics, showing some respect and upleveling the conversations to all of our benefit.
#19 by scocarter on July 2, 2006 - 4:05 am
Interesting, yet outdated, blog entry. Its amazing how things have progressed in only six months. Its surprising how far behind traditional languages and platforms are beginning to fall. When productivity increases are high enough, it may not matter than you can’t “do a two phase commit”. The Rails, Grails, DJango movements are all interesting and are the basis for the next generation of software. I think we should all get used to them and admit that Spring, EJB and app server vendors have done more to complicate and harm the J2EE platform than help it.
#20 by scocarter on July 2, 2006 - 4:06 am
Interesting, yet outdated, blog entry. Its amazing how things have progressed in only six months. Its surprising how far behind traditional languages and platforms are beginning to fall. When productivity increases are high enough, it may not matter than you can’t “do a two phase commit”. The Rails, Grails, DJango movements are all interesting and are the basis for the next generation of software. I think we should all get used to them and admit that Spring, EJB and app server vendors have done more to complicate and harm the J2EE platform than help it.
#21 by tbarker on April 18, 2007 - 9:23 am
Frontline Plus
#22 by tbarker on April 18, 2007 - 9:24 am
Frontline Plus
#23 by Matthew on August 10, 2010 - 2:25 am
What is interesting is that nowadays you become a proponent of something, and your instantly classed as a “fanboy” in the derogatory sense. Such a shame.
Just look at the graphic card market for such easy examples!
Always try to stay open to new idea’s, and don’t be closed off. Easy said than done of course. Thanks for the interesting blog
#24 by Keeper Garrett on February 17, 2011 - 7:59 pm
I miss the heady days of the Amiga being the industry leader. Still a big fan, but I doubt I’d convince anyone to throw out their Quad Core and pick up an A1200.
#25 by Dan on June 22, 2011 - 5:08 am
Some people thinks it’s loyalty. Some think that critical thinking about things you like is cognitive dissonance. Some think that’s ok in private. A while back there was a “list 5 things you don’t like about your favorite “. The you have a little cred when you sya what you like.