When Microsoft released .NET 3.0 (which I still think should have been called WinFX), probably the most talked-about piece of that suite of libraries was Windows Presentation Foundation. One could argue that was only because it was the most demo-friendly of the set, but I think it’s because many people believed that, more than any other piece of .NET 3.0, it has the potential to change the way we build applications.
One thing that kind of worries me, though, is how necessary the designer (the person, not the tool) becomes in the application development process. For quite a while now, professional designers have been essential to producing a professional-looking website. Desktop applications, though, have remained firmly in the hands of developers. Oh, sure, we may have some UI standards or guidelines, but for the most part creating professional applications required minimal artistic talent. This has been a good thing for me, because I certainly don’t have a naturally good asthetic sense, and I have not taken the time to develop it.
One begins to wonder if non-designing developers even have a future. The profession we developers most often draw analogies to is the architect. Our profession has many things in common with architecture, so much so that the best of us are often called “architects.” However, architects have for a long time not only been responsible for the utility and structural integrity of the buildings they design, but the visual beauty as well. This goes beyond what we would term “elegance” of design, which may only be appreciated by fellow professionals once they have seen the inner workings. If an architect is to achieve his goal, his building must be appealing to non-architects.
The argument for a long time has been that the devs are techie geeks who don’t have the capcity for asthetics, and designers are black turtleneck-wearing artists who can’t be expected to grok the computer science necessary to build applications. However, college architectural programs have tough requirements for both “left-brained” and “right-brained” skills. It’s not seen as unreasonable to expect both sets of skills from one type of professional, what’s to keep employers from making the same requirements of a developer?
I think as time goes on, a software professional who possesses only technical skills may be looked at the same as an architect who only knows the mathematical principles behind architecture and can only produce ugly buildings. Maybe I need to enroll in an art class…