The Sharp Design Philosophy Behind Paint.NET - ' UI Choices ' (
Page 2 of 2 )
Simple User Interface
Paint.NET's user interface was designed to be absolutely simple. For example, the program does not have "Settings" or "Preferences" dialog boxes. Brewster decided against adding such features because he firmly felt that the target audience for Paint.NET — amateur computer users — should not have to worry about such things.
This keep-it-simple design philosophy was a challenge to adhere to. Brewster was originally reluctant even to allow some effect configuration dialog boxes (such as the motion blur effect filter) to display angles with digits past the decimal place.
"There are always people asking us to add features that would really complicate things. This includes almost everybody that's worked on the project, too," Brewster says. "Every time we talk about a new feature, we have to ask, 'Do we really need that? Does it have to be configurable, or does it even need to exist in the first place?'"
As Version 1.0 was in the midst of development, the user interface was tested by random students at the Washington State University campus who were asked to play around with Paint.NET running on a Tablet PC. The developers took notes on how their fellow students used the program, what troubles they encountered, and the questions they had.
"[When] we made the color chooser more accessible and simpler, you would not believe people's reaction to it! This one girl noticed it right away and went straight for it, like she'd been starved for color her whole life," Brewster recalls. "When we added transparency [effects] to the toolforms, I was honestly surprised at how cool people thought it was, even though it was really added just so they wouldn't get in the way of the canvas so much."
Photo Editing Without The Bloat
Though the developers remain cautious when it comes to expanding the feature-set of Paint.NET, they did specifically design its framework to allow for others to easily create new effect filters. The code automatically handles previews, progressive rendering, undo/redo, multi-threaded execution, and clipping to irregular selection regions. So, essentially, all a filter developer has to concentrate on is the math that's needed to write an effect.
Aside from optimizing the code, internationalizing Paint.NET is one of the biggest priorities for future versions. Incorporating this feature will be difficult, as the developers did not design the code with languages other than English in mind. A member of the Paint.NET forum did manage to translate the source code to German. But, based on his work, the Paint.NET developers conclude that doing this for every language would be inefficient, since each language version would need its own executable.
"We never really thought someone in Germany, or Italy, or Poland — among many places! — would download Paint.NET, let alone use it on a regular basis. A lot of people really want it in their preferred language," Taylor says.
There are some other, little things that the Paint.NET team would like to add, but the eventual goal isn't to make their paint program rival the likes of PhotoShop. It never was. Says Taylor: "The GIMP [and] Photoshop do tons of really cool stuff, but they are not exactly user-friendly. Both editors are made for experts. Paint.NET is something my mom can use. We really wanted to stay away from feature bloat."
"The fact is, most people do not need the complexity of Photoshop or GIMP," Brewster concurs. "They want to open pictures and resize or sharpen them, or remove red eye. We let them do that for free. I would like to make a splash at the amateur level. I'd love to see people use Paint.NET instead of pirating PhotoShop."
Howard Wen has written for the O'Reilly Network, InternetWeek, Salon.com, Playboy.com, and Wired. Visit howardwen.com to see more of his published work.
Learn more programming techniques in DevSource's Techniques Section.