1.6. Coming Soon to a TurboGears Near You
Open-source software development is different from that of the commercial software world. When you're paying people to develop software for you, you can hold them accountable to get what you need done in a reasonable time frame. With open-source software, you have no such assurances. You can't require anyone to do what you think needs to be done, and you certainly can't hold someone to a time frame.
Open-source software gets built up either because people need something for projects they're doing for their work or because they find it fun or interesting to create some cool bit of software.
When you lead an open-source project, you can't count on things getting done unless you know that someone is working on it for a specific project with a deadline. To balance this out on the plus side, however, you'll get all kinds of unexpected contributions from all over. Features you never would've imagined yourself suddenly show up in your inbox.
With those things in mind, here are some clues about things planned for TurboGears.
As mentioned earlier in this chapter, integration of the SQLAlchemy object-relational mapper (ORM) is an important part of our plans for the future! Right now, SQLAlchemy requires a bit more code than SQLObject for many types of applications. But, it also makes it possible to create a whole new set of applications that otherwise would have been prohibitively difficult with SQLObject. When some higher-level application programming interfaces (APIs) are created for SQLAlchemy, it will easily be among the best ORMs for any language.
The big theme for the first major release after 1.0 is "application reuse." We want to make it possible to easily install a blog or a wiki, customize it for your site, and integrate it in no time. This feature would equally apply to your own applications. You'll be able to easily install and extend the same basic product for each customer that comes along.
We also plan to extend the authentication/authorization system to handle many more requirements "out of the box." Right now, it offers a super-simple API that meets a great many needs, but doesn't provide a smooth or obvious upgrade path if your needs go beyond what's included. We want to provide that path.