1. Foren
  2. Kommentare
  3. Software-Entwicklung
  4. Alle Kommentare zum Artikel
  5. › asm.js: Odinmonkey macht…

Irreführender Artikel

  1. Thema

Neues Thema Ansicht wechseln


  1. Irreführender Artikel

    Autor: smerlin 22.03.13 - 12:16

    immer wieder unklare Trennung zwischen Javascript und asm.js.

    Es wird nicht jedes Javscript Programm durch die neue Engine beschleunigt, sondern nur diejenigen die ihre numerischen Variablen EXPLIZIT statisch typisieren.

    Bringt also nur Vorteile für Javascript Programme die manuell in asm.js kompatiblen Code umgeschrieben wurden.

    EDIT: achja die Verrenkungen die asm.js betreibt um die statische Typisierung in Javascript unterzubringen die keine derartige Typisierung vorsieht schauen echt ulkig aus ... und ist echt hässlich. Ich bemitleide die Leute die schönen Javascript code mit derartigen Monströsitäten verunstalten müssen damit ihr Javascript performanter läuft. Tut in der Seele weh.



    2 mal bearbeitet, zuletzt am 22.03.13 12:21 durch smerlin.

  2. Re: Irreführender Artikel

    Autor: Tapsi 22.03.13 - 12:25

    Schade dass es keine Annotation wie in Java gibt. Dann hätte man schön sowas machen können:

    @Int
    var myInt = 10;

    Aber leider gibt es dass ja nicht. xD

    while not sleep
    sheep++

  3. JavaScript is over, you can go home now

    Autor: ssssssssssssssssssss 22.03.13 - 13:00

    > die Leute die schönen Javascript code mit derartigen Monströsitäten
    > verunstalten müssen damit ihr Javascript performanter läuft.

    "schöner JavaScript Code" haha, ja ;)
    Damit JavaScript vernünftig läuft muss man alles andere als schön programmieren :D
    (Ich sag nur (function(){...}()); und ===)

    In asm.js würd ich auch nicht "manuell" programmieren wollen. Aber nun können Transcompiler (Dart, TypeScript, Java) auf die Kacke hauen.

    Dart2JS ist jetzt schon im Stande durch "Compiler Optimierungen" schnelleren Code zu erzeugen, als der durchschnittliche JS-Entwickler per Hand schreibt. Mit asm.js würden sie dann wirklich schnellen Code erzeugen, der im Notfall auch mit normaler Geschwindigkeit auf älteren Browsern läuft.

  4. Re: JavaScript is over, you can go home now

    Autor: Tapsi 22.03.13 - 13:06

    ssssssssssssssssssss schrieb:
    --------------------------------------------------------------------------------
    > > die Leute die schönen Javascript code mit derartigen Monströsitäten
    > > verunstalten müssen damit ihr Javascript performanter läuft.
    >
    > "schöner JavaScript Code" haha, ja ;)
    > Damit JavaScript vernünftig läuft muss man alles andere als schön
    > programmieren :D
    > (Ich sag nur (function(){...}()); und ===)

    Naja wenn man sich nur an einem Muster orientieren kann kennt man keinen schönen JS Code :P

    while not sleep
    sheep++

  5. Re: Irreführender Artikel

    Autor: k@rsten 22.03.13 - 13:19

    Dann nutz doch Dart. Schöne & Strukturierte Sprache, die auch so schnell wie C#/Java ist.

  6. Re: JavaScript is over, you can go home now

    Autor: ssssssssssssssssssss 22.03.13 - 13:40

    > Naja wenn man sich nur an einem Muster orientieren kann kennt man keinen
    > schönen JS Code :P

    Na dann nenn mir mal Alternativen. Wenn's ne Möglichkeit gibt ansehnlicheren Code zu schreiben, der genau so sicher ist, bin ich sofort interessiert :)

  7. Re: JavaScript is over, you can go home now

    Autor: Tapsi 22.03.13 - 13:45

    Man muss ja nicht alles in diesem Pattern machen. Ich meine ich sehe so viele Libraries die das Pattern benutzen obwohl diese keine privaten Daten haben bzw. alle Daten nach Außen geben. Warum man da nicht einfach einfaches Objekt nimmt ist mir unklar.

    Was so unschön an...

    var myWhatEver = {
    x:0,
    y:0,
    ...
    };

    ist mir schleierhaft. Wo ich dir Recht gebe ist in Fällen wo Leute auf Teufel komm raus Klassen verwenden wollen und dafür das Prototype System vergewaltigen... das sieht wirklich oft unschön aus. :(

    while not sleep
    sheep++

  8. Re: Irreführender Artikel

    Autor: YoungManKlaus 22.03.13 - 15:04

    Das is doch auch bullshit. Und Type Inference zur Compilezeit kann ja auch nicht wirklich die Hexerei sein, nachdem C# das mit "var" auch geht. Das Problem is halt dass ich in JS machen kann:
    var x = 10; // int
    x = new Bla()
    wodurch sich mittendrin der Datentyp ändert was voll fürn Arsch is.

  9. Re: Irreführender Artikel

    Autor: Tapsi 22.03.13 - 15:15

    YoungManKlaus schrieb:
    --------------------------------------------------------------------------------
    > Das is doch auch bullshit. Und Type Inference zur Compilezeit kann ja auch
    > nicht wirklich die Hexerei sein, nachdem C# das mit "var" auch geht. Das
    > Problem is halt dass ich in JS machen kann:
    > var x = 10; // int
    > x = new Bla()
    > wodurch sich mittendrin der Datentyp ändert was voll fürn Arsch is.

    Naja Moment!
    Das obliegt ja der Validierung. Diese Typisierung soll ja als optionales Feature dienen also darf man obiges ja auch streng genommen machen. Bei der genannten Technik dreht es sich ja auch nur darum Teile des Codes zu optimieren die Typs strikt einsetzen ( das obiges Beispiel syntaktisch korrekt aber semantisch kompletter Unsinn ist sei mal außer Acht gelassen ).

    Meine Intention war zu sagen, dass es schade ist dass es kein Konstrukt wie @XYZ; gibt welches syntaktisch korrekt aber eine Nulloperation wäre. Dann könnte man Variablen schon bei der Initialisierung mit strikten Typ markieren was ein optimierter Compiler dann verwenden kann ( um unschöne Sachen wie 12|0 zu vermeiden ). Das der Compiler entsprechenden Code ohnehin ( was asm.js auch macht ) noch vorher validieren muss steht außer Frage was sowieso zur Folge hätte das obiges Beispiel nicht geht.

    while not sleep
    sheep++



    1 mal bearbeitet, zuletzt am 22.03.13 15:17 durch Tapsi.

  10. Re: Irreführender Artikel

    Autor: GodsBoss 22.03.13 - 19:53

    > Meine Intention war zu sagen, dass es schade ist dass es kein Konstrukt wie
    > @XYZ; gibt welches syntaktisch korrekt aber eine Nulloperation wäre.

    Kommentare gibt es auch in JS. Einige Doc-Werkzeuge nutzen das, um Code-Dokumentation zu produzieren (ähnlich Javadoc). Tatsächlich gibt es auch schon Nulloperationen mit einer Wirkung in JS, nämlich "use strict";, was den so genannten strikten Modus (strict mode) für eine Code-Einheit (Funktion oder Programm) aktiviert. Das verhindert z.B. das unabsichtliche Erzeugen von globalen Variablen, wenn das Schlüsselwort var vergessen wurde, das Überschreiben von eval und arguments, das with-Konstrukt ist gleich ganz verboten, und noch einiges mehr. Die genaue Wirkung ist in Annex C von ECMA-262 5th Edition beschrieben (nur informativ).

    Was ich damit sagen will: Prinzipiell gäbe es durchaus Möglichkeiten, etwas abwärtskompatibel einzuführen.

    Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Deutsche Gesellschaft für Internationale Zusammenarbeit (GIZ) GmbH, Eschborn
  2. uniVersa Lebensversicherung a.G., Nürnberg
  3. ORLEN Deutschland GmbH, Elmshorn
  4. ARI-Armaturen Albert Richter GmbH & Co. KG, Schloß Holte-Stukenbrock

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote
  1. ab 2.174€
  2. (u. a. Xbox Wireless Controller Carbon Black/Robot White/Shock Blue für 58,19€)
  3. (u. a. Zotac Gaming GeForce RTX 3090 Trinity für 1.787,33€)


Haben wir etwas übersehen?

E-Mail an news@golem.de