Gallery 3 Begins
Those of you that have been paying attention know that something is going on! At the Gallery Sprint a few weeks ago, we made a lot of decisions and got the ball rolling on a complete rewrite which we've decided to call Gallery 3. Development of new features on Gallery 2 has been frozen, Gallery 1 is now a completely separate project "Jallery", and the Gallery team is now busy at work on Gallery 3. It's definitely not ready to run on your website yet but we've set the ambitious goal of having a 3.0 release by February 1, 2009 and are on track to meet that goal. Read on for details of why we're doing this and what you can expect.
Gallery 2 today
As lots of you know, Gallery 2 does a pretty good job. It's a secure way to put your photos on your website, and if you want a feature, chances are pretty good that it is hiding in there somewhere. Over 3 million of you have downloaded Gallery 2 (compared to 2 million+ that downloaded Gallery 1) so we are obviously on to something, and we have received hundreds of positive testimonials about how Gallery 2 has made people's lives easier. It's been a huge effort and we've been happy with its success.
So what's wrong with Gallery 2?
Gallery 2 does many things for many people and this diversity has made it unhealthy. The code base is too complex and over-engineered because it was designed to fix every single thing that was wrong with Gallery 1 (Second System Effect) leaving its scope hazy and broad. And while the Gallery 2 code supports DB2, MSSQL, and Oracle we don't actually have anyone on the team that knows much about them, so there is nobody to fix bugs or add features in these areas. Gallery 2 was designed from the bottom up with architecture and design patterns first, so the User Interface and User Experience need a ton of work! This is shown by the huge number of strings and documentation that need to be provided in the product for people to understand it, and multiple attempts for tech writers to document Gallery 2 have all failed. Lastly, the product is immensely complex which forces developers to take months or years to get up to speed. This makes it very hard to attract new developers, and that makes us sad.
Hopefully by now you don't need any more convincing that it's time for Gallery 3! We've started from the top down with User Experience as the highest priority, only writing code for things that make sense for our users. Simplicity is also a high priority: both for users (the UI) and developers (the code). We learned our lessons from Gallery 1 and Gallery 2, and are hoping to finally get this right. You probably have some questions in your head and we'll do our best to answer some of them below:
Is there still room for Gallery 3 when there are sites like Flickr, Smugmug, and Picasa?
Since the beginning, Gallery has been "Your Photos on Your Website." None of these services really let you do that, and your data is with someone else. While these services meet the needs of plenty of people, there will always be people that want to have complete control over their website and the way it looks. Some people will want to customize their themes in a way not possible with hosted services, and others want their images on hardware that they own.
Since Gallery 3 won't do all that Gallery 2 tried, what is its scope?
We've made a list of features that we think are important to have. That page includes a list of features that we will implement, as well as a list of features that we'd like someone to be able to implement but that won't necessarily be part of the core product.
You mention decreasing platform complexity, so what platforms are going to be supported?
We aim to create an amazing product that at least 80% of you can use. We've decided that the most common platform, available to all (even if it's not what you're using now, it's something that you could be using easily) is Apache 2, PHP 5, and MySQL 5. This doesn't mean that Gallery 3 won't ever work on alternative platforms, but it does mean that the existing developers aren't going to go out of our way to make it work there, at least not for the first release. If Gallery 3 works on Windows + IIS + PHP perfectly without us trying, that's great, but this policy lets us take advantage of unique features of Apache and MySQL that are not available on other platforms. If you'd really like to see Gallery 3 work on some other platform we invite you to come talk to us. Seriously! Corporate support is welcome as well: for example, if Microsoft would like to own our Windows Server support and is willing to do most of the work and QA on that part, we're definitely willing to cooperate on that.
Where can I find out more?
We don't have a great starting place yet, but the best place to start is the Gallery 3 Category on our documentation site. Everything that gets documented should be in there. There is also the Gallery 3 code in subversion and our shared task list in Chandler. If you want to find out more or pitch in, we have a few paragraphs on that as well.