Categories
Management & Leadership

No Modes

Larry Tesler died this week. He was one of my idols at Apple Computer in the 1990s. A brilliant thought leader and champion of the idea that modes are a bad user experience.

A mode is a context for getting work (or play) done. In the early days of computers, before graphical user interfaces, applications were broken into “operational modes” such as edit, navigate, and WYSIWYG. Key commands would perform different actions in different modes. To be a great computer user, you had to memorize all the modes and all the corresponding key sequences. Modality made software easier to write but made computers harder to learn and use.

Larry Tesler was a visionary who focused on making the software do the hard work and not the user. The Apple Lisa, Macintosh, and Newton were great examples of modeless computing—as was Microsoft Windows.

Some folks, developers like me, will tell you that modal software is better. Once you get over the hurtle of memorizing the modes and commands, your fingers never have to leave the keyboard. And with modal software, as they will enthusiastically explain, you can easily perform power user operations like repeating commands and global pattern matching. I think this is true for software developers and maybe true as well for lawyers or novelists. Modal tools like Emacs and Vim make big file tasks fast and simple.

The alternative to modal software for large document management is something like MS Word. Many users think MS Word is bloated and slow. Given all that MS Word does modelessly it’s is a speedy racer! Most of us don’t need the power of MS Word (or Emacs or Vim) everyday.

You can thank Larry Tesler for championing the idea that modes are not required for most users most of the time. Thus you can grab your phone and just start typing out a message and get a call without saving your message. After the call is complete you can go back to your typing. If you want you can multitask typing and talking at the same time (hopefully you are not driving).

Behind the scenes your phone is doing an intricate dance to enable this apparent modelessness. The message app is suspended and the message is saved just encase the app crashes. The call app comes to the front and takes over the screen. During the call you can return to the message app while the call is running in the background. Other apps suspend to make room for the message app and call app to operate at the same time. Before Larry Tesler it was not uncommon for the user to have to do all this coordination manually.

To enable modeless software, applications have to share resources and the operating system has to help apps know when and what to do. In the old days this was called “event driven multitasking”. Now it’s just called software development.

How did Larry accomplish all this? Well, he wasn’t alone. But he worked hard, advocating for the user at Apple even when the cost of modeless software drove up costs. He even had a few minutes to spend with a junior employee like me. He wanted to make sure I understood the value of a great user experience. And it worked! I supported OpenDoc, the ultimate modeless user experience, and I made sure we had a version of ClarisWorks based on it. But alas the Macintosh (or PC) computers of the mid 1990s just could not handle the complexity of OpenDoc and it never shipped.

Still, to this day, I am grateful to Larry and the whole Apple Computer experience. It is the ground upon which I stand.

Categories
Programming

Getting Back Into Flash!

It’s been a couple of years now since I wrote a Flash game. They’re fun and easy to write and don’t take much time. For me the fun is in the design and programming. The result of the process might be a playable game–but I make no promises.

I’ve taken down all my old work, since it was out of date and I barely functioned anymore. That’s the problem with programming: The platforms keep changing. The Flash CS 4 of today is a whole new ballgame and I need to get up to speed quickly so turned to my favorite Flash platform how-to author: Colin Moock. I think I have every book he has written on ActionScript that is published by O’Reilly. Since beginning of the 21st century Mr. Moock has exhibited genius when writing about Flash programming.

Moock’s current Flash programming book is Essential ActionScript 3.0 from 2007 which is old by Internet standards. But I’m a couple of years behind the times and EAS3 got me up to date quickly: Subclass Sprite and Shape not MovieClip, how to use events, how to animate, how load resources, how to redraw the stage intelligently. Nice stuff that is scattered all over Adobe’s support site. Apparently there is more Internet info on Flash and its buddies ActionScript, Flex, MXML, and Air then on the Mac OS X APIs!

One technology I want to use in my game is Moock’s Union Platform. It looks like a quick and elegant way to incorporate multiple users into my game. We talk a lot about the power of social networking and data mining but under all that talk is the power of multi-user applications. I remember years ago when I worked at Apple asking Kurt Piersol what comes next after OpenDoc (the hot technology of 1997) and he said MUDs: Multi-User Dungeons. And I said Huh? Isn’t that a buch of guys fooling around in a fantasy world online? Yep, he replied and smiled mysteriously.

12 years later I get it. Any with Moock’s help I’ll put MUD goodness into my little Flash project 🙂