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. Camelot Management Consultants AG, Mannheim, Köln, München, Basel (Schweiz)
  2. Computacenter AG & Co. oHG, verschiedene Standorte
  3. operational services GmbH & Co. KG, Wolfsburg
  4. Universität Paderborn, Paderborn

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. 4,99€
  2. 50,99€
  3. (-70%) 14,99€


Haben wir etwas übersehen?

E-Mail an news@golem.de


In eigener Sache: Neue Workshops zu agilem Arbeiten und Selbstmanagement
In eigener Sache
Neue Workshops zu agilem Arbeiten und Selbstmanagement

Wir haben in unserer Leserumfrage nach Wünschen für Weiterbildungsangebote gefragt. Hier ist das Ergebnis: Zwei neue Workshops widmen sich der Selbstorganisation und gängigen Fehlern beim agilen Arbeiten - natürlich extra für IT-Profis.

  1. In eigener Sache ITler und Board kommen zusammen
  2. In eigener Sache Herbsttermin für den Kubernetes-Workshop steht
  3. Golem Akademie Golem.de startet Angebote zur beruflichen Weiterbildung

In eigener Sache: Golem.de bietet Seminar zu TLS an
In eigener Sache
Golem.de bietet Seminar zu TLS an

Der Verschlüsselungsexperte und Golem.de-Redakteur Hanno Böck gibt einen Workshop zum wichtigsten Verschlüsselungsprotokoll im Netz. Am 24. und 25. September klärt er Admins, Pentester und IT-Sicherheitsexperten in Berlin über Funktionsweisen und Gefahren von TLS auf.

  1. In eigener Sache Zweiter Termin für Kubernetes-Seminar
  2. Leserumfrage Wie können wir dich unterstützen?
  3. In eigener Sache Was du schon immer über Kubernetes wissen wolltest

Projektorkauf: Lumen, ANSI und mehr
Projektorkauf
Lumen, ANSI und mehr

Gerade bei Projektoren werden auf Plattformen verschiedener Onlinehändler kuriose Angaben zur Helligkeit beziehungsweise Leuchtstärke gemacht - sofern diese überhaupt angegeben werden. Wir bringen etwas Licht ins Dunkel und beschäftigen uns mit Einheiten rund um das Thema Helligkeit.
Von Mike Wobker


    1. TLS-Zertifikat: Gesamter Internetverkehr in Kasachstan kann überwacht werden
      TLS-Zertifikat
      Gesamter Internetverkehr in Kasachstan kann überwacht werden

      In Kasachstan müssen Internetnutzer ab sofort ein spezielles TLS-Zertifikat installieren, um verschlüsselte Webseiten aufrufen zu können. Das Zertifikat ermöglicht eine staatliche Überwachung des gesamten Internetverkehrs in dem Land.

    2. Ari 458: Elektro-Lieferwagen aus Leipzig kostet knapp 14.000 Euro
      Ari 458
      Elektro-Lieferwagen aus Leipzig kostet knapp 14.000 Euro

      Ari 458 ist ein kleiner Lieferwagen mit Elektroantrieb, den der Hersteller mit Aufbauten für verschiedene Einsatzzwecke anbietet. Die Ausstattung ist einfach, dafür ist das Auto günstig.

    3. Quake: Tim Willits verlässt id Software
      Quake
      Tim Willits verlässt id Software

      Seit 24 Jahren ist Tim Willits einer der entscheidenden Macher bei id Software, nun kündigt er seinen Rückzug an. Was er künftig vorhat, will der ehemalige Leveldesigner und studierte Computerwissenschaftler erst nach der Quakecon verraten.


    1. 17:52

    2. 15:50

    3. 15:24

    4. 15:01

    5. 14:19

    6. 13:05

    7. 12:01

    8. 11:33