jducoeur: (Default)
[personal profile] jducoeur
So we're now deeply immersed in the project of getting our fancy and powerful Browser Plugin working in Firefox. (Suffice it to say, we feed information from ASAP into the browser, so that the targeted webpages can have some features ranging from difficult to impossible otherwise.) The process is confirming all of my biases about Open Source.

On the one hand, the architecture of Mozilla is really rather nice. There are some silly decisions (like coming up with a new version of COM that is just different enough from Microsoft's as to be incompatible), but the overall notion of having the XUL+Javascript layer in control, and the C++ layer largely subordinate, seems both wise and rather innovative. A bit of a pain in the ass to work with for C++-centric apps like ours, but probably lovely in most cases.

That said: ohmigod, the documentation is such a mess. It's improving, and they're getting to the point where it's decent for conventional applets -- a tad scattershot and cryptic, but most of the information is there. But when you try to do something sophisticated, you're left with little choice but to dig into the source code (not exactly well-commented itself).

For example, right now I've got an unusual but straightforward problem. I want to have the Javascript on my page call into the C++ layer, passing in a Javascript callback to be invoked when we have an answer. Not that weird, right? After quite a lot of random digging through the source, I finally figured out that the answer is to use the "function" keyword in the IDL. Where is this documented? Nowhere, as far as I can tell. All of the online documentation for XPIDL points to the same document, with parenthetical comments that it is "a little out of date". Well, yeah -- it was last updated seven years ago! It's not even the "this is what we wrote" document, it's the "this is the spec for what we intend to write" document. Oy.

None of this is surprising, of course: open source projects are largely at the mercy of what the programmers want to do, and most programmers don't like writing documentation. But man -- it would all be so much more useful if there was a clear documentation plan here...

(no subject)

Date: 2006-06-12 07:32 pm (UTC)
From: [identity profile] metahacker.livejournal.com
While it's true that OSS projects definitely suffer from this sort of problem, I'd have to point out that *commercial* software often sucks on this front. See earlier rants about symptoms like the "getObjects()" function and its documentation ("returns an array of objects"), as well as a complete lack of a roadmap for the docs of the last three highly expensive commercial packages I've had to use. ("Hmm. Maybe I'll see what's in the com.XXX.scv.crs.model package. Something useful might be in there.")

(no subject)

Date: 2006-06-12 07:47 pm (UTC)
From: [identity profile] edolecki.livejournal.com
See: http://jducoeur.livejournal.com/227261.html

You could add your findings to the documentation and help others who will be doing the same things you are right now.

(no subject)

Date: 2006-06-12 11:16 pm (UTC)
From: (Anonymous)
"Curiously good" - why?

(no subject)

Date: 2006-06-12 08:26 pm (UTC)
From: [identity profile] talvinamarich.livejournal.com
Do you ever use Lisp?

I ask, because I am the Tech Writer for a company that is putting out an implementation of Lisp as part of its flagship product. While I am very new to the Tech Writing field, my rule-of-thumb throughout has been "Sooner or later, somebody working late at night, living on caffeine, and facing a deadline is going to have to USE what I wrote!"

If you are interested, let me know and I will point you to our website. (It's a work in progress, we're still ironing out the wrinkles.)

--Colin

(no subject)

Date: 2006-06-12 08:58 pm (UTC)
From: [identity profile] goldsquare.livejournal.com
Off topic, but you may want to see this.

(I created the feed this morning, it's Galleron's blog on Blogspot.)

(no subject)

Date: 2006-06-12 11:22 pm (UTC)
ext_44932: (Default)
From: [identity profile] baavgai.livejournal.com
I completely sympathize. I wrote a XUL app for a project a few years ago (for phoenix?). I recall XULPlanet was up, a much smaller site then. Few other resources were available. Figuring out functions sometimes involved CVS tree climbing.

At the time, I couldn't shake the feeling that I was one of the few programmers in the world who'd ever tried to write a XUL application who wasn't directly involved with the mozilla project. Seriously, it felt lonely.

Best of luck. Those kind of projects tend to be rewarding when you get the bloody thing to work, but much cursing tends to precede that point.

XPCOM

Date: 2006-06-13 04:41 pm (UTC)
From: [identity profile] metageek.livejournal.com
There are some silly decisions (like coming up with a new version of COM that is just different enough from Microsoft's as to be incompatible),

FWIW, that was a Netscape decision, not a Mozilla decision. And it still seems like a reasonable one to me: Netscape needed to bring down the cost of cross-platform development (we had a terrible time finding people to develop on Mac), and some people at Netscape liked COM, so building a cross-platform COM made sense.

Of course, in the current Mozilla codebase, I expect XPCOM is less important than expected, since most people are probably writing components in JavaScript instead of C++. Of course, that just means that nobody's learning XPCOM well enough to document it...

Profile

jducoeur: (Default)
jducoeur

October 2025

S M T W T F S
   12 34
567891011
12131415161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags