I think Erwan has the slides and will be putting those up somewhere. Our talk was cut a bit short by our computers not working with the projector and the confusion and lack of resources that caused, but here are some of our notes:> So the title of this talk on the schedule is "Flocking the Mozilla Codebase" which doesn't really say anything about what we are going to talk about.> Some ways that it could be described would be to say we are trying to clean up some of the left over bits from lots of developers writing lots of code at different times, or maybe that we are trying to provide more tools for Mozilla developers, but to me at least, the real goal is to make development fun.> I'm a programmer, we are programmers, we like to code. We worked on the Mozilla project because we wanted to be able to hack our own browsers, to write extensions that our friends could use, to make something neat we are proud of.> But anybody here who has actually spent much time writing for Firefox knows that there are lots of things that just aren't very fun to do.> Things work, and they work well, but they require extra effort to actually get going.> Mozilla is a XUL, Javascript, XPCOM machine and that part where XPCOM meets Javascript gets exceedingly hairy and looks nothing like a normal use of javascript. We've all done the Components.classes['@mozilla/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).> The best practices for common tasks are very frequently extremely verbose meaning that somebody new coming to the project will very frequently not follow them.> The overall goal? Make this stuff fun again.> 1. A simpler API for developers that hides some of the verbose engine statements so that we have an API like we usually define in a high development language like Python or Ruby. We can return standard Javascript types, why do we keep returning references.> 2. To get Metadata, use an adapter interface to convert that data from one type to the type requested, much easier than using a giant switch statement based on flavours, just ask for the data type. Mozilla provides something like this, but it is rarely used as it requires a cumbersome XPCOM interface.> 3. The syntax for object oriented programming really sucks in javascript, Dojo really helps this by having syntactic sugar that makes this intuitive. Namespacing is in the same spirit, allowing functions and objects to exist mildy removed from the global context makes them much more understandable, findable, and maintanable. Using package systems to prevent some of the kludge that is loaded by default in most instantiations. The script should only load what it needs.> 4. Documentation, we intend on filling out and improving both the documentation for Firefox/Mozilla and for Flock (We're paying people to do this!). Just as everybody else who develops for the platform, we have found the documentation incomplete and spread through many different places (XULPlanet, DevMo, Mozillazine Forum... )
Technorati Tags: flock, fosdem, presentation