









Rapid Application Development with Mozilla 249
Rapid Application Development with Mozilla | |
author | Nigel McFarlane |
pages | 770 |
publisher | Prentice Hall PTR |
rating | 7 |
reviewer | Matthew Morgan |
ISBN | 0131423436 |
summary | A good overview and tutorial for building applications atop Mozilla, though not a comprehensive reference. |
The Basics
Rapid Application Development with Mozilla (hereafter RADM) centers on XUL, Mozilla's XML dialect for describing GUIs. Other Mozilla components, like XBL and RDF, are described mainly in terms of how they plug into XUL. Each chapter presents and explains a component, then shows it in action by using it in an example application (a web-page annotator) developed throughout the book. Chapter conclusions take the form of debugging hints; as McFarlane ruefully notes, most errors cause Mozilla to silently do nothing, making debugging a chore.The first half of RADM covers basic XUL use -- the usual complement of widgets with CSS to style them and JavaScript to manipulate them. McFarlane does assume previous exposure to basic HTML, JavaScript, and CSS, but extensive experience isn't required. At each step McFarlane does a good job explaining what's similar to HTML (e.g. most DOM stuff) and what isn't (e.g. the layout model). A few components have no real analog in the HTML model, like Mozilla's command dispatch system, so they're presented from the ground up.
The Back End
The second half of the book leans more toward the back end: using RDF for registries and template data; piping data into XUL with overlays, templates, and XBL; using and implementing XPCOM components; and deploying applications built on Mozilla.
McFarlane's RDF tutorial is one of the best I've seen. He starts off on the right foot by introducing things in terms of a directed graph, with lots of examples and diagrams. Only after eighteen pages of that does he introduce the RDF/XML syntax. His explanation of RDF/XML is unusually lucid, quite a feat considering how hairy RDF/XML gets. (Disclaimer: I've had past experience with RDF, so I wasn't reading this as a beginner -- in other words, YMMV.)
In the succeeding chapters, RDF is applied within the various Mozilla arenas, like XUL overlays and package installation, where it's used to store config information. The centerpiece of RDF in Mozilla, though, is in its use to create data-driven XUL files through XUL templates.
The chapter on templates runs to sixty-plus pages, and it's worth it. McFarlane covers things I haven't seen covered anywhere else. For instance, he describes the algorithm the RDF query engine uses to evaluate queries, so that you can better understand what kind of queries you can construct. This is crucial information because the query syntax allows a lot of queries that are logically reasonable, but won't actually work.
This points to a strength of RADM: McFarlane doesn't hesitate to criticize Mozilla where necessary. Throughout the book, he flags incomplete features, buggy implementations, and other gotchas, such as security restrictions surrounding RDF that make it all but useless for remote scenarios.
(Incidentally, McFarlane explicitly disclaims coverage of Phoenix/Firebird/Firefox, sticking to Mozilla 1.4, but in practice everything I've tried has worked fine in Firefox 0.8.)
Two Out Of Three Ain't Bad
So, does RADM manage to accomplish its goals of being a conceptual overview, tutorial, and reference? I'd give it two out of three.
As a conceptual overview, RADM shines. McFarlane is at his best when comparing and contrasting closely related components, like overlays, templates, and XBL, all of which extend XUL but do it in different ways. I was left with a good picture of what can and can't be done in Mozilla.
As a tutorial, RADM is solidly useful. The example-application sections cover a surprisingly large amount of ground -- more than enough to get a developer new to Mozilla up and running. McFarlane chose a good subset to present as examples; still, all of his clear writing can't paper over the fact that Mozilla is really complicated, not just internally, but in the interface it presents to developers using it as a platform.
As a reference, RADM stumbles. The index is slim -- a mere eighteen pages after 752 pages of content -- which makes small chunks of information hard to find. This is mitigated by a detailed and well-organized table of contents. After a few weeks of use, I find myself turning to the contents first, and only trying the index if I have to.
Fundamentally, though, RADM isn't really a reference book, and definitely not a "quick reference." You'd be better off using a good site like XULPlanet for quick what-arguments-does-that-method-take checks, and reserving RADM for in-depth explanations.
Conclusion
RADM is published in Bruce Perens' Open Source Series at Prentice Hall under the Open Publication License. After a few months of letting the book sell on its own, they'll post the PDF of the entire book online. Is it worth buying in print? Given that it's more of a sit-down-and-read book than a quick-reference guide, I'd say so.
If you're considering Mozilla as a platform, I'd recommend RADM for its reasonable balance that shows Mozilla's strengths and weaknesses. If you're already sold on Mozilla and just want to wrap your head around it and start building an app on it, RADM is the book for you.
You can purchase Rapid Application Development with Mozilla from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page
Rapid Mozilla Development (Score:5, Funny)
Re:Rapid Mozilla Development (Score:2, Funny)
you bloody hard bastard!
Bugs (Score:3, Insightful)
Re:Bugs (Score:3, Informative)
Re:Bugs (Score:5, Funny)
>> I'll take less bugs over rapid development any day.
> That should be "fewer" you tool.
I guess he proved his point. His "rapidly developed" comment had a bug.
Re:Bugs (Score:2)
Download link (Score:4, Informative)
Cheaper on Amazon (Score:2)
Support of large corporations (Score:5, Interesting)
This is a great opportunity to show what Mozilla is truly capable of. In may ways Mozilla offers today what Microsoft is only planning to release with Longhorn. Not to mention the fact that Mozilla is Free Software and platform independent. It's made to order for developing and releasing rich client applications on a wide variety of platforms.
Re:Support of large corporations (Score:5, Interesting)
I was in Lowe's home impovement this weekend, and noticed that the terminals appeared to be running custom apps based on Mozilla on Linux terminals (as well as some character based apps). The widgets appeared to be Gnome, but I am not positive.
Brian
Re:Support of large corporations (Score:3, Insightful)
Re:Support of large corporations (Score:2)
Re: (Score:2)
Re:Support of large corporations (Score:4, Interesting)
Support of large corporations-Ahead of the critics (Score:3, Insightful)
Something that either would be behind, or none existant if the developers had listened to their critics.
This is one of the reasons developers shouldn't pay attention to armchair critics. Critics more than anything else, are working from incomplete, or inaccurate, o
It's time to embrace XUL (Score:5, Insightful)
Re:It's time to embrace XUL (Score:2, Insightful)
Now for the question that determines whether or not i choose to believe you: why XUL over others?
Please explain.
Re:It's time to embrace XUL (Score:4, Informative)
Re:It's time to embrace XUL (Score:4, Informative)
The Glade XML format is kind of strange (it looks like XML described in XML; a pointless scheme), but Glade simplifies GUI development to a point that I have yet to see anyone improve on, in terms of simplicity (I've worked with Tk, regular Gtk, wxWindows, and web-based applications).
Re:It's time to embrace XUL (Score:4, Informative)
Then surely XUL improves on Glade, by being not so strange. On the otherhand, XUL's reliance on Javascript might give the lead back to Glade/GTK.
Re:It's time to embrace XUL (Score:2, Insightful)
Komodo [activestate.com] is written in XUL with xpcom+python.
Re:It's time to embrace XUL (Score:3, Informative)
It's a persisted GObject tree. libglade reads the XML which maps pretty much directly to constructing a tree of GObjects and setting their properties and signals. The reason it looks like XML describing XML is because it's describing a tree of attributed nodes, but with callbacks - ie they *are* similar, but at the same time they are actually quite different.
The Glade XML format isn't designed to be written
Re:It's time to embrace XUL (Score:5, Insightful)
It would be an interesting proof-of-concept though if someone wrote an XUL based desktop environment. So far XUL is really missing a killer-app (besides mozilla).
Re:It's time to embrace XUL (Score:3, Insightful)
As for XUL - as far as I'm aware, the only XUL-based application out there is Mozilla and XUL is tied very tightly to it - are there any XUL libraries for other, more native toolkits? There's at least a couple other XML based layout languages - wxWindows has one, Gtk has one, and I think Qt uses one now also. Whats th
Re:It's time to embrace XUL (Score:4, Insightful)
What's more, XUL should let us do fairly easy localizations and the like. Not that this has been a problem in Linux since every major project has implemented some api to get around it, but for smaller projects that want to become bigger projects, it's nice to already have features like localization at your hands.
I think it would be a fairly impressive, and quite snappy, user environment. With SVG coming to age and XML being embraced *even though I hate it*, it's good to see an actual Good Use (tm) of it.
Furthermore, doesn't Mozilla require GTK libraries? I was under the impression that it used some code from GTK, but didn't actually render it's widgets and the like with it. I'm most likely wrong about this, but it's still interesting.
Re:It's time to embrace XUL (Score:2)
likewise following this analogy, there should be a quartz and GDI port for native mac and windows.
Re:It's time to embrace XUL (Score:4, Interesting)
Mozilla rocks, but it took them until 2001 or so to produce a better browser than IE.
Re:It's time to embrace XUL (Score:2)
Re:It's time to embrace XUL (Score:2)
Linux is all about Linux.
XUL is all about delivering cross-platform apps
rapidly. It isn't about Linux. Nor is it about
choice.
Re:It's time to embrace XUL (Score:3, Insightful)
My problem with mozilla is not XUL, which I think is great. It's that javascript is the only language with built-in support. Sure you can add others, but unless they are there by default that is too much of an administrational burden and you can't rely on it.
Mozilla needs to do one of two things (or both):
a) include a java VM that can run apache BSF
b) work with the parrot people and build it into Mozilla
You can rest assured that Microsoft is working on multiple language support through a marriage of IE to
Web-installer.... (Score:5, Insightful)
If I could build an installer with mozilla that would let me do this with _any_ application, that would be golden!!
Re:Web-installer.... (Score:5, Insightful)
You realize FTP has had that capability since like 1985, right? And that Postel didn't invent it, either?
Re:Web-installer.... (Score:2, Insightful)
But thanks for the condescending insight anyways...
Re:Web-installer.... (Score:3, Funny)
How did the world put the lemmings in control of the programmer?
Re:Web-installer.... (Score:2)
Re:Web-installer.... (Score:2)
Sigh. I'll try again.
TAKE THE CODE FROM FTP AND USE IT IN YOUR INSTALLER. YOU CAN DO THIS BECAUSE IT'S FREE SOFTWARE.
BTW, every web browser has FTP built in. EVERY SINGLE ONE.
Re:Web-installer.... (Score:2)
Not nearly enough.
How come I consistently have to go to other clients to get the job done?
Sturgeon's Law: Ninety percent of everything is crap.
The fact that there are other clients you CAN go to proves it can be done. There is Free/Open code to do it, so there is precious little excuse NOT to do it if you're writing code that could benefit from it.
Especially if you're writing code that could benefit from it AND bitching on S
Re:Web-installer.... (Score:2)
Step 1: Find a simple ftp client engine. http://www.marshallsoft.com/fce4c.htm is one I googled for C - http://www.freesoft.org/CIE/RFC/959/index.htm if you want to write your own.
Step 2: Write a simple GUI. Visual C++ can do this, or NetBeans for Java. However, if you're using Java then you have Java Web Start and why are you complaining, anyway?
Step 3: Set your program up on an FTP somewhere.
You're golden!
But
Re:Web-installer.... (Score:2)
Re:Web-installer.... (Score:2)
Re:Web-installer.... (Score:2)
A download manager is an application that generically provides this functionality for _any_ install. I do not want to coach each user on how to instal
Re:Web-installer.... (Score:2)
No, I think *you* are missing the point. Write your minimalist app, use FTP functionality. FTP isn't some huge monolithic think you plug into your app, just provide the minimalist functionality you need. No big deal...
Developing Mozilla Extensions (Score:2, Interesting)
Forbidden!! (Score:2, Insightful)
Doesn't look like a very open license to me.
Re:Forbidden!! (Score:5, Informative)
Bruce
The 5 Linux platforms (Score:5, Interesting)
Nat Friedman recently identified Linux as 5 platforms:
1) Gnome
2) KDE
3) OpenOffice.org
4) Mozilla
5) Eclipse
Considering that each of these are at least marginally successful as platforms, a coherent platform doesn't seem to be in the cards for Linux. Many of us think that's perfectly fine.
My only concern is whether Mozilla is at least viable as a platform. Can developers assume their apps will run well for many users if they build in XUL?
Re:The 5 Linux platforms (Score:4, Interesting)
as i said in another post in this thread, these are ALL different things. Each accomplishes different goals. These all share one thing in common: GUI. However each one encompasses other things. SWT for example is limited to java. Java cannot be distributed in just about any distro, so this rules it out as a viable platform. GTK is highly portable, but it is however horrible when it comes to any platform but linux. It runs in windows, without a windows theme to match. it runs in os x, but only via x11. Gtk's in a pretty sad state considering how "portable" it's supposed to be. Qt's one of the better-off toolkits, but it suffers from gtk's problems too. It's only good on linux. half-assed os x port (at least it's not x11 dependent) and the windows port is totally unmaintained (yay 2.0!). Openoffice is unskinnable, ugly, and requires X11 in os x. That rules it out. That really just leaves us with XUL. To be honest, XUL's not half bad. I've seen mozilla. it looks fantastic on all 3 platforms. can you say the same for any of these other toolkits besides SWT (which is java only and has licensing issues)? nope. XUL is WAY under appreciated i think.
Re:The 5 Linux platforms (Score:2, Informative)
Re:The 5 Linux platforms (Score:4, Interesting)
BS. I guess that I didn't write the Gtk-wimp [sourceforge.net] theme engine, then. And I guess I'm not running Gimp, Gaim, Xchat, Dia, Inscape, and Workrave on Win32 right now... The gtk-wimp screenshots are out of date, btw, but are good enough to get the general idea across.
GTK 1.2 has also been ported to Apple's Carbon framework. I have plans to do something similar for GTK 2.x.
"Qt's one of the better-off toolkits, but it suffers from gtk's problems too. It's only good on linux. half-assed os x port (at least it's not x11 dependent) and the windows port is totally unmaintained (yay 2.0!)."
Huh? Trolltech gets a lot of money from licensing QT 3.3 on Win32. I've licensed it. It's maintained, and works great. The OSX port isn't as half-assed as you'd like to think. It's not FOSS on Win32, like it is on OSX and *NIX, but that's Trolltech's decision, not mine.
You're right, XUL may be horribly under-appreciated. But realize that's largely Mozilla's own doing. They've been promising a standalone GRE for about 5 years now, and have yet to follow through. Much of the Mozilla platform is meant for eventual public consumption, but it's not ready for that today. When I can 'gcc -o myapp -lMozillaGRE -lMozillaJScript', come tell me.
Re:The 5 Linux platforms (Score:2)
i believe the reason i said qt is at 2.0 for windows was that FOSS software can only use the 2.0 library, which is why it's impractical to use for cr
Re:The 5 Linux platforms (Score:2)
*) The GTK 1.2 port for OSX does suck visually, but you mentioned "portability", so I thought I'd throw that in just for kicks. I wouldn't suggest using it in a production setting. They are, however, making some progress using the OSX Appearances Manager API:
http://gtk-osx.sourceforge.net/pix/gtktestthing . aq ua.buttons.jpg
*) The QT3 OSX theme also uses the Appearances Manager APIs. It's not perfect, but I don't think it's as
Re:The 5 Linux platforms (Score:3, Informative)
2) Get Gimp 2.0 from http://www2.arnes.si/~sopjsimo/gimp/stable.html
4) Install GTK 2.2.4-2
5) Open regedit
6) Change HKEY_CURRENT_USER/Software/GTK/2.0/Version to read "2.2.4-20040124"
7) Change HKEY_LOCAL_MACHINE/Software/GTK/2.0/Version to read "2.2.4-20040124"
8) Install the Gimp
9) Enjoy
Re:The 5 Linux platforms (Score:3, Interesting)
Re:The 5 Linux platforms (Score:2)
Yes. Try asking any of the dozens of embedded systems tool makers how they created their design environments based on Eclipse, which you apparently consider a non-platform. It's just as much of a platform as Mozilla/XUL.
Re:The 5 Linux platforms (Score:3, Interesting)
You forgot the most important one (Score:3, Funny)
Re:The 5 Linux platforms (Score:2)
1) Gnome
2) KDE
3) OpenOffice.org
4) Mozilla
5) Eclipse
He forgot Motif, the insensitive clod!
Sho me the MONEY! (Score:4, Interesting)
But - is there a single application that I'd consider using, written with Moz, other than Moz itself?
Anybody? One? Just one?
Re:Sho me the MONEY! (Score:4, Informative)
Re:Sho me the MONEY! (Score:3, Funny)
Java webapps are the universe's way of sending people back to the 286 era of speed and functionality while allowing them to keep 32-bit color and sound.
Re:Sho me the MONEY! (Score:5, Informative)
McFarlane's book was my primary reference for the project. It is a very useful book, but I do agree with the reviewer that the index needs some work. Additionally, make sure you keep an eye on the errata [phptr.com] page. I was a bit disappointed that the book didn't talk about how to parse generic XML in your application (look at the parseFromString() member function of DOMParser).
MOD PARENT UP. (Score:2)
Re:Sho me the MONEY! (Score:2)
-Ben
Re:Sho me the MONEY! (Score:4, Interesting)
Do a google search for XUL and AMAZON and try out the XUL developed Amazon interface. You need a Mozilla based browser.
After trying this interface then come back and comment.
Re:Sho me the MONEY! (Score:2)
Amazon Browser? [infodraft.com]
Quite cool, indeed. Damn, I may have to get the book now.
Re:Hmm. (Score:3, Interesting)
Do you think it is any better?
At least, the Mozilla platform is free and available on other OS than Win32.
While you're at it... (Score:2)
Re:Sho me the MONEY! (Score:4, Informative)
Re:Sho me the MONEY! (Score:2)
I'm looking for the same thing for XWT - who's using it for something that I'd consider using myself?
XWT tries to address a moderately similar problem - putting a GUI framework to talk to Web services running on remote systems. Rather than being constrained to using a Web browser interface, your XWT apps can look like "normal" applications while still running a thin client with everything downloaded over the wire.
Great idea, interesting approach, but I can't yet find a compelling app that
Re:Hiow about the (s)ftp lizard (Score:3, Informative)
Quick Question (Score:5, Interesting)
I was given to understand that Mozilla as application platform should be platform independent. But what about the actual code apart from GUI and the necessary wiring?
Re:Quick Question (Score:3, Interesting)
I was given to understand that Mozilla as application platform should be platform independent. But what about the actual code apart from GUI and the necessary wiring?
Java? But even with C or C++, once you've got the UI out of the way, and using a standard library for network and filesystem access (I assume Mozilla provides this), there ar
Re:Quick Question (Score:3, Insightful)
Then the presentation layer could be done in something like Mozilla/XUL on Linux,
Re:Quick Question (Score:2)
Re:Quick Question (Score:2)
Also, native apps often look and behave better than Java apps. I use MacOS X and PalmOS 5. Do I use Java apps? Yes. Do I use any MIDlets? Yes. Given the choice between a Java app and a Cocoa app, which will I use? The Cocoa app. Given a choice between a MIDlet a
Re:Quick Question (Score:3, Informative)
Re:Quick Question (Score:3, Insightful)
Actually, no. That's exactly what I do not want. I want an app that conforms to each platform's UI guidelines. The UI guidelines of the different platforms are incompatible with each other, though. An app that behaved exactly the same on e
Re:Quick Question (Score:3, Insightful)
Uhh, Mozilla/XUL runs on Linux, Windows and MacOS X. Why would you develop three different times when you could do it once?
Re:Quick Question (Score:2)
Some people might do so because they prefer native apps to cross-platform apps (for example, under MacOS X it's easier to make the behavior of Services consistent that way -- as things stand, I don't run Mozilla on MacOS X because it's not as well-integrated with the OS as Safari is).
But the point I was really trying to make is that by using web services, you could enable that strate
Sounds like a soon-to-be-added edition (Score:5, Informative)
XUL? (Score:4, Funny)
Re:XUL? (Score:4, Funny)
There are no Ghostbuster jokes, only XUL
[/evil_voice_over]
Re:XUL? (Score:3, Informative)
Check the XUL specification. It uses http://www.mozilla.org/keymaster/gatekeeper/there. is.only.xul
which is a Ghostbusters reference.
Re:XUL? (Score:2)
No, he mentioned Ghostbusters because Xul (actually Zuul, according to the Wikipedia [wikipedia.org]) is the name of a character in Ghostbusters, not necessarily because he understood that the Mozilla developers intentionally used that reference. That is the reason why I felt the need to clarify that both "gatekeeper" and "keymaster" (obviously references to Ghostbusters) are in the URL.
Head off to Kuro5hin if you're so quick to call someone a moron.
Here's the unencrypted PDF and source code. (Score:5, Informative)
Here's the source RTF document in a zip file. [informit.com] That's Rich Text File, not the usual acronym :-)
So, having established that it really is Open Source, I do encourage you to buy the book.
Thanks
Bruce
Re:Here's the unencrypted PDF and source code. (Score:5, Informative)
For those interested in those that have been released as
Re:Here's the unencrypted PDF and source code. (Score:2)
This book looks really nice, but I find those little circles everywhere distracting when I print it out.
Re:Here's the unencrypted PDF and source code. (Score:2)
Come to think of it, perhaps bounding boxes should be a feature of PDF viewers.
Or you could buy the book :-)
Bruce
Re:Here's the unencrypted PDF and source code. (Score:3, Informative)
Mozilla + Trailblazer = drool (Score:5, Interesting)
And don't suggest me. I'm far too lazy.
I've recently read this... (Score:4, Interesting)
The listings are only for parts of an application at a time, making it hard to visualize the whole project.
It could really do with having stand alone examples for each chapter or, at the very least, have an associated web site with such content (the listings could, I guess, get a little out of hand).
It may just be me, but seeing snippets out of context is not how I learn things.
I think it would have been better if they started off by presenting the whole of the notetaker program, and then analysed each section to explain what it did, and leave the detailed descriptions of tags to appendices.
In its defence though, there's so much to learn that it would be hard to make a good tutorial in one book along with the reference material - whatever the approach.
I'm still waiting for a perfect book on Mozilla Application Development. Kudos to anyone who manages to write one though - there's so much to cover.
cLive
Cross Platform kits and Native Interferaces (Score:5, Interesting)
I think everyone agrees that most x-platform tookits have one glaring weakness - all the platforms share the same user interface. Mozilla supports skinning, which is nice, but it doesn't feel like a Windows application or a Mac application. It feels like an XUL application. NeXT had fantastic x-platform support with OpenStep; it's also how it (and Cocoa) acheive localization. That technique should be able to be used with other toolkits, even if they don't have 'native' support for that technique.
Let's take a look at localization first. Typically, you generate a .strings file for each language. That kinda sucks because if you just did that, all localized versions would share the exact same window and control (widget) dimensions. The following is what Cocoa (OpenStep) does. Each application 'binary' is actually a directory with this kind of layout
Hopefully that's self-explanatory. Basically each platform gets its own version of an executable, and each language gets its own version of the interface (falling back to the basic definition in Resources/ if no version for a specific language is found). Well the next step is obvious. If you want to create a windows specific .nib, you create a MainWindow-windows.nib, which will only be used over MainWindow.nib on the Windows platform. Native controls are used on each platform, regardless if there's a platform-specific nib or not.
It's a shame that Cocoa is no longer x-platform (although the support is still there, it's just that the runtime isn't available on other platforms). But this should be possible with other platforms too; you just need to encapsulate resource loading and load the appropriate resource for each platform and localization.
Rapid Application Development, what does it mean? (Score:2)
If Mozilla itself is any example, Mozilla and XUL can only be used for rapid development of antirapid (i.e. sluggish) applications.
Re:Rapid Application Development, what does it mea (Score:3, Interesting)
RAD is usually targetted at quick-and-dirty application with a GUI. Something where usability is the most important factor. I would never develop a banking system with a RAD tool given the number of transactions/secs, error recovering and other stuff which are required and much more important than a flashy GUI to it.
Re:Rapid Application Development, what does it mea (Score:2, Insightful)
Re:Rapid Application Development, what does it mea (Score:2, Informative)
Have you seen XUL's root? (Score:2)
There is no data. There is only XUL [mozilla.org]
Warning In the past, I've had versions of Explorer crash on me when looking at that page, so you may want to try it only in non-IE browsers (YMMV).
Adding entries in Mozilla's default popup? (Score:2, Interesting)
I would love to be able to present for him a solution that works for mozilla as well. Is it possible to add an entry, say "Print 5 Copies" to the default popup menu below "Save Page As", and have that run some javascript (or something else) using any of the mentioned RDF/XBL/XUL?
Doing real work with Mozilla (Score:3, Informative)
Anyway, reading this book did provide me a great leap forward in my first large Mozilla app. For anyone who doubts whether serious work can be done in Mozilla, I will say... yes, but not with Mozilla alone. Obviously, Mozilla is intended as a GUI framework, so to accomplish serious work, you still need some system-level stuff to happen. My biggest quest in developing a kiosk-based app for Linux was how to integrate the two:
1. How to do this is not as readily apparent as I had thought. Of course, every web app developer's first thought would be to use Apache/PHP and basically treat the thing as a web app. But that ignores 90% of the true capability of Mozilla, so even though that was my home turf, I rejected that concept.
2. I thought maybe I would dig into that incredibly large pile of interfaces that makes up XPCOM, and see if I could play with the Python or Perl implementations, but my project was too much of a RAD situation to allow for that kind of time.
3. I thought maybe I could use MozPHP, which embeds a PHP intepreter in Mozilla. Turns out that it is near impossible to actually get it to work, and it really plunks you right back in the same old dynamic-document-building territory as the HTTP-based solution would. (In other words, you are using PHP to constantly re-write XUL content, which in the end can be very counter-productive and performance-intensive for the front end)
4. Finally, I realized that with JSlib (http://jslib.mozdev.org), I could use
Performance? Performance is great. Remember, these are daemons, so I am not continually invoking the PHP interpeter to recompile and execute. And, since my front-end is a chrome:// app, it caches nicely after loading once.
It really was more fun than I thought it would be. All I can say is, give it a try.
Re:Rapid Application Development is RAD! (Score:2)
- "you over rotated.."
- "no shit."