Fog Creek Software
Discussion Board

Opera casts off legacy code for speed

Like any other 're-developed from scratch' application, I'm prepared to be disappointed.

Tuesday, August 20, 2002

I am actually watching this development because I just have a hunch they might be able to pull it off.  I guess it all depends on the pathm, process and how exactly they re-wrote it.  Imho of course.

- Raist3d

Wednesday, August 21, 2002

The article says that Opera's old codebase wasn't that bad.  So I'm assuming they're just refactoring or something reasonable with their old foundation.

Greg Neumann
Wednesday, August 21, 2002

. The rendering engine--the heart of the browser, which interprets code pulled down from Web servers--has been rewritten from the ground up over the past 18 months.

Just the rendering engine, it would seem.

That makes sense.  If they've arrange the architecture right, then they'll be able to replace the performance critical parts like this without too much trouble.

And the mail and new client as well. 

Looks like there doing the right thing to me.

Ged Byrne
Wednesday, August 21, 2002

We all know what Joel says about throwing away old code, but there is a difference between throwing away a whole application and rewriting one component of the application.

I'm a big fan of Opera, and while there's a lot of it that still great, it's been getting harder to defend its lack of DOM complience for some time now.

Lets hope that Version 7 brings them up to at least the same level of standards complience as IE and Mozilla. But lets not rush them, as it's better to wait for less buggy software!


James Shields
Wednesday, August 21, 2002

Also, note that they continued working on the old codebase, and even released new versions of it in the meantime, so, if their Presto project fails, they still would have been able to sell something.

Leonardo Herrera
Wednesday, August 21, 2002

How much of a selling-point is speed, anyway?  As long as the page renders reasonably fast, I don't really care about speed.  I care much more about other browser features, like the ability to easily block annoying pop-up windows.

J. D. Trollinger
Wednesday, August 21, 2002

Rewriting has its places.  It's risky when your position at the top has competitors (Netscape) and much less so when you dont (Microsoft .NET).

But why is it a good idea for Opera?  For that, we must turn to _The Tao of Programming_.

[ 4.1

A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity.

A program should follow the `Law of Least Astonishment'. What is this law? It is simply that the program should always respond to the user in the way that astonishes him least.

A program, no matter how complex, should act as a single unit. The program should be directed by the logic within rather than by outward appearances.

If the program fails in these requirements, it will be in a state of disorder and confusion. The only way to correct this is to rewrite the program. ]

Wednesday, August 21, 2002

I bet there are a few things left unsaid in the article.  A rework for the sole purpose of increasing speed doesn't make much sense when you're already the "fastest browser on earth."  Maybe it's wishful thinking, but I've used Opera for quite a while now, and I bet they're doing this to fix Opera's absolutely crummy javascript handling, which is my chief complaint about it (although probably my only complaint).

Anyway, if that's the deeper reason behind the rewrite, it will do them nothing but good.

van pelt
Wednesday, August 21, 2002

Preface: I didn't read the other comments. I have a compulsion to reply now.

The rewrite of the rendering engine in Opera is *GOOD*. It sucks now. It isn't able to rearrange things: if an element changes size, it will be clipped, instead of the rest of the page being reshuffled to adjust. In general, it isn't able to change the structure of the page, and this is castrating the DOM, that can't add or remove nodes because the rendering engine wouldn't be able to handle it

Not to mention various other deficiencies, like the inability to handle the CSS "overflow" attribute appropriately, the inability to change the color and borders of form controls, and many others officially documented

While this may increase the memory footprint of Opera (instead of a static surface, they'll have to handle a complex jigsaw) - but I think that the embedded version will still use the low-end engine - it's a necessary step, because it comes down to a lot of things that "should work", but don't, or work counter-intuitively

Saturday, August 31, 2002

*  Recent Topics

*  Fog Creek Home