Don't understand german? Read or subscribe to my english-only feed.

Innovative Software?

During a discussion with friends the following question came into my mind: which software, which feature or which concept within software is innovative for you? Innovative meaning that it caused something like a “Wow!” effect. Something you really liked when exploring it. No matter which operating system, software, license (OSS, proprietary),… – everything allowed.

Just to provide an example: for me the Opera Scroll Marker (“The new Opera Scroll Marker makes it easier to continue reading when you scroll through a Web page. At the end of the page it will indicate the previous position of the bottom of the screen so you can easily see where to continue reading.”) and the version control system Git are innovative features/software.

So, what’s innovative for you? Feel free to either comment in my blog or send me a mail. I’ll collect all contributions and will provide them online.

10 Responses to “Innovative Software?”

  1. Thomas Q. Says:

    Some of this was already mentioned, but for me it is:

    Opera – this browser has had more innovative features than any other. Tab- and Sessionmanagement, Mouse gestures and the quick dial is what I like about it. But there are also features that I never used: Mail, Widgets, and rarely Feeds.

    Dropbox – sadly there is no usable cross-platform synchronisation tool. Unison is good, but it’s complicated and it’s buggy on Mac. I found about dropbox a few days ago, and it’s really cool, but it definitly needs some features before you can use it for all you data: (i) self-hosted version (ii) sharing something outside your dropbox-folder (iii) encryption (iv) an “exclude” feature.

    screen -x – okay screen is really cool itself, but seeing multiple users working on the same terminal concurrently was a real “Wow” experience. btw: screen also could be improved – it’s not easy to manage ssh sessions to dozens of servers with one screen. you just have no overview :)

  2. Thomas Q. Says:

    oh, forgot something:

    Ruby and Ruby on Rails – the programming language Ruby fascinated me since I first saw it. It’s just easy and powerful. But the Wow was even bigger after writing three lines of Ruby code and instantly having a full-featured web application up and running with Ruby on Rails.

  3. Michael Renner Says:

    Google Chrome.

    I’ve gotten quite used to have my Browser open all times, and it can be quite tedious to reopen (and log in) to all sites I use daily.

    Chrome brought back the stability and speed I knew from my browsers due to it’s process-model (rather than threads or single process). Flash being cocky? Just kill the Flash-Plugin-Process. Javascript explosion in one tab? Kill it! One of the tabs hogging the CPU and preventing the fan from spinning down? See which one is the culprit, and again, kill it!

    Another killer-feature is the ability to do a full-text-search on all visited pages, this makes the browser history useful again. (No need to remember favicons, URLs or domains, just remember one specific word from the article and you’re done).

  4. Thomas Schlager Says:

    the good:
    (1) RoR: easy implementable and maintainable DRY, instant object-relational-model, instant model-view-commander, instant conventions, instant input checking, instant…
    (2) OmniFocus: location aware contexts – yes, turn your brain off.
    (3) TextMate: self-explaining GUI in TextMate.
    (4) OmniGraffle: automatic and assisted alignment of objects. Suck this grid users!
    (5) OmniFocus: workspaces IN THE BROWSER, it just rocks! Hide porn and show work in just one keypress!
    (6) TextExpander: saves my life, removes “:w” or “:wq” from all of my documents.
    (7) Pages: document tracking and collaboration features.
    (8) Bonjour: hello share, bye-bye share. Any questions?
    (9) Coda: hell of a thing. I don’t use it, but hell of a thing, besides the neat website.

    there is no list of good without a list of evil:
    (1) Your not familiar with the ruby stuff? Maybe you set this up in an hour, maybe you take your time.
    (2) Ugh? Location-aware contexts… … that’s it? No more ideas?
    (3) This thing has got SOME bugs out there…
    (4) Don’t know – old school, dumb tool windows suck the hell out of me.
    (5) Maybe you developers can do it right next time. Background-loading heeeeelllloooo? Are you kidding?
    (6) Right, one more piece that keeps you from a new desktop of choice.
    (7) This is an alpha version, is it? Apple?
    (8) It’s here in my home network. Never seen it somewhere else.
    (9) Oh yes, sure. You better buy a quad-core xeon machine if you’d like to work fast in this piece of shit! (exaggeration)

    Cheers – I saw that coming: a bunch of OS X software on my list.

  5. murphee Says:

    Mylyn – integrates tasks and everything you do in Eclipse. Ie. you define a task like “Fix bug 123”, activate the task and Mylyn tracks what files you touch and remembers that. If you now need to switch to another task (eg. if you’re interrupted or can’t finish the previous task) the recorded information is stored and is restored on re-activation of the task. Another way of describing it: it’s like task switching in an OS, where the state of one process is automatically stored when another’s activated.
    On top of that, the task list is integrated with bug trackers (JIRA, Bugzilla, Trac,…) so you pull in your task automatically. Tasks also offer scheduling (you can say when a task needs to be finished and if you’re late on a task, it’ll get highlighted), the work time on a task can be automatically tracked,…

    The only problem with the thing: it’s a bitch to explain. It’s really necessary to see it in action, but I can say that it has replaced my development related todo lists… and not just that: it has integrated the todos with my workspace and bug tracker.

    Other examples:
    – Squeak and all its friends, such as OpenCroquet. No matter what you encounter in SoftwareDevelopment, you’ll always find out that someone has done it before using Smalltalk, better, with less code, and 20 years ago.
    + Honorable mention: Seaside: Smalltalk based web framework
    – PEGs and Packrat parsing:
    Not the most efficient (yet, although there’s more research ahead), and basically a 30+ year old algorithm based on recursive descent + backtracking… but boy, it allows you to write Parsers that consist of nothing more than the grammar + a handful lines of combinators (no yacc or ANTLR needed).
    – Erlang: it’s basic principles were a revelation… somewhat embarrassingly since they’re so obvious and have been the basics of Unix programming for decades (ie. shared nothing architecture, explicit communication via channels or pipes,…).

  6. murphee Says:

    PS: if you want interesting software ideas, the publication page of Alan Kay’s VPRI is a good start:


    Video of Alan Kay talking about these topics:

  7. Lukas Prokop Says:

    Opera’s Speed Dial is really great stuff ;-)
    And the best known Firefox-Addon, which is necessary for all webdevelopers: Firebug

    There was really a wow effect, when I used it the first time :-)

  8. Karl Says:

    Someone said Firefox Extensions? ;-)

    Stylish (overload CSS), (great bookmarking extension), and most of all mozex (edit content with $EDITOR) caused a WOW-effect to me:

  9. mishoo Says:

    Emacs deserves a place in this discussion. Back in the 70’es, Emacs brought out features that we now take for granted — “real-time display editor”? What’s that? People who have used “ed” could explain.. ;-)

    I’m using Emacs for 10 years and it never ceases to amaze me… It’s not about the “Wow” factor — it simply changed my life, made me more efficient and more careful to how my code looks. “My program writes itself”. ;-)

  10. Thomas Says:

    vim makes me think “WOW” almost every time I see a new (or old and so far unknown to me) feature. And there are quite a lot of them…

    Well, the same for zsh.

    Both make my rc-files grow for some of the “WOW” effects:

    ~> wc -l .zshrc .vimrc
    687 .zshrc
    909 .vimrc
    1596 total

    a few highlights:

    set list listchars=tab:,trail:,extends:#,precedes:#
    set hlsearch incsearch
    iab cih ich ” and a few others…
    ” then of course:
    ” syntax highlightning using my own colorscheme (:syn on) (:colorscheme koehler)
    ” folding in several ways (:he folding)
    ” insert mode completion (:he ins-completion)
    ” this list is far from complete

    bindkey -v # ;-)
    setopt extendedglob # now **/ just rocks
    the completion system just rocks (scp user@host:/path or /u/lo/b => /usr/local/bin)
    zstyle ‘:completion:*’ list-colors ${(s.:.)LS_COLORS}
    a few more goodies:
    klammer.zsh for highlightning brackets
    uhr.zsh, a watch for the prompt
    screenshot of watch, see also INSERT from vi-showmode