Dies ist die Heimat der Java User Group Nürnberg.


Mittwoch, 10. September 2008

Hex and the City: Google Chrome Browser

Der neue Google Chrome Browser ist als Beta verfügbar. Ich habe mir mal die Mühe gemacht ihn zu testen und nutze ihn seitdem sogar sehr gern. Meine Kritik und mein Fazit ist in der September-Ausgabe des kostenlosen Magazin KaffeeKlatsch zu lesen. Wer es noch nicht abonniert hat, kann meine Kolumne auch hier lesen (wenn auch nicht so schön im Layout^^):

Hex and the City: Der Google Chrome Browser


Warum sollen wir eigentlich reisen, wenn wir die Welt doch googlen können?


Ein neuer Browser erobert die Welt. Ein Comic [1] hat ihn wie eine Prophezeiung verkündet.1 Da wird in freundlichen Bildern erklärt, das die Welt sich verändert hat. Quasi eine ganz eigene Internet-Welt im Aufbruch. Wir schauen uns keine Web-Seiten mehr an, wir bedienen Web-Applikationen. Na ja, ich für meinen Part würde mir teilweise gern mal wieder „Web-Seiten“ ansehen, aber heutzutage laufen ja beinahe überall Filmchen, es wird Musik gespielt, und das mir bereits vor Jahren verhasste Wort „Multimedia“ breitet sich aus. Wahrscheinlich ist es das elektronische Synonym zur Pest oder dem Schwarzen Tod des 14. Jahrhunderts.2 Vor allem, wenn man an die Bandbreitenverschwendung und Wartezeiten denkt.


Aber Recht haben sie in diesem Comic. Denn das Internet ist nicht mehr gefüllt mit statischen Inhalten. Die Web-Auftritte der meisten Domains haben ein multimediales Eigenleben und machen sich breit auf unseren Computern. Sehr zur Freude jedes Menschen, der Ergonomiestudien betreibt. Denn solange es diese Entwicklung gibt, wird sein Job gesichert sein. Je bunter, schriller ein Web-Auftritt wird, desto mehr entfernt er sich meist vom Standard. Gerade in der Bedienung. Und das ist nicht immer zum Wohl der Besucher der Web-Seiten. Manchmal ist weniger mehr.3


Aber so ist der Fortschritt eben. Und solange wir solche Seiten anklicken, werden sie wohl kaum weniger werden. Also: es ist ein Fakt, dass Web-Seiten heute oft Applikationen gleichen. Gerade bei diversen Internet-Shops ist das so. Und wer würde da motzen. Bevor ich einen Akku in einem lokalen, großen Elektronikmarkt für 49 € kaufe, bestelle ich ihn doch lieber im Internet. Da habe ich erst kürzlich für solch einen Akku nur 19 € bezahlt, dazu 3 € Versand. Und die ca. 35 Minuten Weg inklusive Parkplatzsuche gespart.


Webapplikationen

Was genau ist denn jetzt anders, wenn Web-Seiten eher Applikationen sind? Sie verbrauchen weit mehr Ressourcen. Dazu gehört Hauptspeicher und CPU-Last – ganz zu schweigen von Platz auf dem Bildschirm. Und statt einfach nur dem Browser zu sagen, wie Bilder, Texte und Videos angezeigt werden sollen, laufen mit JavaScript viele dynamische Effekte ab. Sichtbare und nicht sichtbare. Auf mathematischer Ebene betrachtet sind das nur irgendwelche Berechnungen. Teilweise werden Browser „ausgebremst,“ durch schlecht geschriebenen JavaScript-Code einer Web-Seite die angezeigt werden soll. Ausserdem brauchen wir weit mehr Stabilität, denn wenn wir in einer Applikation (Online-Office-Anwendung, eMail-Client) einen Text schreiben, wollen wir diesen ungern wegen eines Fehlers verlieren. Und falls doch ein Absturz auftritt, wollen wir den Text wiederherstellen können.


Prozesse

Ein Hauptaugenmerk in der Architektur des Google-Chrome-Browsers war daher, nicht nur alles linear zu verarbeiten. Eine Web-Seite die ewig rechnet, soll uns nicht mehr aufhalten. Statt einfach einen Multithreaded-Browser zu entwickeln, ging Google allerdings einen Schritt weiter. Jede Seite (und damit auch jedes Tab, was im Browser angezeigt wird) wird als eigener Prozess gestartet. Ein eigener Prozess bedeutet noch mehr Unabhängigkeit untereinander. Allerdings auch den Nachteil, dass gewisse Basisdatenstrukturen in jedem dieser Prozesse als Kopie vorliegen. Wir verlieren also ein wenig Speicher je Tab zu Gunsten der Stabilität. Aus Sicht des Software-Architekten lasse ich mir das aber gern gefallen, vor allem wenn man bedenkt, dass der gesamte Speicher, den eine Web-Seite belegt, so ohne Rückstände freigegeben wird, wenn ich sie schließe. Und aus Benutzersicht bedeutet es, ich kann alle anderen Tabs problemlos bedienen, selbst wenn ein Tab (eine Webseite) gerade beschäftigt ist. Jedes neu geöffnete Tab bedeutet einen geregelten Neustart dieser Seite. Und wenn ein Fehler auf genau einer Webseite vorliegt, droht kein Absturz des gesamten Browsers, sondern nur des einen Prozesses.


Selbst wenn man innerhalb eines Tabs die Domain wechselt, wird der alte Prozess geschlossen und ein neuer begonnen. Die Startzeit ist im Google-Browser überraschender Weise dennoch minimal. Ein nettes Feature des Browsers ist sein eingebauter Task-Manager für die Webseiten-Prozesse. Man sieht genau, welche Web-Seite wie viel Speicher und CPU „frisst.“ Da ist es schon erschreckend zu sehen, dass selbst simple Web-Seiten um die 20 MByte Hauptspeicher haben oder die Wikipedia-Hauptseite [2] ca. 10 MByte. Kein Wunder, dass manche minder dimensionierte Rechner bei vielen Tabs immer so langsam werden.4


Wiederherstellung nach Absturz

Google Chrome kann den letzten Zustand bei komplettem Absturz der Prozesse wiederherstellen. Dies geht sowohl, wenn ein Prozess für ein einzelnes Tab abstürzt, als auch, wenn der Hauptprozess verloren geht. Dies beinhaltet die geöffneten Tabs, die Liste der kürzlich geschlossenen Tabs, die Browserhistorie und noch viel wichtiger: unsere Eingaben!


Test-First

Was mich gerade bei dem Comic (dem Browser selbst sieht man den eigentlichen Entwicklungsprozess ja nicht direkt an) als Software-Architekt gefreut hat, war die Betonung des Tests bei der Entwicklung. Ja, auf diese Strips im Comic sollte ein jeder mal genau schauen der an Software-Entwicklung beteiligt ist. Bugs finden sich frühzeitig leichter als weit später, wenn man bereits ganz andere Module der Software entwickelt. Außerdem gilt wie immer: Fehler frühzeitig erkennen hilft, sie im Rest des Projektes zu unterlassen.5 Google Chrome ist also laut Comic ein Beispiel für Test-Driven-Design.


Engines

Zum Rendern und für JavaScript griff das Projektteam von Google Chrome auf existierende Software zurück. WebKit als Renderer und V8 als JavaScript Virtual Machine. Letzteres ist gerade so interessant, weil es statt interne Repräsentation von JavaScript-Code immer wieder zu interpretieren, Maschinen-Code generiert und im Gegensatz zu vielen anderen JavaScript-VMs inkrementelle Garbage-Collector-Algorithmen nutzt.


Drag & Drop

Was gibt es außer den Interna noch für Features? Insbesondere die Bedienbarkeit der Tabs hat mir gefallen. Da kann man Drag und Drop beinahe ohne Grenzen nutzen, somit die Tabs verschieben oder sie aus dem Fenster lösen und damit ein eigenständiges Fenster anlegen. Auch lassen sich Tabs in existierende Browser-Fenster verschieben. Ich konnte selbst ein Tab aus dem Mozilla Firefox in Google Chrome ziehen, da geht dann einfach ein neues Tab mit gleicher URL auf.


Das ganz neue Design beim Google-Browser setzt die Tabs übrigens ganz nach oben, Menüs und Adresseingabe sind Teil des Tabs und nicht übergeordnet. Gerade die Adresseingabe ist gut gelöst, es gibt ein Eingabefeld für alles (Adressen, Suchbegriffe, alles mit Autovervollständigung). Und als Suchmaschine ist selbstverständlich nicht nur Google nutzbar, sondern dies ist frei konfigurierbar.


Neue Tab-Seite

Öffnet man ein neues leeres Tab hat man direkt Zugriff auf die am häufigsten genutzten Adressen, seine Lesezeichen, die Historie und die kürzlich geschlossenen Tabs (hilfreich wenn man sich verklickt hat). Das ist sinnvoll, denn wenn man ein neues Tab öffnet, will man ja meist irgendwohin navigieren und ist somit ein netter Ersatz zu der sonst üblichen Startseite.


Inkognito-Modus

Und für Leute die gerade mal nichts über ihr Tun im Internet abspeichern wollen,6 gibt es extra die Möglichkeit ein Fenster „inkognito“ zu öffnen. Dies bedeutet, alles was jetzt in diesem Fenster passiert bleibt insoweit anonym, als das es auf dem Computer nicht vermerkt wird (Caches, Cookies etc. werden beim Schließen direkt gelöscht). Dies ist sicherlich ein wichtiges Feature für pubertierende Jugendliche, die den Computer der Eltern nutzen.7 Das hat natürlich keinen Einfluss auf die Seiten, welche wir besuchen, und was sich diese über uns merken.


Anwendungsverknüpfungen

Außerdem lassen sich Seiten als Anwendungen betrachten. Dafür kann man für die Seiten sogar Verknüpfungen (z. B. auf dem Desktop) anlegen lassen. In diesem Modus fehlt die URL-Leiste und sämtliche andere Menüs, die Web-Applikation wird dann in einem ansonsten leeren Fenster angezeigt. Gerade für eine Mail-Applikation oder Kalenderanwendung sieht das sehr schön aus, oft würde der „Zurück“-Button inklusive seiner Funktionalität ja ohnehin nur stören und Fehlerfälle provozieren.


Sicherheit

Auch Sicherheit wird versucht in dem neuen Browser effektiv zu lösen. Jede Web-Seite läuft in einer eigenen Sandbox, darin enthaltene Plugins (z. B. Video-Player) in einem eigenen Prozess. Bei der Ausführung von Plugins muss man immer noch sehr vorsichtig sein, da diese außerhalb der Sandbox laufen. Außerdem prüft Google Chrome bei der Eingabe von Adressen, ob diese auf „Schwarzen Listen“ stehen, weil sie bösartige Dinge zu tun versuchen und warnt den Benutzer dann, bevor die Seite geladen wird. Außerdem ist selbst die Anzeige der Adresszeile hilfreich bei der Sicherheit: Wird beispielsweise das führende „https://“ durchgestrichen und rot dargestellt, wenn das Zertifikat einer Seite für die SSL-Verschlüsselung abgelaufen ist.


Datenschutz [3]

Der Browser übermittelt zum prüfen ob eine Seite „bösartig“ ist, die URL an Google zum Abgleich mit den „Schwarzen Listen“. Außerdem werden die Eingaben in der Adresszeile an Google gesendet, um die Autovervollständigung von Domain-Namen anbieten zu können. Sind wir bereit Nutzungsstatistiken und Absturzberichte an Google zu senden, gehen auch diese Daten hinüber. Das alles kann man in den Optionen deaktivieren, hat dann natürlich auch die Funktionalitäten die darauf basieren nicht mehr. Viel problematischer dürfte sein, dass jede Kopie des Google Chrome Browsers, welche man installiert, eine eindeutige Anwendungs-ID bekommt. Damit sind für Google alle Daten und Anfragen eines Browsers auch eindeutig diesem Browser zuordbar. Es wird momentan für die Nutzungsstatistik und Absturzberichte und bei Updates des Browsers genutzt. Dies ist nicht deaktivierbar. Als Verfechter von Datenschutz muss ich das strikt ablehnen. Da der Browser Open Source ist, gibt es vielleicht bald gepatchte Version ohne letzteres fragwürdige „Feature“. Aber wer hat schon Bedenken beim Datenschutz, wir beichten ja auch in der Kirche.8


Mein Fazit

Meines Erachtens ist der Browser selbst jetzt in der Beta bereits „top“. Viele seiner Funktionen landen hoffentlich (gerade aufgrund seines OpenSource-Charakters) in anderen Browsern. Immerhin sind auch die erforderlichen Webdienste wie die „Schwarzen Listen“ frei zugänglich. Ich nutze Google Chrome ab sofort gern, bin mir aber auch bewusst über den Datenschutz, bzw. seine Abwesenheit. Auf meinen Firefox greife ich dann zurück, wenn ich ein Add-on zwingend benötige. Auf meinen Safari, wenn ich mit meinem Apple in der weiten Welt des Internets unterwegs bin. Und auf den Microsoft Internet Explorer, wenn ich in Outlook Web Access E-Mails lesen will. Das hat nämlich noch kein anderer Browser schön hinbekommen.


Meine größte Kritik ist, dass der Browser noch nicht auf meinem Apple-Notebook läuft – zumindest nicht nativ. Und diese lästige Anwendungs-ID.


Referenzen

[1] Google Google Chrome, http://www.google.de/googlebooks/chrome

[2] Wikipedia http://de.wikipedia.de

[3] Datenschutzbestimmungen Google Chrome, http://www.google.de/chrome/intl/de/privacy.html

1Und das Prinzip von Selbsterfüllenden Prophezeiungen dürfte ja jedermann bekannt sein. Spätestens seit Harry Potter, denn Voldemort versucht Harry als Baby zu töten, weil er durch eine Prophezeiung erfahren hat, dass ihn der Junge vernichten wird. Doch Harry überlebt und die Prophezeiung erfüllt sich selbst.

2Wobei nicht einwandfrei nachgewiesen ist, ob die Pandemie des 14. Jahrhunderts in Europa wirklich auf Pesterregern basierte – aber ebenso wenig wissen wir, ob Multimedia tatsächlich von den Usern gewünscht ist, zumindest in der Menge, in der wir damit überschwemmt werden

3Und das gilt auch in vielen anderen Bereichen

4Das sind dann die Bekannten, die ständig anrufen und sich beschweren (nicht zu Unrecht) ihr Rechner wäre zu langsam*

* Je nach Gemütslage gönne ich mir dann schonmal den Spass und führe einen Exkurs in die O-Notation und Grundlagen der Theoretischen Informatik**

** Die Anrufe werden dann auch spürbar weniger^^

5Hoffentlich – wobei ich durchaus auch Erfahrungsresistente Menschen kenne, die immer wieder dieselben Fehler machen. Ich z.B. verlasse jeden Tag aufs neue mein Bett. Oder noch plastischer: ich lasse den Schlüssel liegen, breche durchs Fenster ein, lasse wieder den Schlüssel liegen ...

6Vielleicht weil sie Geschenke für Personen suchen und bestellen, die den Computer auch benutzen*
* Man soll ja stets ans gute im Menschen glauben

7Für den Fall, dass auch sie Geschenke suchen. Wie gesagt, man soll ja stets ans gute im Menschen glauben

8An dieser Stelle Weise ich nochmal auf meinen Text über Datenschutz in der Februarausgabe des KaffeeKlatsch hin. Datenschutz und -Sicherheit geht alle an und ist meiner Meinung nach essentiell!

1 Kommentar:

babusaul hat gesagt…

This blog is bookmarked! I really love the stuff you have put here.

aroma essential oils