Skip navigation.

Software Development

Correcting The Future

Opera 9.5 - Usability and Performance

I haven't talked much about usability on this blog. Mostly because there are tons of other sites that discuss it. But I really have to plug Opera 9.5 right now. It looks the same. Or at least, I made it look the same again (skins, rss feeds, plugins and such). But it feels like I have a new computer. You often hear that machines get faster over time, so that'll take care of any performance issues. The thing is that this simply isn't true unless you're doing intensive computations. Perhaps with video encoding, factoring numbers (that's cracking encryptions FYI) or compiling large projects. What really happens in many cases is that badly written software can make your processor irrelevant.

Now, Opera 9.5 does have a couple of minor bugs. The Tools/Preferences/Programs section where some extra double quotes appear in the settings every time you edit or view it. Oh, in the Downloads preferences (same screen), if you select the "Send web address directly to application" and then click on that mime type in a web page, Opera will crash. I only tried it with one app, but regardless, it shouldn't crash. I think these things will be fixed soon because it's only an Alpha release.

My other pet peeve with Opera is that news feeds essentially lock up the browser while fetching them. That was with 9.15. I only saw the initial delay with Opera 9.5 when I imported my feeds. It wasn't as bad. In fact, it was much faster, but still noticeable.

The thing I like about Opera 9.5 is that it's so damn fast. When I type, there aren't any delays anymore. As I'm typing this in the online blog editor (bad idea, I know), the browser is completely responsive. Sometimes I could type much faster than what was displayed no matter the browser. And the loading of pages is extremely fast and dynamic. It updates and flows on screen. In the past, you'd get things that would move over and things would shift around. Firefox and IE do this all the time. Opera seems to now do something different. It figures out the final resting place of the html elements before displaying them. As it figures this out, it displays them in their final resting place barring any scripts. So your page doesn't change shape and size as you're trying to read it. Sometimes, there are a few things that shift. Mostly pictures that don't specify the size. And you'd think all this would be slower because it has to wait and see where everything goes, but it's actually extremely fast. Personally, everything about how Opera 9.5 renders pages rocks.

There are other features for sure and I'll mention some of them briefly, but the responsiveness makes it feel like I have a brand new machine. Of course, fast connections, larger and faster drives and RAM all help. Maybe these are good enough without Opera if you have a machine with these components. Even so, you should notice a difference with Opera 9.5. But if we're talking about software design, there's something to be said about efficiency.

The web was supposed to be made for everyone. Where even old machines and handheld devices could browse around. But some sites are so cumbersome that running the JavaScript or flash makes that impossible without turning them off. It's not that these machines can't run JavaScript or flash. It's that they can't run JavaScript or flash that wastes their processor time for no good reason.

The renderer in Opera 9.5 isn't just fast. It's lightning fast. Moving things on screen, scrolling, refresh, everything just flows extremely fast. The reason I'm impressed is not only because most software don't even try. It's because *I* have tried with the Project V gui and know how hard it is. What's even more impressive is that a Windows service (from hell) had just started up and this always slows everything down on this machine. I didn't even notice it was running until I switched apps.

If you have a new machine, I don't know how much Opera will help you. But I have older machines here for testing and having an efficient and recent browser that those machines can use really makes things easier. I still don't know if Opera will slow down over time or if the news reader still slows down the browser, but this is really fun to use right now. And I've read reports that Opera is now several seconds faster for loading many popular sites online no matter what kind of machine you have.

A couple other features are zooming, expanded search for the address bar and history (you gotta see it to believe it), system tray tools and a kick ass speed dial tool when you click on "new tab", you get a grid previews (as large thumbnails) of your favourite web sites that you set. There's also this something called CSS3 that is fully supported because they apparently have the designer of it on staff. Ah yeah, if you accidentally close a tab or window, you can "revive" it with the trash tool. All cool stuff.

In computing in general, I'm not sure why responsiveness isn't really considered important anymore. So seeing this much effort put into a product is really refreshing. In most other software, I think that it's perhaps too easy to write blocking calls. Maybe you put these in separate threads. Either way, it's still bad. Threads must then share resources and there's blocking there too. I just wonder how people like those at Intel think that programmers will be able to take advantage of multi core processors when they can't even take advantage of one processor. This isn't an insult to programmers. It's just a fact that writing software that never blocks is hard. Just think. Does the project you are working have a list of all the blocking calls you are using with a description of how you are making sure it doesn't affect the responsiveness of the overall software? I've never heard of that either. But I did it with my backgammon project and I'm doing it with Project V. Guess what? I usually only need one thread. I still get lead developers in different companies telling me that what I'm doing is impossible (getting faster and more efficient software than using threads). Basically, they don't believe me that nothing in my software can block if I'm using a single thread.

I guess it falls into the mentality of programmers that threads are supposed to be the way to get around blocking calls. But this has been shown false time and again. Anyone ever try to do socket handling with one thread per socket? It's funny seeing threads used in such a cavalier fashion. Yet you look at security and system discussions and it's only a matter of time before the topic of delays incurred by task switching comes up. One thread means no task switching. And that's the reality. There's no reason for task switching. At all. A single process (other than interrupts) is good enough for the entire processing core. Well, it should be. History made this impossible though.

Hopefully, the future will make single threads popular again. This will make responsiveness and efficiency much better and natural. It should also get you concurrency and the elimination of blocking for free. Who knew that the solution to blocking calls and responsiveness was single threading? Lately, this is what really frustrates me when I include legacy or native calls into Project V. There's no documentation on what happens to the execution. Does it block or no? Is there a delay? How much? Is there an asynchronous version of the call? These things are just as important as the list of arguments to the function. This is especially true if you're trying to do anything that is responsive. We don't even have to go into concurrency for this one.

May future discussions bring a better understanding of efficiency. That it's not just something you can leave up to newer machines. And tip of the hat to the Opera 9.5 crew.

Update: There's only a very minor and momentary delay when reading news feeds. I doubt most people would notice it (well under a second). So I'm a happy camper.

Future ComputersProject V: Test Application For Concurrency

How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

Type the two words displayed in the image below:


Smilies

July 2009
S M T W T F S
June 2009August 2009
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31