I have to say that developing under Linux, or using Linux to develop even Windows apps, has some great features sometimes. I’ve not seen anything that equals the flexibility and beauty of the following under Windows:
I use Subversion for revision control of my private projects, but exactly the same as this could be done if I used CVS, and probably other Unix type tools (and probably very difficult with version control apps designed with the Windows mentality). In my working dir I type svn diff to see what I’ve changed and get the results in diff format, which is nice enough. But type svn diff | kompare -o - instead, and I get this:
Now that’s just beautiful (if you are a developer — apologies for yet another very geeky blog item). With the Windows version control apps I’ve used, you’re limited to what is built in — the concept of standard output and standard input (which is used with the pipe ‘|’ operator above) is just misssing, so this is a lot harder to do. Note that Subversion (svn) was never designed to work nicely with Kompare (which is what is visible in the screen shot) — it’s the power of Unix design that allows you to string these commands together in lovely ways like this.
As I’ve read somewhere, point and click interfaces are never going to be as powerful as command based ones — the use of words and symbols allows far more to be expressed than simple gestures ever will.