Three Monkeys, Three Typewriters, Two Days

July 17, 2003

The wonderful world of ifdefs

I was poking about in webshell today, and discovered some fun |#ifdef MOZ_THUNDERBIRD| code that was checked in without anyone who could claim to be a webshell owner being consulted, as far as I can tell. Quite apart from the abysmal record Mozilla (and mail in particular) have as far as removing such "temporary" code, I think that removing such ifdefs should be the number one priority of the Firebird and Thunderbird developers. If they need help, API changes, etc. to do so, they should let the relevant module owner know instead of tossing in ifdefs!

After all, the only way we'll ever get the various apps to share a GRE is if the GRE includes a core that they can all use as-is. If proper functioning of Thunderbird relies on HTTP loads being punted to the OS in the docshell/webshell, there is no way that it can share libdocshell with Firebird.

Posted by bzbarsky at July 17, 2003 12:11 PM
Comments

Yikes. That doesn't just look bad for the #ifdef part, it just looks shitty right thru the #ifdef down to the only hardly good thing, the #endif.

Gotta love design when you see it.

Posted by: Axel Hecht on July 17, 2003 2:58 PM

maybe I'm being paranoid, but this seems like another symptom of something I've moaned to nobody-in-particular about a couple of times recently.

There have been several other instances of a "quick hack to get X working" (although this is probably worse), and the moves to having "Sunbird" and composer++ distributed as standalone packages right now in a hurry. Kind of feels like people have decided that they're in a hurry to get working, standalone apps out to end users as soon as possible.

Of course it's great to get this stuff out there to people, but there's no point rushing out crappy stuff if it's going to mean that it's then necessary to take a step backwards and fix things before we can move forward.

Posted by: michaell on July 17, 2003 5:01 PM

""But there's no point rushing out crappy stuff if it's going to mean that it's then necessary to take a step backwards and fix things before we can move forward.""

I agree in theory, but the problem with Chatzilla, Calander (Sunbird), etc. as they are now, is the inconsistency of a build working with a release
(Firebird 0.6, Mozilla 1.3, 1.4).
If I want to run chatzilla and calendar in Firebird, I need to seperate versions of Firebird and specific coresponding releases of the extensions for them to work properly.

This sucks! In theory this should happen, but it does. This is why I see Standalone apps being inportant. When i download the latest Thunderbird build from Scott, I KNOW it is going to work since he's they one who built it and tested it before hand. And it rocks!

While I totaly agree with the backwards dance that is required, as en end-user I appreciate this imensly!

Posted by: Jed on July 18, 2003 12:30 AM

I am not surprised. Ever since the first incarnation of Phoenix appeared, there has been a sense of immaturity involved. It has been clear that some people involved are more than willing to write hack code to "fix" problems and implement new features rather than invest the time and effort to do it right the first time. They have no concern for the affect that this will have in the long run.

Unfortunately it seems like there will be a lot of chaos coming to the codebase before we have a stable compatible cross-platform combination of the individual components of GRE, browser, mail, etc that is actually suitable for the average enduser to download and install.

Posted by: Mark on July 19, 2003 4:43 AM

How does Phoenix come into this, exactly?

As for chaos, GOOD! We need a good deal of chaos to shake out some issues in the codebase.

Posted by: Boris on July 20, 2003 1:42 PM
Post a comment