How fuzzy matching is transforming interfaces

How fuzzy matching is transforming interfaces

Summary: A number of innovative interface features are gradually improving our collective user experience of software.


Google, Sublime Text and Ubuntu all have something in common: fuzzy matching.

It is the grooviest thing. For example, I simply type in "fuzzy m", and magically the first search result is Fuzzy matching - Wikipedia, the free encyclopedia. Likewise, with the Sublime Text editor, I type Shift + Cmd + P and up pops the Command Palette, with the next command only a keystroke or two away. And ditto Ubuntu's Unity desktop, with the Intent Driven Interface aka Heads-Up Display — now with added advertising.

What fuzzy matching does is make it easier to search than to type or move a mouse. Now when I'm working on a web project, I rarely use the Sidebar for locating and opening files in Sublime Text. Instead I use Cmd + P to bring up Goto Anything, which is far faster.

Sublime Text's Goto Anything feature in action.

Anything that reduces clutter and speeds up the interface is welcome, and for touchscreen-savvy websites, another example — this link needs a touchscreen — is off-canvas panes. All these incremental changes are slowly improving our collective interface experience.

Topic: Software Development

Jake Rayson

About Jake Rayson

A web designer since the 20th century, I am a pragmatic advocate of Free Software and I use proprietary software when appropriate. I made the full-time switch to Linux back in 2007, and my desktop tools of choice are Linux Mint, Inkscape, GIMP and Sublime Text.

As a Front End Developer, my core skills are HTML5, CSS3 and jQuery, and my working life reflects my commitment to open standards and accessible websites (ie accessible by everyone, regardless of browser, platform, ability or technology).

For web publishing platforms, I use WordPress for ease of use and Drupal for more complex solutions.

I am also learning about Ruby, Rails, Sinatra and CoffeeScript. I like the minimalist Ruby Way. To this end, my personal portfolio website is built with NestaCMS.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • Yes, definitely improving UI

    You can also use this on places like Google's search bar to learn what is trending or being talked about (or searched about) even though no news has broken about a particular subject yet. Take an aquisition by a publicly traded company, for instance. They try like heck to keep all insider information from leaking out, but if you hear a rumor or just have a hunch and then type that ticker symbol into Google's search bar with "buys" after it, you might learn something just by the suggestions. Some consider this an information leak, while some sue Google for it because their name is being defamed by it. Interesting nonetheless, and definitely helpful in terms of good UI.
    • Useful hint

      Thanks @aneveu, useful tip for my next megacorp acquisition ;) Like you say, handy to be able to pick up trends in a matter of keystrokes.
      Jake Rayson
  • Not that fuzzy...

    What you describe in your article is more "completion" than "fuzzy matching". It's been in web-browsers for a decade, already.

    When I hear "fuzzy matching", I think of systems which find similarly spelled (like when Google changes "aviaton pieonears" into "aviation pioneers"). Now, according to Wikipedia, your examples are also correct, as Wikipedia only really says that it finds matches which are "less than 100% perfect". Granted, finding matches for "Mozambique" when you've only typed in "Mozambi"... your search term isn't perfect, but only because you haven't finished typing it yet. It's *much* easier to search a database for terms which *begin* the exact same way (or which contain that exact substring somewhere within their text) than it is to find the spelling that the user *intended* based upon prior searches. That's a *lot* harder. To me, *that* is what "fuzzy matching" is.
    • This is real fuzzy matching, auto completion is nothing special

      It should understand synonyms and misspellings. Else-wise it's not much better than an ordinary CLI.
  • It's completion

    I implemented completion on a data base I built in the 80's on the Apple ][, this was at the time the Lisa was being announced.

    Let's keep some perspective here on where these things go back to.
  • Not quite completion

    Thanks all for the feedback, much appreciated :)

    Google search does appear to be 'just' completion, starting from the beginning, whereas Sublime Text picks up ad hoc elements from throughout the file/command name, which kind of covers misspellings.

    Not sure about Ubuntu as I currently don't have a machine running it.
    Jake Rayson