[linux-l] Re: Quo Vadis netrik?

olafBuddenhagen at gmx.net olafBuddenhagen at gmx.net
Di Apr 17 22:33:44 CEST 2007


Hallo,

On Tue, Apr 17, 2007 at 09:49:13AM +0200, Volker Grabsch wrote:
> On Tue, Apr 17, 2007 at 01:53:29AM +0200, olafBuddenhagen at gmx.net
> wrote:

> > - Informationen beim Laden von Seiten, einschließlich Warnungen und
> > Fehlermeldungen, werden im Terminal-Modus (scrollender Text)
> > dargestellt -- wesentlich besser zu überblicken und verfolgen als
> > eine Statusleiste
> 
> Das empfand ich als Nachteil. Die Grundidee ist gut, und besser als ne
> reine Statusleiste. Allerdings verschwindet währenddessen die
> angezeigte Seite, wodurch man schnell den Überblick verliert.
> Vorallem, bei Seiten, die oben ihr Menü haben, und darunter den Text.
> Da wäre es benutzerfreundlicher, wenn die Seite weitestgehens stehen
> bliebe, während die nächste geladen wird.

Hm... Kann ich irgendwie nicht nachvollziehen. Muss man wohl als
Geschmackssache abtun.

Wobei die aktuelle Implementierung, komplett in den Line-Modus zu
wechseln, tatsächlich nur eine Übergangslösung ist. Der Plan ist
eigentlich, irgendwann ein eigenes Statusfenster zu erstellen, das
während des Ladens im unteren Bildbereich eingeblendet wird.

Das bedeutet allerdings erheblich mehr Programmieraufwand. Was nicht nur
heißt, dass ich die Energie lieber in wichtigere Änderungen investiere;
sondern es würde auch den Bloat-Faktor vergrößern :-(

> Auf meinem schnellen Laptop flotter Netzanbindung ist das ein nerviges
> Flackern immer wenn ne neue Seite aufgerufen wurde. Und der Text im
> "Terminalmodus" rast so schnell durch, dass ich ihn nichtmal
> ansatzweise lesen kann.

Das ist durchaus beabsichtigt. Solange alles glatt läuft, will man die
Sachen ja auch garnicht lesen. Nur wenn das Laden irgendwie hängt, oder
eine Fehlermeldung kommt, kann man dann schauen, woran es scheitert. Ist
bei einer klassischen Statuszeile ja auch nicht anders -- nur dass man
dann *nur* die letzte Meldung sieht, und die eventuell nützlichen
anderen Informationen fehlen.

> > - Wenn man sich in der Page-History vorwärts oder rückwärts bewegt,
> > und die dadurch aufgerufene Seite sich in der Zwischenzeit geändert
> > hat, wird mit einer Heuristik versucht, trotzdem die "richtige"
> > Cursorposition zu erhalten. Sehr praktisch zum Beispiel beim
> > Heise-Newsticker.
> 
> Das sollte man auch beim Laden neuer Seiten probieren. Wäre IMHO bei
> jeder Webseite mit Menüführung sinnvoll.

Hm... Ich glaube ich habe mich missverständlich ausgedrückt.Ich versuche
es mal am Beispiel des Heise-Newstickers: Wenn man durch die Liste der
Meldungen durchgeht, und eine interessante findet, dann wird man auf den
Link gehen um komplette Nachricht zu lesen. Wenn man dann zur Liste
zurückkgeht, würde normaler Weise der Cursor die gleiche Position
(Zeilennummer) erhalten, wie vor dem Aufruf des Links. Wenn aber in der
Zwischenzeit neue Nachrichten dazugekommen sind, und der Seiteninhalt
sich entsprechend verschiebt, landet man plötzlich an einer völlig
anderen Stelle. (Ist übrigens noch nerviger, wenn sich Werbung ändert;
dann kommen die seltsamsten Sprünge zustande...) Netrik versucht nun, am
Inhalt zu erkennen, auf welchem Link der Cursor vorhin stand, und diesen
wieder anzuspringen, auch wenn sich die Seite geändert hat.

Beim Laden neuer Seiten gibt es einfach keine alte Position zum
Wiederherstellen.

(Wüsste auch nicht, was das bei Menüs brigen sollte? Da die sich
praktisch immer am Anfang der Seite befinden, sieht man beim Laden einer
neuen Seite ja sowieso wieder das Menü an der selben Stelle...)

> Ich möchte nur anmerken, dass etliche dieser Features auch bei w3m
> vorhanden sind. (z.B. vorwärts-rückwärts-Navigation)

Jepp, w3m scheint (mittler Weile?) auch ein vorwärts-Kommando zu haben
-- das allerdings standardmäßig mit keiner Taste belegt ist, und damit
praktisch nutzlos :-(

Was sind denn die anderen "etlichen Features", die w3m auch hat?

Ich habe übrigens auch Sachen gelistet, die *manche* der anderen
Textbrowser haben, aber nicht alle; nicht nur absolute
Alleinstellungsmerkmale. So kann w3m zum Beispiel auch SIGWINCH richtig
behandeln (wobei ich nicht mehr weiß, ob das immer so war); Lynx aber
zum Beispiel immer noch nicht. Bei links weiß ich es nicht. Bei der
Geschwindigkeit ist wiederum w3m deutlich schlechter, aber links nicht.

> > Als "über andere Projekte herziehen" hätte ich es allerdings nicht
> > wirklich gesehen...
> 
> Du hättest einfach konkreter werden sollen.

Naja, ich finde, auf konkreten Schwächen anderer Browser herumzureiten
wäre viel eher als "über andere Projekte herziehen" zu sehen, als nur
allgemein auszudrücken, dass keins der vorhandenen Projekte meine
Vorstellungen erfüllt...

Im Übrigen habe ich auf einer anderen Seite einige Ideen grob
aufgelistet, was ich besser machen will -- allerdings ist diese extrem
unvollständig...

> > > so wäre das ein gutes Beispiel für einen Browser, der alles kann
> > > und trotzdem flink ist, quasi die Verbindung von Dillo und
> > > Firefox.
> > 
> > Den Vergleich würde ich nicht wirklich ziehen, nichtmal in Bezug auf
> > die erklärten Ziele. Auch wenn ich die Absicht hatte, falls das
> > Projekt gut läuft, irgendwann auch einen grafischen Modus zu
> > implementieren, war der Schwerpunkt von netrik immer auf Textmodus.
> 
> Ja, natürlich. Ich dachte, das wäre klar, dass ich eine Analogie von
> der Dillo-Firefox-Diskussionen (früherer Thread) zu den Textbrowsern
> ziehen wollte. Nach dem Motto: Was graphischen Browsern nicht gelinkt,
> schaffen vielleicht die Textbrowser.

Nicht wirklich. Textmodus-Browser sind im Vorteil, wenn es um die
Darstellung einfacher Seiten geht, da sie nicht jedes einzelne Pixel
rendern müssen. Und auch ein einfaches ncurses-UI ist wohl effizienter
als was Grafisches. Wenn man aber die ganzen umständlichen Webstandards
implementieren will -- JavaScript, CSS, DOM, etc. -- nimmt sich das nix.

Ich hatte ja in der anderen Diskussion erwähnt, dass man durch
geschickte Programmierung wohl ein wenig rausholen kann, und das erhoffe
ich mir durchaus auch von netrik. Aber wirklich viel kann man da nicht
machen. Es besteht genau das gleiche Problem, mit dem grundlegenden
Widerspruch zwischen Funktionalität und Effizienz.

(Zugegebener Maßen gibt es eigentlich noch eine Variable in der
Gleichung: Entwicklungsaufwand. Man könnte zweifelsfrei das Verhältnis
von Funktionalität und Effizienz verbessern, indem man schlauere
Algorithmen benutzt, und auf übermäßige Abstraktion verzichtet. Kostet
aber *erheblich* mehr Manpower -- und in dieser Hinsicht wird man wohl
kaum mit Mozilla, Opera oder Microsoft konkurrieren können...)

> > Das traurige daran ist, dass ich gerade dann die Motivation für
> > netrik verloren habe, als die ganze grundlegende Funktionalität
> > weitgehend implementiert war, und ich hätte zum Implementieren der
> > genannten Zusatzfunktionen übergehen können. Die meisten davon
> > sollten nicht allzu schwer sein -- wahrscheinlich hätte es nicht
> > mehr als ein paar Monate gebraucht, netrik bei der allgemeinen
> > Benutzbarkeit in eine ähnliche Liga zu brigen wie etablierte
> > Textmodus-Browser...
> 
> Klingt doch gut.

Klingt gut, dass erhebliches Potenzial aufgebaut, aber nie genutzt
wurde?... ;-)

> > - Wie Oben schon angedeutet, können andere Textmodus-Browser mittler
> > Weile viel mehr als damals als ich angefangen hatte. Auch wenn ich
> > die praktische Bedienung von netrik nicht wirklich missen möchte,
> > frage ich mich doch, ob andere Entwicklungen nicht wichtiger sind,
> > als ein besserer Textmodus-Browser...
> 
> Das ist ein Argument. Andererseits hast du nun ein paar Beispiele, von
> denen du abkupfern kannst.

Was meinst Du mit "abkupfern"? Ideen übernehmen? Nicht wirklich. Es sind
zwar diverse Sachen bei den anderen Textmodus-Browsern dazugekommen, die
ich für netrik vorgesehen hatte. Umgekehrt kann ich mich aber an keine
einzige Neuerung erinnern, bei der ich gedacht hätte: Gute Idee, das
will ich auch.

Oder meinst Du Code kopieren? Das ist schwierig. w3m zum Beispiel
benutzt gc und eine eigene String-library -- Code in andere Programme zu
übernehmen ist praktisch unmöglich, ohne ihn grundlegend zu
überarbeiten. (Tatsächlich war der Programmierstil für mich der
Hauptgrund, wieso ich nicht w3m geforkt, sondern was Eigenes from
scratch angefangen habe...)

Oder meinst Du einfach nur schauen wie es die Anderen machen? Das könnte
bei einigen Sachen tatsächlich etwas helfen, SSL zum Beispiel. Das hatte
Lynx allerdings damals schon, also keine Besserung in dem Sinne :-)

> > - Ich frage mich, ob es wirklich nützlich ist, netrik als
> > monolithisches Programm weiterzuentwickeln; ob ich die Mühe nicht
> > eher darin investieren sollte, ein modulares Webbrowser-Framework
> > auf Hurd-Basis zu implementieren. (Eventuell mit
> > Linux-Kompatibilitätslayer, siehe
> > http://tri-ceps.blogspot.com/2005/09/welcome-to-hell.html )
> 
> Hauptsache, die Komponenten sind sauber getrennt. Ob nun durch
> separate Prozesse, oder "nur" durch saubere Unterteilung des
> Programmes in Module, die via Funktionsaufrufe kommunizieren, ist IMHO
> nebensächlich.

Nein. Es geht darum, dem Anwender leistungsfähige/flexible Werkzeuge an
die Hand zu geben. Dafür braucht man tatsächlich unabhängige
Komponenten; die interne Programmstruktur hilft dabei nicht.

Aber das ist eigentlich Thema des anderen Threads über Prozesse vs.
Libraries, in dem ich auch was schreiben wollte, aber bisher nicht
geschafft habe :-( Die interessantesten Diskussionen kosten leider
grundsätzlich am meisten Zeit...

-Olaf-



Mehr Informationen über die Mailingliste linux-l