Cedric Beust: "The Fan Syndrome"

Home

News: Cedric Beust: "The Fan Syndrome"

  1. Cedric Beust: "The Fan Syndrome" (44 messages)

    Cedric Beust, in "The Fan Syndrome," says that often people say that a favourite technology (or music, or politician, or sports team) is "going to win" in the eyes of a fan. The upshot? Perhaps the arguments over technologies are a lot less relevant than the technologies themselves.

    Cedric says that readers wrote him emails asking why he didn't like Ruby on Rails, because he questioned whether it would ever become mainstream. This led him to understand that they suffered from the "Fan Syndrome," and they assumed that because he didn't think Ruby would "win," that he didn't like it - because if he did like it, he would assume that Ruby would take over the world.
    ...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.

    Threaded Messages (44)

  2. So true! I've been in IT for over 26 years and almost all of my favorite products and standards, especially in the PC world, lost in the marketplace to what I considered inferior competition. Think Motorola 68000 versus Intel's 8088, think OS/9 versus MSDOS, think OS/2 versus Windows 1.0 thru 98, think the Mac versus Windows, think OpenDoc versus OLE, a plethora of office products verus all of Microsoft's earlier versions of its Office suite, and on and on. Visual Basic could have been Smalltalk. Modula II and III were better than C for application programming. ObjectiveC is much better for OO than C++.

    Loving a technology is pointless and against your own best interests.
  3. So true! I've been in IT for over 26 years and almost all of my favorite products and standards, especially in the PC world, lost in the marketplace to what I considered inferior competition. Think Motorola 68000 versus Intel's 8088, think OS/9 versus MSDOS, think OS/2 versus Windows 1.0 thru 98, think the Mac versus Windows, think OpenDoc versus OLE, a plethora of office products verus all of Microsoft's earlier versions of its Office suite, and on and on. Visual Basic could have been Smalltalk. Modula II and III were better than C for application programming. ObjectiveC is much better for OO than C++. Loving a technology is pointless and against your own best interests.

    Wow, I haven't heard OS/9 in about 10 years back when I was programming on my Radio Shack Color Computer. Although I understand there are still users plugging away on it.
  4. OS/9 Nostalgia[ Go to top ]

    The Color computer was probably the last OS/9 product outside embedded systems. It was created in the 1970s for the Motorola 6809, a fine cpu and the prdecessor to the 32/16 bit 68000. (For those who don't know, OS/9 is a multi-tasking UNIX-light like OS that surpassed in capability, power and stability the popular PC O/S's until at least later versions of OS/2.)
  5. OS/9 Nostalgia[ Go to top ]

    The Color computer was probably the last OS/9 product outside embedded systems. It was created in the 1970s for the Motorola 6809, a fine cpu and the prdecessor to the 32/16 bit 68000. (For those who don't know, OS/9 is a multi-tasking UNIX-light like OS that surpassed in capability, power and stability the popular PC O/S's until at least later versions of OS/2.)

    Ahh, 6809 Assembler takes me back. My big accomplishment on that was a clone of the Amiga Bouncing Ball demo in 6809 assembler. I still have old copies of Rainbow Magazine (A mag for Color Computer Enthusiasts)
     And for OS/9 my recollection may be a bit off, it may have been almost at least 15 years ago I was on the color computer. Boy has time flown by! But it was fun nonetheless. Although just a few years ago I was working on a HandSpring running a DragonBall 68K processor, soon replaced by the ARM processors.
  6. OS/9 Nostalgia[ Go to top ]

    The Color computer was probably the last OS/9 product outside embedded systems. It was created in the 1970s for the Motorola 6809, a fine cpu and the prdecessor to the 32/16 bit 68000. (For those who don't know, OS/9 is a multi-tasking UNIX-light like OS that surpassed in capability, power and stability the popular PC O/S's until at least later versions of OS/2.)

    Certainly in the embedded space - the whole kernel would fit into a couple of hundred K (yes K, not Megs) and your IDE was a VT100 terminal, a paper clip for shorting a reset and a curious machine for straightening the legs on ROM chips.

    Happy days :)

    Rich Sharples
    Sun Microsystems
    http://blogs.sun.com/roller/page/sharps/
  7. Lookin fuh luv in all the wong paces!
  8. Let's bet on Java[ Go to top ]

    Everybody is talking about the death of Java. Let's define what a dead language is...
    What will replace Java on all its uses?
    When will a technology equivalent to java get enough momentum to replace it? In 1, 2, 5 or 10 years?
    Wanna bet on it?

    Java is not going to die anytime soon!

    And I have one more...

    From now on nothing is going to be simple since the standards are high (partially due to java).

    Merry X-mas 2 you ALL!
  9. So true ....[ Go to top ]

    Every technology needs fans.

    But that's often no relationship between how good a technology is, or how many evangelists it has, and the success of the technology.

    Just look at Microsoft for an example of how inferior technology ...


    PJ Murray
    CodeFutures Software
    Code Generation for Java Persistence
  10. Ted Neward had a similar reaction to Ruby equating the technology affection to an "affair syndrome. (http://blogs.tedneward.com/2005/10/06/Partners+Old+And+New.aspx)"
  11. :-)[ Go to top ]

    Why am I thinking about this thread:

    http://www.theserverside.com/news/thread.tss?thread_id=38021

    ?
  12. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    This makes me think of the Gartner Hype Cycle.

    One other area I've seen people (especially talented people) get irrationally attached to software is with their own, i.e. the Not Invented Here antipattern.
  13. the Far and the community[ Go to top ]

    There is one aspect of being a Fan of technologies that I like. I think that strong communitys are in some ways held together by the fans.

    You could look at it from a sports point of view. People support their teams even when they suck, and have sucked for years. They spend money on tickets and jerseys, put stickers on their cars, yell in the bar about how great their team used to be, and how great it someday will be again. Without the fans you wouldn't have the team.

    When technologies are starting out. I think Rails would be a good example of this now, JBoss an example of years past, you need the fans. The people who use something because they love it, because they see what it can be, and because they feel a personal connection to it. They will defend it even when they are wrong, they will tell as many people as they can about it, and a % of them will spend their time making the technology better.

    I'm not saying we should all run out and blindly support anything we think is cool. And I do accept that there are cases where people use technology they like when they really shouldn't, which can hurt the customer.

    But in general I think that the Fan in us and our competitive drive to see our product win, is a big part of weather a community project succeeds for fails.

    I have been programing Java since the version 1 days, and I have to admit there are many times I used java when some other langauge would have done a better job, but look almost 10 years later at where we are now.
  14. the Far and the community[ Go to top ]

    People support their teams even when they suck, and have sucked for years

    as a chicagoan, i completely disagree! ;)
  15. Article Completely Wrong...[ Go to top ]

    I routinely run into fans who will gladly admit that "their" team's chances of winning a given game are incredibly small.

    And anyone who follows politics knows that his proposed strategy for a politician would be suicide. It wouldn't encourage fence-sitters to go vote, it would just encourage "fans" to not vote (and probably discourage some fence sitters, too).
  16. To be productive you have to be Fan of the tools you use.

    I still cant comprehend how some can do 3 months Java contract and then jump on .NET or Ruby on Rails projects and than some months later come back to Java land.
  17. To be productive you have to be Fan of the tools you use.

    I disagree. Being too much of a fan of any tool tends to blind you to better possibilities and to the weaknesses of the tools you love. To play off an old saying, if you love your hammer too much, all your problems tend to look much like nails. A more objective and detached view of the tools available leads to better decision making. Tool love is an indicator of professional immaturity. (I grant you that tool like makes your job more enjoyable.)

  18. I disagree. Being too much of a fan of any tool tends to blind you to better possibilities and to the weaknesses of the tools you love. To play off an old saying, if you love your hammer too much, all your problems tend to look much like nails. A more objective and detached view of the tools available leads to better decision making.
    >>>>

    Wat you are saying is true, but I wanted to make a point that there significant number of people you are on opposite side of Fan category that tend to use tools which are cool and the latest trend.

    >>>>>>
    Tool love is an indicator of professional immaturity. (I grant you that tool like makes your job more enjoyable.).
    >>>>>>

    Not true.
    I would still say if you can use hammer and do a great job faster, than go with it.

    There are professionals who still use Notepad or Emacs.
    And if project could have been solved equally by Java of Ruby I would still use Java because I fel confortable with the language.
  19. <blockquoteNot true.I would still say if you can use hammer and do a great job faster, than go with it.
    I think you missed both points.

    The original saying goes something like "if your only tool is a hammer, all your problems look like nails". That means that if you see things only through the prism of the tool you love, you are likely to misinterpret a problem and then apply the wrong tool to solving it. In other words, not all problems are nails, so don't restrict your tool options to just a hammer.

    The symptom of "professional immaturity" about which I wrote is the emotional attachment to technology or tools of the trade. What we do is solve problems, not play with toys. A bad reason to use Java (or Ruby) when it is less appropriate is because you like it or are comfortable with it (afraid to learn something new). On the other hand good reason to use Java (or Ruby) in the same situation might be to standardize on implementation so as to reduce maintainence, staffing and training costs. You certainly don't want to have to support a zillion tools, languages, or skill sets. So its not so much the decision as the reasoning behind it.
  20. Lets just say that you can be a fan of technology (including emotional attachment) and still see outside of that prism.
  21. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    I still cant comprehend how some can do 3 months Java contract and then jump on .NET or Ruby on Rails projects and than some months later come back to Java land.
    It is not that tough. My last contract - I would work an a VB/ASP/XSL project. Then a C#. Then a Java. Then a VB/ASP/XSL project. Then a C#/VB.Net. Then a Java. Oh. and did some COBOL/IMS in there too. :)
  22. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    Do you like doing it or would have prefered to stick with one of those technology for some time?
  23. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    Do you like doing it or would have prefered to stick with one of those technology for some time?
    Like doing it. Well, not so much VB/ASP/XSL. :) I like and need change and challenge.

    It helps me see the good/bad in both. Honestly, C# and Java (the language) are pretty close so moving between those is not so bad. Plus I end up using the same tools on both ([Dot]Lucene, [N]Hibernate, [N]Ant, Spring[.Net]) so that helps.
  24. I personally like programing in different langauges. I perfer some langauges more then others for certian types of tasks, but again I like switching it up.

    These days I do more Java work, but mostly because it pays better ;)
  25. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    To be productive you have to be Fan of the tools you use.I still cant comprehend how some can do 3 months Java contract and then jump on .NET or Ruby on Rails projects and than some months later come back to Java land.
    Why is it so hard to comprehend?

    Someone who can do that has all my respect, because they show versatility, adaptibility and I am pretty sure that their knowledge of technologies that are so different will give them a unique and powerful outlook on the best way to get the job done.

    --
    Cedric
  26. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    The knowledge of language is not just a simple library to master in a day.

    Its an investment that you put years of experience to master and use to its full potential.
    And as you spend years using it you become a Fan and get emotionally attached to it and there is nothing wrong with it (it actually says that person knows his stuff).

    I am sure most of us can learn how write application in .NET or Ruby pretty quickly, but it will take some time to actually understand inner workings of the language + its libraries and how to be very productive with it.

    >>>>>>>>>>>>>>>>>>>>>
    Someone who can do that has all my respect, because they show versatility, adaptibility and I am pretty sure that their knowledge of technologies that are so different will give them a unique and powerful outlook on the best way to get the job done.
    >>>>>>>>>>>>>>>>>>>>>

    Maybe they are versatility and adaptive but for the company that does Java primarily it wont matter because enterprise does not change the choice of the language/technology overnigh.


    I'll just say, dont be afraid to attach yourself to a lnguage of choice but be always ready to adapt to other technologies as the need arises.
  27. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    Maybe they are versatility and adaptive but for the company that does Java primarily it wont matter because enterprise does not change the choice of the language/technology overnigh.
    True, but that was not my point. See the last line of my blog post.

    Someone who knows different technologies will usually be better at solving problems in one of these technologies than if they only knew that technology alone.

    Do you want to be a better Java developer? Go learn Ruby.

    --
    Cedric
    (or any other language, for that matter)
  28. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    I dont agree.

    The basic concept of all languages and technologies are pretty much the same. If you know Java, its libraries and related Design Pattern you can very easily understand and use new technologies and languages as needed.

    On contrary I can know the same basic concepts of Java, .NET or Ruby and be able to write mundane Web applications using J2EE, ASP.NET or Ruby on Rails but still not being able to explain the difference between static and dynamic languages.

    The point is I don’t need to learn Ruby or whatever latest and greatest is out there to be a better Java developer, just understand the concepts and move on till you we'll need to use it later.
  29. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    I dont agree.The basic concept of all languages and technologies are pretty much the same. If you know Java, its libraries and related Design Pattern you can very easily understand and use new technologies and languages as needed.

    I have to disagree. I have only recently learned Ruby and I discovered new things that could be done in programming languages that I had never come across in 30 years of messing about with computers: An example is being able to add methods to an instance of a class. The same thing is true of other languages: LISP, Smalltalk and PROLOG can be something of a shock and revelation to developers only used to the Pascal/Algol style of coding.
  30. example?[ Go to top ]

    Someone who knows different technologies will usually be better at solving problems in one of these technologies than if they only knew that technology alone.Do you want to be a better Java developer? Go learn Ruby.

    Can you give an example of how this might occur? For instance, if I go learn Ruby and I start using closures, there's a language idiom that just doesn't exist for me when I'm programming in Java. But I achieve the same thing functionally, albeit with more verbosity, by using an anonymous inner class. The Ruby construct hasn't really added anything to my repertoire when programming in Java. (btw, I'm not arguing that learning another language won't make you a better developer, only looking for a description of how this might take place.)

    To take Steve's example of adding a method to some instance of a class in a language like Lisp, I'm not sure how this makes me a better Java developer. Would I be wrong in stating that this example could be most closely realized in Java through the decorator pattern or perhaps an AOP introduction? And if so, is learning another language like Lisp what helped me to solve the problem in Java by means of the decorator pattern or the introduction?
  31. example?[ Go to top ]

    Can you give an example of how this might occur? For instance, if I go learn Ruby and I start using closures, there's a language idiom that just doesn't exist for me when I'm programming in Java. But I achieve the same thing functionally, albeit with more verbosity, by using an anonymous inner class. The Ruby construct hasn't really added anything to my repertoire when programming in Java.
    Fair points, Michael.

    On a general level, I would say that learning new languages makes you more "educated", but that's probably too vague to address your carefully worded question, so I'll do my best to answer it.

    Closures would actually be the first example that came to mind, and I will just observe that someone a little less knowledgeable than you might actually have a revelation when discovering the concept. When you start understanding how closures work, it's only natural to try to emulate it in Java and the next stop on that road is the discovery of the Command Design Pattern (e.g. Runnable). You already know it, but don' overestimate the number of developers

    Somebody learning Common Lisp might awake to the idea of multi-dispatch and then find a way to implement it in Java.

    Ruby also has some startling concepts such as the possibility to add methods to classes dynamically (not bad) and even create instances of temporary class instances that contain new methods that will only exist on that particular object. Now I can't say that I have found a way to implement this in Java, but thinking about the concept certainly opens your mind to new horizons.

    Prototype languages also offer a new way to look at object creation, and they might get someone to think about factories that are even more dynamic than what they are used to in Java.

    As much as I like Lisp and derivatives, I can't say that I have seen any convincing emulation of functional features in Java: they all end up clunky and harder to read than the original. Still, Lisp is definitely a language that I strongly recommend to learn after one of Ruby/Groovy/Python. And if you're a true masochist, you might even find some amusement and interesting concepts in Haskell (but for the love of tomatoes, please never ever try to emulate its syntax).

    There might be another reason to me thinking this way: I have interviewed a lot of people in my life and overall, I have always found that developers with more than one programming language on their resumes were doing a lot better than the others...

    --
    Cedric
  32. example?[ Go to top ]

    In fact for myself closures are a wonderful example.

    Once I started using closures my feeling for IOC and my use of anaonymous inner classes improved immediately. (Okay so I may have been over-zealous initially).

    The truth has to be viewed from many angles to be undestood is probably a cliche. But it applies well to programming/analysis, the more angles you view from the better your understanding of solving problems.

    Those who can think in UML style diagrams and in terms of code have an advantage over those who think only in one of them. Those who understand .NET and J2EE have an advantage of those of us who are in one camp.

    Of course learning a language well is very important, I think the Pragmatic Programmers suggested learn one well and experiment with another one or two. Surely that can't be bad advise and it helps to avoid religously clingling to our own language.
  33. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    There are different outlooks - you have your Alpha-Geeks - who invest a huge amount of time understanding the smallest, most esoteric details of a technology; then you have others who see technology as a tool - they learn what they need, use it then move on to the next tool.

    Both are reasonable outlooks.

    In many cases, you really shouldn't need to know every single detail of a technology for it to be a productive tool - if that is the case then maybe it's not the right tool. The motivation to know too much is often not driven by necessity but by the desire to be better.

    Typically the Alpha Geeks tend to be the fan base because they have invested the most time and energy in a technology.

    Rich Sharples (retired AlphaGeek)
    Sun Microsystems
    http://blogs.sun.com/roller/page/sharps/
  34. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    There are different outlooks - you have your Alpha-Geeks - who invest a huge amount of time understanding the smallest, most esoteric details of a technology; then you have others who see technology as a tool - they learn what they need, use it then move on to the next tool.

    Both are reasonable outlooks.
    And it doesn't mean either one is more or less intelligent. You need both types of people and both are just as important. They just like different things. Me? I get bored with the same old thing. I guess I could be considered a "Jack of all trades. Master of none." And I think I am pretty good at what I know too. Sure, you could get me if we play "Stump the Developer". But how important is it to remember "the default params for the DISP card in JCL"? Especially when there is google.

    Then again there are those who struggle at learning or don't like it (They are better a other things). So for them it is difficult to relate to either of the above types. I think quite a few people fall into this category. We need to realize the abilities and capabilities of others and not limit them or overwhelm them.
  35. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    To be productive you have to be Fan of the tools you use.I still cant comprehend how some can do 3 months Java contract and then jump on .NET or Ruby on Rails projects and than some months later come back to Java land.

    My 2 bits on this topic. I'll use a real example. When I was doing .NET development, I came across the need to compile XML Schema to classes. The problem is, in .NET 1.0 and 1.1, XSD.exe generates super simplistic code that does basically nothing. Since I already had experience with JAXB and Castor, it was easy to see the differences. I ended up recommending we write our own XML Schema compiler to generate the desired code. Since C# and Java are so close in syntax, it's actually good to work with both and see how some decision in C# were wrong and some were great. Making custom attributes in C# is very nice and it nudged SUN to introduce annotations.

    I eventually wrote my own XML Schema compiler from scratch, so that I could have JAXB style code generation. I went one step further and made my design pluggable, so that users could write new plugins and register them in the configuration. Having knowledge of both actually helped me see a solution that I consider more flexible than XSD and JAXB. Of course I'm bias, since I wrote it and open sourced it.

    peter
  36. I am always skeptical when a person says one technology is "better" than another. Is it better preforming or easier to maintain, and if it does perform better than at what types of tasks? I don't think there is anything wrong with falling in love with technologies if you believe that they are better for your customer or application (i.e. they make your app perform, scale, easier to maintain, more usable, etc.) The most important part of the article is being open to other's opinions on technologies. That is how technology gets better and we get smarter at how we do things.
  37. oh contraire[ Go to top ]

    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.

    Want to put a wager on that ?
    I see Ruby and Rails being implemented more than ever, on both existing and new projects. I'm not referring to little toy applications either.

    Just because it doesn't have Sun Microsystems, Microsoft or... any giant corporation behind it for that matter, doesn't mean it can't be successful.
    The good ol' grassroots approach to software adoption can succeed :)
  38. Cedric Beust: "The Fan Syndrome"[ Go to top ]

    Sadly, it seems to take a lot of years of experience for most people to come to this conclusion -- myself included.
  39. That is the typical kneejerk reaction that is symptomatic for the Java programmer, seeing all things as a threat prevent him to see things clearly. First they say that RoR is useless, then it is viable only in small projects, then that it is "was nothing new", then that has been invented before, etc, now they say "it is ok but is not going to take over the world". ;)

    What is it with RoR that is special? Is it Ruby? No. Is it the Relational Mapping? No. It is the scaffolding that is the gem, the good idea that is going to make its way everywhere, into every development environments and languages.

    One thing I enjoy very much is watching MTV when suddenly a new song comes that I never have heard before and instantly knowing in my bones that this is going to be a great hit..

    That is the same kind of feeling I had when I tried RoR the first time. But the Java guys have lost all capacity for exhilaration, amazement, being locked down in totally defensive positions and seeing everything as a threat.

    Regards
    Rolf Tollerud
  40. That is the typical kneejerk reaction that is symptomatic for the Java programmer, seeing all things as a threat prevent him to see things clearly.

    Such hate, Rolf. Where's the love? Afterall, you should not care about Java developers. You sit in the ivory tower of superior Microsoft products and technologies. Little things like Java should not create such an itch; Java is irrelevant compared to .NET and any other favorite technology of the day anyway. Why care?
  41. Rolf, this is the first time I have ever totally agreed with you on something.

    Only small point I think you are wrong on is that it is not just Java programmers that act this way. I see this kind of thing from C, C++, etc developers. How about your .NET buddies, how do they feel about RoR.

    I wonder how long it will be before something comes along that makes the RoR developers feel scared.
  42. But the Java guys have lost all capacity for exhilaration, amazement, being locked down in totally defensive positions and seeing everything as a threat.RegardsRolf Tollerud

    Oh come on! I would suggest that is your position - if you weren't feeling defensive and threatened by Java, why are you on here attacking it so much?

    I have seen some exhilarating things in Java (well, exhilarating for me!) - my relatively recent discovery of AOP + Spring has given me a whole new perspective on how applications are developed. When I suddenly 'got' AOP and DI it was as much of revelation to as when I first learned OOP decades ago. I felt a lot of excitement when I translated some simulation software I had written years ago from C++ into Java, and found it ran as fast! The sheer fun of what I could do to that software using Java language facilities and APIs like JINI was awesome. Stuff that researchers had battled with for years in Fortran (and occasionally C++) suddenly has become easy. There are many more examples...

    Most Java developers are too busy coding to see anything as a threat.
  43. Fan[ Go to top ]

    I'm a fan of Cedric.
  44. honesty in politics and technology[ Go to top ]

    liked cedric's thoughts on the honest candidate stating that his poll numbers were not looking good (while realizing that poli-sci peops probably have very good reasons to not support this approach). complete truth (even when the news is not good) is my policy, but it does get you nipped sometimes.

    on the very same thought as the honest candidate: if a fan of some tech admitted to any warts their tech of choice had, the tech itself would benefit, perhaps starting discussion and revision (thinking in oss terms) that irons things out and results in an improved offering.
  45. Programming is like fashion: new style is the well forgotten old style.

    One of the reason Java was introduced is to combine features offered from all the disparate language out there into well balanced and easy to use language.
    Just recall the reasons why some features did and some didn’t make into Java that Gosling was bringing up during his early interviews.

    Are we going around the circle? What is the reason that after almost 10 years people suddenly got interested in these old language that were giving more headaches than benefits to most of developers?