Wednesday, July 11, 2007

FileHelpers Goes International

Hi folks! My name is Matt Campbell, and I've joined Marcos as a co-developer on the FileHelpers project. (I'm also known by the internet nickname "xenolinguist," in case you see that name somewhere.) I'm a professional software developer, and I live near St. Louis, Missouri in the USA. So now the FileHelpers Dev Team is not just international, but intercontinental as well!

Actually, I've been contributing - and even committing - for a few months now, but I've busy with my job and my family (not to mention some work on FileHelpers!) so this is the first time I've had a chance to introduce myself...

OK, that's actually a pretty lame excuse... the truth of the matter is, I really don't like blogging very much and I've been avoiding it for as long as possible. Like I said to Marcos the other day: "what a pair we make!" Between Marcos' not-so-great English and my own reluctance to write, this blog might stay mostly blank. :)

Anyway, I've been busy most of this week working on a new branch of the code which contains a huge refactoring of the Engines. Most of the functionality of the different Engines has been consolidated into the Engine Base class, and a whole lot of duplicate code has been eliminated as a result.

There are a few good results at the heart of this; all of the Engines will have support for events, progress notification, iteration, and async operations; the API for the Engines is a lot more consistent; and most of all, it will now be a ton easier for us to add or maintain Engine-related features.

There's a bad result of this though: like I hinted at above, there have been some API-breaking changes. For one example, an entire Engine class is gone - the FileHelperAsyncEngine is no more, since all Engines from now on will inherently support both synchronous and asynchronous usage in one class. We don't want to release any API-breaking changes before version 3.0, and there's a (constantly-growing) list of other features we'd like to see in a 3.0 release, several of which will not be ready for a while - so these changes may not be released for a little while.

No comments: