XAML : Developers :: Modern CG : Spielberg & Lucas
For anyone having trouble understanding this post's title, it's old analogy syntax: XAML is to Developers as Modern CG is to Steven Spielberg and George Lucas. Still not making sense? Let me provide some more explanation.
How great directors lost their way with CG
Few people would disagree that the great movie directors of yore- namely Steven Spielberg and George Lucas- have passed their great movie making prime. If we look at the movies these directors have produced in the last 5 years (or so), like AI, War of the Worlds, or the new Star Wars, they pale in greatness to early hits. Movies like Jaws, Close Encounters of the Third Kind, ET, Indiana Jones, Star Wars, and American Graffiti are universal classics that make recent flicks look like uninspired, freshman projects.
So what happened? Did these creative minds become less creative with success? Did they lose their ability to make a great movie? I would argue that modern CG happened. Technology opened these director's brains for the world to, enabling them to put every "creative" idea they could conceive on screen. And that, as it turns out, is not a good thing.
Think about it. The practically fully animated Star Wars prequels with their armies of robots and everybody's favorite Jar Jar Binks. The latest Indiana Jones movies and it's cliche aliens and UFOs- and Indiana Jones flying through the air in a CG refrigerator. Even War of the Worlds, for all of its production value, didn't come close to capturing the magic of Spielberg's more successful alien movies like ET and Close Encounters. In each case, these movies were loaded with CG, "enabling" the directors to tells stories and put things on screen they couldn't have done due to technical limits in the 70's, 80's, and even early 90's.
And in each case, these movies have failed to live up to the greatness of their directors. Without technical constraints, these great creative minds aren't making great movies. It seems that creative minds like Spielberg and Lucas produce better results when thy have technical limits. Their movies actually benefitted in the past from some built-in editing. Technical constraints forced them to be more creative, to keep things simple. The result: better stories and better movies.
What's this got to do with XAML and Developers?
Just as great film makers made better movies when they had to be creative within limiting technical boundaries, I see the emergence of new "freeing" technologies like Silverlight and WPF (both based on XAML) creating a new challenge for developers. Now that developers can easily integrate animation, media, 3D, and a whole array of "wiz-bang" features in their applications, I fear developers will make the same missteps as the movies. Previously impossible features can now be easily included in apps, and in many cases developers and designers will probably see this as a good thing. "Finally we can put our ideas in to our apps," they'll say.
But will this lead to better applications for users? I'd argue that in many cases it won't. As application developers, I think we've benefited from a little technical constraint to keep our application's in-check and to force us to be more creative, more resourceful. With flexible technologies like XAML, great developers will be those that can be good "editors" of their own applications.
Are you saying new technology is bad?
Of course, not! I'm all in favor of new technology and moving the quality of movies and software forward. It just needs to be done appropriately to enhance traditional experiences, not completely re-invent them. We don't need Indiana Jones flying through the air in a refrigerator, but putting him on a rocket powered sled (again CG) is great! It fits the story and the CG makes the experience more believable. So it goes with software. Do we need to replace our ASP.NET AJAX apps with Silverlight? No, but we can definitely enhance them with technologies like Silverlight to make the experience more enjoyable where appropriate.
I suppose this all boils down to the old-ish adage: Just because you can, doesn't mean you should. As you start developing with new platforms like WPF and Silverlight, don't fall prey to "unlimited freedom." Be good editors of your applications. Create constraints. Be creative. If you do, I think you'll avoid going the way Spielberg and Lucas and you'll continue to create great software hits on these new platforms!