Let’s reinvent Image Editing and Design
Sit back for a minute and try to name an image editor that is user-friendly, simple yet powerful and productive. I’m having a hard time figuring out just one piece of software that matches this description. “What about Photshop?” you might ask. To be honest, Photoshop is a lightyear off of what I would call user-friendly and simple to use, and speaking of power and productivity: when I design something in Photoshop, e.g. website graphics and the like, I usually spend 10 to 20% of the time managing the different image files, keeping them in an editable state, pushing the files through the compressor and messing around with hundreds of backup layers and files.
Backup Layers? Why on earth…
…would someone need backup layers and files in Photoshop? The answer is simple: Errare humanum est — I make mistakes. Sometimes I need to intersect two selections very precisely, so I create two fill layers with each of them stored in the mask, and do my selection logic with them. So there goes the third layer which has the intersection of the two layers stored in it. Why not throwing the other layers away, why keeping backup layers? Well, usually I realize half an hour later that the mask I created is misplaced, has a bad shape, looks dull, etc.. And because Photoshop is one of the most destructive and unforgiving applications out there, there’s no way of efficiently going back half an hour to change something and then returning to the present with the changes applied immediately.
Destructibility and Unforgivingness — Vice or Virtue?
Why are there applications so user-friendly they let you undo every click you made, forgiving you about any mistake you could have possibly made, and other pieces of software that feel more like a big block of cheese you try to talk into helping you retouch your holiday snaphsots?
The answer to this question lies in the past. In the early days of computers, when Photoshop and Microsoft Office appeared for the first time, a computer running on 1 MB of system memory was considered the ultimate supercomputer. Unlike today, memory footprint and efficiency were the ultimate and exclusive concern of most software engineers back then. User-friendliness is a luxury that has popped up on the computer only a few years ago. Operating system suppliers like Apple and Microsoft have started to include more and more functionality into their systems which make the usage of applications across the platform more uniform to the user. Writing an application like TextEdit on today’s Mac OS is a matter of a few hours and perfectly illustrates the luxury and power built into today’s operating systems: Compared to TextEdit, the first Microsoft Word looks more like a toy and had by far less features, even if it did cost quite a bunch of money (which TextEdit doesn’t).
So, if you write a new program from scratch on Snow Leopard, you get all the nice features and gems of the operating system for free (spell checking, file handling, text input, undo management, networking, drag’n'drop, etc. … you could fill dozens of lines with features). If you want to load an image from disk, instead of writing all the image decompression and loading algorithms yourself, you just say “system, read that image!”. The system won’t even complain you didn’t say the magic word! There are parts in Photoshop and Office that probably date back way into the last century. Migrating a program which has millions over millions of lines of source code to new technologies is a pain and not realistic. So what do companies like Adobe and Microsoft do? They adopt some of the new features of the operating systems by writing them themselves. Have you never wondered why Photoshop and Office just don’t feel at home on Mac OS X and Windows XP, but more like a stranger having difficulties adopting to the local rules and culture?
I’m sure that Adobe and Microsoft are doing their very best to keep up with the growing demands and standards on modern computer platforms. Vice or virtue? Maybe it’s both. Sometimes you just have to choose the least painful way of doing something.
Are you trying to say it’s time to reinvent Photoshop?
Yes and no. There’s absolutely no point in trying to clone Photoshop because…
- it’s probably illegal due to patents and copyrights held by Adobe
- trying to run against Photoshop with your own PS-clone is just ridiculous.
So it is definitely not the time to duplicate Photoshop and add some user-friendliness-shickymicky to it to get it sell on the market. Photoshop is the best image editor out there in terms of functionality and power. So where’s the yes?
I think it’s time for a new approach on how we edit and design images. Some things have proven very powerful in the past, take layers for example: People got used to the idea behind layers and many other types of applications have adopted the scheme. This is something you have to keep and evolve in order to make for a good image editor. On the other hand, there’s the thing about destructive filters: In 2009 it shouldn’t be necessary to worry about the contents of a layer being messed up because a filter changes them irreversibly.
Indestructibility and Forgivingness — The Goal for a new Editor
These two words should be the ultimate goal for a new image editor.
Everything the user does should be undoable in an easy way. If the user feels safe in the editor, if he knows he can click anywhere in the app and try everything without having to worry about not being able to return to the original state, that’s when we suceeded creating an image editor for the new century. If the user can apply any filter to any of his layers without having to keep a backup of them, then we have succeeded.
“You’re really trying to reinvent the leading image editor with a robust undo system and an automatic backup-keeping so that filters can be undone from layers?” — Not at all. This was just a simple description of how things should work. The true power behind the filters is that they should be dynamically calculated. With today’s high performance graphics cards and CPUs, image filters can be calculated on-the-fly. The user can create a stack of 50 filters on his layer and see the result immediately. Don’t like the sepia tone of filter 29? Just change it, and filters 29 to 50 get recalculated – superfast.
This sounds nice but doesn’t reinvent the wheel of design and image editing. There’s more to it than just a few filters. We should radically change the way people input data like images, colors, pixels and the like into the application. Everything should be vector-based from the very beginning to the end. And with on-the-fly filters, you wouldn’t even have to rasterize your vector shape to blur it. All an application needs from the user is a clear indication of what he wants to do. So if he wants apply a blur to a vector, there’s no doubt the vector should be rasterized in the background and have the filter applied to it. It should not be about what the application can do, but what the user wants it to do.
If the user wants to create a reflection effect, he shouldn’t have to think about how to update the mirrored and faded reflection when the original changes. He should be able to create an instance layer which duplicates another, and apply a mirroring and fading filter to it. And since the filters are computed on-the-fly, he can change the original layer with the reflection updating in real time. This is how things should work.
And that’s just the beginning…
Those were only a few ideas and concepts one should try to follow and implement when creating the next big image editor. There are many, many more important things: how fast can you get your updated image exported again, how easy can you handle the user interface, how versatile are the tools the editor gives you at hand, etc..
Maybe creating such an application is a bit unrealistic, but maybe the time has come when finally someone should try to do it and establish new standards in image editing.
If you happen to have any ideas for such a new image editor, write a comment!
Thanks for reading the article.
Until my next revolutionary plan to world domination: Take care!
!