The Simplicity Shift
Being here on this site you maybe wonder what this `simplicity shift' is about? We are all bound to using a computer in our daily lives and yet a lot of the people find it rather complex and not really a rewarding experience. While this technology has evolved in incredible ways and plummeted into the sky, we really need to bring it back to the ground. We want to bring intuitive and easy use to all aspects of our computer interaction.
The Simplicity Shift is the title of a Scott Jenson book published in 2002 about innovative product design tactics or what you should do to keep you product back where your users are (granted you don't want to shoot your users into the sky). But there is more to it, as these principles can be helpful in other creative processes.
One aspect of simplicity is the user interaction with an application, While graphical user interfaces have dominated over the last 20 years there is definitely a need for the natural interfaces to take over. The most evolved one now is multi-touch that allows you to directly interact with the objects you see on screen. Sadly there are only handful of affordable devices that sport this technology. At least we are getting there!
But simplicity can be achieved in the programmer interaction with the application being build as well. It is the functional programming, a paradigm from the early days of the computing era, that shines again as a powerful way of bringing simplicity in your complex application. It is so powerful that it brought lambdas and LINQ into Microsoft C# and it even drove Microsoft to do their own functional language - F#.
And there is more. If you've ever written an application that interacts with the world it would most probably start a query on a database and wait for the results or try to read a file and wait for the bytes to be returned from the operating system. But you know better that the world doesn't give you something when you need it, it only does it when it decides to do so. So how can it be simple you wonder. Well instead of interacting with the world you can just react to what and when it gives you back, Yes I am talking about the reactive programming paradigm and you can start simplifying your programming with the Reactive Extensions library now.
These are some of the simplicity shifts I've found but at all means let me know about your favourite ones.