Abo
  1. Foren
  2. Kommentare
  3. Applikationen
  4. Alle Kommentare zum Artikel
  5. › Google-Browser: Chrome 31 für…

Genial! Google erfindet Java

  1. Thema

Neues Thema Ansicht wechseln


  1. Genial! Google erfindet Java

    Autor: /mecki78 13.11.13 - 12:46

    > Dazu kompiliert PNaCl den C- und C++-Code in eine Zwischenversion,
    > statt direkt architekturabhängigen Code zu erzeugen wie der Native Client.

    Unglaublich, genau das macht der Java Bytecode Compiler auch.

    > Dieser Zwischencode im Stil von LLVM-Bytecode wird dann in
    > eine portable, ausführbare Datei gepackt, die wie jede andere
    > Webseite über einen Webserver verteilt werden kann.

    Also genau wie bei Java: Der Zwischencode heißt bei Java "Bytecode", befindet sich in Klassendateien und diese werden zu einer portable, ausführen Datei gepackt, nennt sich Java Archive (JAR Datei), die ein Webserver wie jede andere Datei verteilen kann.

    > Beim Laden holt Chrome die Datei und erzeugt architekturspezifischen
    > Maschinencode, der für das jeweilige System optimiert ist.

    Genau das macht die Java Runtime auch. Ihr JIT (Just in Time) Compiler verwandelt den Bytecode in Maschinencode, optimiert für das jeweilige System.

    > Entwickler müssen ihren Code also nicht mehrfach für unterschiedliche
    > Plattformen erzeugen.

    Also genau wie bei Java.

    Einfach genial diese Leute bei Google. Haben sie doch glatt was erfunden, was es schon seit fast 20 Jahren gibt. Auf die Idee muss man erst einmal kommen.

    Genauso gut hätte man einen C/C++ Compiler schreiben können, der C/C++ Code in Bytecode umwandelt (derartige Projekte gibt es bereits AFAIK). Aber Java ist ja bekanntlich scheiße, außer Google hat es geschrieben und in ihren Browser eingebaut, dann ist es natürlich genial.

    /Mecki

  2. Re: Genial! Google erfindet Java

    Autor: TC 13.11.13 - 13:13

    nur das C wahrscheinlich schneller läuft ^^

  3. Re: Genial! Google erfindet Java

    Autor: theonlyone 13.11.13 - 13:15

    Sinn des ganzen ist es C/C++ Code einfach nativ auszuführen.

    Die Struktur der Architektur ist natürlich ziemlich ähnlich zu Java wie du es schreibst, den genau das MUSS es ja auch sein damit man die Funktionalität bekommt die man haben will.


    Will man in java sein C/C++ einfach nativ einfügen muss man das schon über JNI/JNA machen, geht zwar, aber ist nicht gerade elegant, da der Overhead der VM natürlich immer noch da ist (allgemein gering).


    Wirklich interessant wird das Ganze eben erst, wenn es wirklich um harte Performance geht und vermeintlich auch Legacy Code übernommen wird, den man nicht einfach neuschreiben kann (oder sich das sparen kann).


    Die Vorstellung das in Zukunft etwas das für den Desktop entwickelt wurde ohne Änderungen (oder nur sehr wenige) direkt im Browser läuft, ist ja wohl Prinzipiel mal eine gute sache (das dadurch gleich Sicherheitsrisiken mit einbezogen werden ist klar, darf man nicht vergessen).

  4. Nein...

    Autor: spaceMonster 13.11.13 - 13:21

    Was der Artikel weglässt, ist der Kackpunkt des ganzen:

    Eines der wichtigesten features von Native Client ist die aufwendige Rechteverwaltung des Code. Native Client Programme werden auf einer tieferen ebene auf Rechtsbrüche untersucht, als das bei Java Applets der fall war.
    Native Client stellt eine fortschrittliche Sandbox dar, die gleichzeit trotzdem performant sein kann wie anderer native code.
    http://www.chromium.org/nativeclient/pnacl/introduction-to-portable-native-client

    Ausserdem handelt es sich nicht um einen JIT (funktionen werden erst übersetzt wenn sie verwendet werden) sonder num einen Ahead of time compiler ( alles wird einmal vor dem start übersetzt)

  5. Re: Genial! Google erfindet Java

    Autor: /mecki78 13.11.13 - 14:17

    theonlyone schrieb:
    --------------------------------------------------------------------------------
    > Sinn des ganzen ist es C/C++ Code einfach nativ auszuführen.

    C kann man nicht nativ ausführen. C muss in CPU Instruktionen übersetzt werden, die kann man dann ausführen. Und eine Java Virtual Machine ist nichts weiter als eine virtuelle CPU, d.h. ich kann C auch in Bytecode Instruktionen umsetzen. Wie gesagt, da gibt es einige Projekte, die genau das machen (da kannst du C Code völlig unmodifiziert in einen Compiler stecken und raus kommt ein Java Class File).

    Eine JVM hingegen macht heute auch nichts anderes als den Bytecode in CPU Instruktionen zu wandeln und diese dann auszuführen.

    > Wirklich interessant wird das Ganze eben erst, wenn es wirklich um harte
    > Performance geht und vermeintlich auch Legacy Code übernommen wird, den man
    > nicht einfach neuschreiben kann (oder sich das sparen kann).

    Legacy Code ist kein Problem, siehe oben. Ich bin jetzt nur zu faul danach zu suchen, aber wie gesagt, es gibt Projekte, die schlucken einfachen C (oder sogar C++ Code) und machen Java Byte Code draus. Da muss man nichts neu schreiben.

    Was die Performance angeht, klar, das hängt davon ab wie guten Maschinen Code so ein JVM JIT Compiler aus dem Bytecode erzeugen kann. Dieser ist halt ggf. nicht so gut wie das was die meisten C Compiler aus C Code erzeugen. Allerdings stellt sich hier die Frage, ob der JIT Compiler von Google wirklich so viel besseren Code erzeugen kann. Und wenn ja, dann könnte man ja diesen Compiler auch in eine JVM einbauen.

    /Mecki

  6. Re: Genial! Google erfindet Java

    Autor: /mecki78 13.11.13 - 14:20

    TC schrieb:
    --------------------------------------------------------------------------------
    > nur das C wahrscheinlich schneller läuft ^^

    Wie schnell ein C Programm läuft, hängt davon ab, wie gut der Maschinencode ist, den der Compiler erzeugt hat, denn nicht C läuft auf der CPU, sondern CPU Instruktionen.

    Und ob jetzt

    C -> Zwischencode -> Maschinencode

    wirklich besser ist als

    Java -> Zwischencode -> Maschinencode

    ist fraglich, denn ich wette ich kann Java in Google's Zwischencode übersetzen, genauso wie ich C in Javas Bytecode übersetzen kann (derartige Compiler gibt es).

    /Mecki

  7. Re: Nein...

    Autor: /mecki78 13.11.13 - 14:23

    spaceMonster schrieb:
    --------------------------------------------------------------------------------
    > Native Client Programme werden auf einer
    > tieferen ebene auf Rechtsbrüche untersucht, [...]
    > Native Client stellt eine fortschrittliche Sandbox dar, [...]
    >
    > Ausserdem handelt es sich nicht um einen JIT (funktionen werden erst
    > übersetzt wenn sie verwendet werden) sonder num einen Ahead of time
    > compiler ( alles wird einmal vor dem start übersetzt)

    Und wer bitte verbietet einer JVM Java Code nicht auf Rechtsbrüchte zu prüfen, sondern in einer Sandbox laufen zu lassen, die keine Rechtsbrüche zulässt? Und wer verbietet einer JVM Java Code AOT statt JIT zu kompilieren?

    Nur weil Oracle das derzeit so nicht macht, bedeutet dass nicht, dass sie das nicht zukünftig auch so machen können/wollen/werden. Außerdem steht es jedem frei eine JVM zu schreiben und wie es dann deine JVM macht, dass darfst gerne du entscheiden.

    /Mecki

  8. Re: Nein...

    Autor: Paykz0r 13.11.13 - 14:57

    spaceMonster schrieb:
    --------------------------------------------------------------------------------
    > Was der Artikel weglässt, ist der Kackpunkt des ganzen:
    Kackpunkt?

    xD

  9. Re: Genial! Google erfindet Java

    Autor: Paykz0r 13.11.13 - 15:00

    /mecki78 schrieb:
    --------------------------------------------------------------------------------
    > > Dazu kompiliert PNaCl den C- und C++-Code in eine Zwischenversion,
    > > statt direkt architekturabhängigen Code zu erzeugen wie der Native
    > Client.
    >
    > Unglaublich, genau das macht der Java Bytecode Compiler auch.
    >
    > > Dieser Zwischencode im Stil von LLVM-Bytecode wird dann in
    > > eine portable, ausführbare Datei gepackt, die wie jede andere
    > > Webseite über einen Webserver verteilt werden kann.
    >
    > Also genau wie bei Java: Der Zwischencode heißt bei Java "Bytecode",
    > befindet sich in Klassendateien und diese werden zu einer portable,
    > ausführen Datei gepackt, nennt sich Java Archive (JAR Datei), die ein
    > Webserver wie jede andere Datei verteilen kann.
    >
    > > Beim Laden holt Chrome die Datei und erzeugt architekturspezifischen
    > > Maschinencode, der für das jeweilige System optimiert ist.
    >
    > Genau das macht die Java Runtime auch. Ihr JIT (Just in Time) Compiler
    > verwandelt den Bytecode in Maschinencode, optimiert für das jeweilige
    > System.
    >
    > > Entwickler müssen ihren Code also nicht mehrfach für unterschiedliche
    > > Plattformen erzeugen.
    >
    > Also genau wie bei Java.
    >
    > Einfach genial diese Leute bei Google. Haben sie doch glatt was erfunden,
    > was es schon seit fast 20 Jahren gibt. Auf die Idee muss man erst einmal
    > kommen.
    >
    > Genauso gut hätte man einen C/C++ Compiler schreiben können, der C/C++ Code
    > in Bytecode umwandelt (derartige Projekte gibt es bereits AFAIK). Aber Java
    > ist ja bekanntlich scheiße, außer Google hat es geschrieben und in ihren
    > Browser eingebaut, dann ist es natürlich genial.

    Ok, da kennst sich jemand mit Java aus.
    Aber nicht mit C/C++...

    Die unterschiede sind Dir geläufig?

    -Java hat Profiling, was zur Laufzeit Code optimiert.
    C/C++ hat das nicht.

    -Java zwingt dich zu OOP, C/C++ nicht

    -Java hat nur einfach Vererbung. In C/C++ kannste machen was Du willst.

    Also nur weil es in Bytecode umgewandelt wird erfindet Google gar nix neu.
    Zu mal ASM.JS genau das selbe tut,
    nur der letzte Schritt der beim Client passiert gibt es dort nicht.
    Ich nehme an dieser Ansatz ist noch besser als ASM.JS...

    Von daher: Gern!

  10. Re: Genial! Google erfindet Java

    Autor: Llame 13.11.13 - 15:06

    > Aber Java ist ja bekanntlich scheiße

    Wer behauptet denn sowas? Ich finde Java ziemlich toll...

  11. Re: Genial! Google erfindet Java

    Autor: Paykz0r 13.11.13 - 15:14

    Llame schrieb:
    --------------------------------------------------------------------------------
    > > Aber Java ist ja bekanntlich scheiße
    >
    > Wer behauptet denn sowas? Ich finde Java ziemlich toll...

    Die Sprache ist gut und schön.
    Ideal um OOP kennen zu lernen.

    Das was die meisten Leute negativ mit Java in verbindung brngen hat null mit der Sprache zu tun.

    Gleiches gilt für Javascript.
    Wobei ich das zum lernen von OOP nicht empfehlen würde...

  12. Re: Genial! Google erfindet Java

    Autor: Haxx 13.11.13 - 18:57

    Paykz0r schrieb:
    --------------------------------------------------------------------------------
    > Das was die meisten Leute negativ mit Java in verbindung brngen hat null
    > mit der Sprache zu tun.
    >
    > Gleiches gilt für Javascript.

    Du beziehst dich auf die Performance?

    Das hat auf jeden Fall etwas mit der Sprache zu tun, zumindest im Fall von Javascript.

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Stellenmarkt
  1. Interhyp Gruppe, München
  2. BWI GmbH, Germersheim
  3. TenneT TSO GmbH, Bayreuth, Würzburg
  4. Endress+Hauser Conducta GmbH+Co. KG, Gerlingen (bei Stuttgart)

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote
  1. 229€ (Bestpreis!)
  2. täglich neue Deals bei Alternate.de


Haben wir etwas übersehen?

E-Mail an news@golem.de


Atari Portfolio im Retrotest: Endlich können wir unterwegs arbeiten!
Atari Portfolio im Retrotest
Endlich können wir unterwegs arbeiten!

Ende der 1980er Jahre waren tragbare PCs nicht gerade handlich, der Portfolio von Atari war eine willkommene Ausnahme: Der erste Palmtop-Computer der Welt war klein, leicht und weitestgehend DOS-kompatibel - ideal für Geschäftsreisende aus dem Jahr 1989 und Nerds aus dem Jahr 2019.
Ein Test von Tobias Költzsch

  1. Retrokonsole Hauptverantwortlicher des Atari VCS schmeißt hin

Rohstoffe: Lithium aus dem heißen Untergrund
Rohstoffe
Lithium aus dem heißen Untergrund

Liefern Geothermiekraftwerke in Südwestdeutschland bald nicht nur Strom und Wärme, sondern auch einen wichtigen Rohstoff für die Akkus von Smartphones, Tablets und Elektroautos? Das Thermalwasser hat einen so hohen Gehalt an Lithium, dass sich ein Abbau lohnen könnte. Doch es gibt auch Gegner.
Ein Bericht von Werner Pluta

  1. Wasserkraft Strom aus dem Strom
  2. Energie Wie Mikroben Methan mit Windstrom produzieren
  3. Erneuerbare Energien Die Energiewende braucht Wasserstoff

Banken: Die Finanzbranche braucht eine neue Strategie für ihre IT
Banken
Die Finanzbranche braucht eine neue Strategie für ihre IT

Ob Deutsche Bank, Commerzbank oder DKB: Immer wieder wackeln Server und Anwendungen bei großen Finanzinstituten. Viele Kernbanksysteme sind zu alt für aktuelle Anforderungen. Die Branche sucht nach Auswegen.
Eine Analyse von Manuel Heckel

  1. Bafin Kunden beklagen mehr Störungen beim Online-Banking
  2. PSD2 Giropay soll bald nahezu allen Kunden zur Verfügung stehen
  3. Klarna Der Schrecken der traditionellen Banken

  1. Archer2: Britischer Top-10-Supercomputer nutzt AMDs Epyc
    Archer2
    Britischer Top-10-Supercomputer nutzt AMDs Epyc

    Der Archer2 soll 2020 die höchste CPU-Leistung aller Supercomputer weltweit erreichen und es dank Beschleunigerkarten in die Top Ten schaffen. Im System stecken fast 12.000 Epyc-7002-Chips und Next-Gen-Radeons.

  2. Corsair One: Wakü-Rechner erhalten mehr RAM- und SSD-Kapazität
    Corsair One
    Wakü-Rechner erhalten mehr RAM- und SSD-Kapazität

    Mit dem i182, dem i164 und dem i145 aktualisiert Corsair die One-Serie: Die wassergekühlten Komplett-PCs werden mit doppelt so viel DDR4-Speicher und doppelt so großen SSDs ausgerüstet.

  3. ChromeOS: Google zeigt neues Pixelbook Go und benennt Start von Stadia
    ChromeOS
    Google zeigt neues Pixelbook Go und benennt Start von Stadia

    Das Pixelbook Go ist ein Clamshell-Notebook mit ChromeOS, das eher eine Ergänzung als ein Nachfolger des Ur-Pixelbooks ist. Zumindest kostet es wesentlich weniger. Auch der genaue Starttermin für Stadia steht jetzt fest.


  1. 18:25

  2. 17:30

  3. 17:20

  4. 17:12

  5. 17:00

  6. 17:00

  7. 17:00

  8. 16:11