Getting Our Share of the MindShare
I'd suggest the current state-of-the-art vector drawing tools embody an "international resource," a repertoire of ideas, icons, and functionality, to which millions of people are socialized. Most of those millions may be designers, graphic artists, draftspersons, decorators, and business users rather than programmersbut if more of their talents for graphic design can be brought into the software development cycle, the companies who bring them in are going to be the companies that win.
Expression is Microsoft's major development IDE for designing vector-based controls. Cider is Microsoft's toolset for vector-development integrated into Visual Studio 2005. These are first-generation tools in beta, but show great promise for development. And do check out the links to bigger and smaller companies innovating in this arena such as MobiForm, Xamlon, and Marc Clifton's myXAML.
But there's no reason to limit such capabilities to Microsoft. Why shouldn't you be able to translate a user interface design done in Illustrator into XAML, or cut and paste a Photoshop gradient into Expression? For Illustrator, Michael Swanson is already working on it. And Grant Hinkson of Infragistics has an exporter from Adobe FireWorks to XAML.
The key issue is for designers and developers to be able to see results quickly and tweak visual elements interactively without complex re-compiles. A friend within Microsoft believes Expression will improve their potential collaboration:
"The ability for designers to hack on working examples of controls is a godsend. Their core competency may not be coding, but anyone who's dabbled in Flash programming will be comfortable trying out ways to tweak control appearance and interactivity in the design environments. The end goal of course is for designers to deliver fully working, finished UI elements to dev to plug in or just code review. A dream perhaps, but many designers have the skills to pull it off with the right environment. Working out of the same environment also goes directly to overall project productivity, and introduces designers into the world of source control, build breaks, and dev workflow. It gets designers "in the game," not on the sidelines looking in."
It's a great dream to have a rapid-turnaround production/prototyping environment where good designers work effectively with programmers to make great controls, but I remind myself of the cautionary maxims of my friend Frank Hileman, who runs VG.net, a company developing vector graphic software for .NET developers:
"Developers generally don't know how to build beautiful user interfaces. Graphical designers generally don't know how to build useful user interfaces. True vector controls are much harder than most people think, requiring the skills of both groups."
New Lamps with Old Oil, or Old Lamps with New Oil?
Back to the glorious Frontiers of Redmond where Young Freedom Fighters are at the barricades designing Expression: Let's "zoom in" for a close look at the initial visual design tools offered in Expression...of course we zoom with tender merciful heart because we know we are in Beta Hospital, and the baby is still breathing with a respirator.
Take a look at the tool depicted in Figure 1, and then compare it with similar tools for gradients in programs such as Illustrator, Photoshop, Canvas, FreeHand, or your favorite, more obscure drawing and painting program.
|Figure 1. Expression's Appearance Palette: Expression introduces another new interface for setting colors and transparency.|
Check out the other design tools in Expression, and then evaluate whether you could persuade your designer friends to drop their familiar tools and start using these to prototype user interfaces or controls while you went to work programming interactivity, tweaking the algorithms and data structures, or connecting to a Web service.
I'm optimistic about the next generation of programmers and designers being less constrained by traditional roles, more ready to co-operate around new tools, and I thoroughly disagree with Alan Cooper's ideas about the "segregation" of programmers from user-interface designers while definitely agreeing with his general critique of the poor quality of design of many major computer applications used every day by millions of people.
But it's not going to be an easy transitionas current PR efforts would have you believe. It's going to take very hard work, and, in my opinion, will require the same factors that contributed to the success of Flash'lifestyle' marketing, evangelism, enabling a rich third-party scene of code-sharing and mutual education.
The underlying technologies are still in flux. Beyond beta problems, the very diversity of forms for common tasks, such as picking a color, across many OS's and across applications may make it harder to rationalize the cost of that diversity into a new software development paradigm.
I believe the first generation of these tools will be complex, buggy, spawn a new set of talking-heads and great-explainers, muddy the waters, and lead to some very cool and valuable innovations. And the succeeding generations of the tools, if designers and developers can work together, will be superb.
I imagine descriptions of user-interfaces in XAML flowing around the Web or networks as transparently as e-mailand I can imagine that because I remember back to 1985, when Sun and Adobe almost released a radical technology called "NeWS," where multiple streams of PostScript describing vectors, fonts, and extended to support hit-detection and event propagation would sail around networks, letting your computer display several windows being fed from different sources!
Yes, that was in the Ancient Days (before the coming of the IPOD). Now excuse me while I go and rock a while on the porch of the "Old Programmers' Home" and listen to my MP3's.