Yesterday I downloaded Amaya. NotesFromTheCave did too. He saw what I saw: lots of butchered rendering - not much of a web browser.
But then I had second thoughts: Amaya is a research project and a testbed for really new standards. Why shouldn’t they butcher old pages written according to old standards? In fact, they may do so by design.
Reading the architectural overview I quickly realized that Amaya is not really a browser. Amaya is a structured document editor - the webbrowser is just one part of that.
Structured editors must have an internal representation of the document, usually a tree-structure (like the W3C DOM). And for a given kind of document, editors can check if the structure is valid - using a DTD or any variety of XML Schema.
Now, Amaya is a strict structured editor: nothing happens to the textbuffer unless the internal tree changes, too. In fact, the GUI always works with the internal tree first and then renders the result. This would make things very easy - if you always had perfect documents.
But try opening a bad XML-document in IE5 - one mistake and all you get is an error message. “Be our kind of document and you can play in our editor - and look good, too. Or we don’t play at all.”
Amaya tries harder: it always tries to open documents! It tries to tweak bad documents until they are technically correct (but probably look horrible). Then, if you edit new parts of the document, at least they will be OK.
Is this a good thing? Well, I think they chose the ability to edit existing but imperfect documents above perfect rendering of perfect documents. W3C may be one of the few places where this is a correct choice - but I am glad they are doing this.
Of course the actual rendering may need some work, too
I downloaded the source code and successfully built Amaya.exe (using MSVC++ 6.0). I think I’ll take a closer look at this, when I have the time.
I also realize how spoiled Delphi can make you - working on projects like these in C+++ feels slooow.