Posted by Colin Clark on 2012-09-07
I was recently asked about the goals of the Fluid community and how Infusion relates to other frameworks out there. Here's my response:
Fluid was formed as a open source community back in 2007 to make a long-term impact on the usability and accessibility of the web. From the start, our goal has been to:
- Share new design methods that empower users to be co-creators, not just passive consumers of user interfaces
- Devise new development tools for building software that can adapt to individuals
- Foster an open source community that welcomes and includes "the rest of us;" the designers, testers, and non-geeks who otherwise wouldn't get involved in open source
From our experience building real applications over the years, it became clear that today's software development idioms don't support this vision of user interfaces that can be easily adapted, transformed, and reconfigured. The software industry's design patterns and "received wisdom" more often than not result in expensive, brittle, and hard-to-maintain user interfaces that don't match the needs, preferences, and creativity of users.
That's where Infusion fits in. We need new tools, new patterns, and new techniques for writing software. They need to be context-aware, configurable, and very loosely coupled. Infusion is the Fluid community's long-term effort to produce these next-generation tools. But here's the thing: we also know that these are big, ambitious, and challenging goals. Goals that take time, thought, and effort to achieve. Unlike most other frameworks out there, we're trying to:
- Address the stuff that doesn't get done, gets left to the end, or is relegated to inexperienced developers
- Change the economics of software development, where costs grow exponentially as a system gets larger and features increase
- Make software automatically and seamlessly adapt to the unique needs and preferences of each individual user without requiring developers to re-program the system each time.
You can't solve problems like that by appealing to what people already know. And the status quo doesn't cut it; the vast majority of software is inaccessible or chronically difficult to use today. So, unlike the other guys, we have to do things differently.
That means taking our time. That means prioritizing the hard, failure-prone work of devising new development idioms over marketing and flash. And it means working quietly on our vision, even if it's not going to make us famous. But it will make a better experience for users.
That's the mission of Fluid Infusion, and we're making progress on it every day. It's a practical mission, not just theoretical or experimental. Infusion is used in a growing collection of large production applications such as CollectionSpace, uPortal, OER Commons, and the Global Public Inclusive Infrastructure. In the hands of real users, we get the feedback we need to recognize what works and what doesn't, ensuring that Infusion continues to get faster and better over time.
We're deep in the midst of working on our next release, Infusion 1.5. It will feature huge improvements to the Inversion of Control (IoC) system, making it easier to develop context-aware user interfaces with a minimum of code. And it will also include a new Model Transformation system, helping developers to adapt to and interoperate with diverse data formats and schemas.