Native Client – Asm.js και η μάχη των browsers για… το desktop μας

Google και Mozilla προτείνουν δυο διαφορετικές προσεγγίσεις με ένα κοινό σκοπό: την προβολή εφαρμογών και παιχνιδιών μέσα από τους browsers μας (…ή μάλλον, “τους”), με επιδόσεις παραπλήσιες των “κανονικών”.www

Σήμερα στον κόσμο του Internet κυρίαρχη γλώσσα είναι η JavaScript. Με αυτήν “χτίζονται” οι περισσότερες ιντερνετικές εφαρμογές, αλλά και τα δυναμικά ή/και αλληλεπιδραστικά κομμάτια των “απλών” sites.

Μόνο που, όντας μια κομματάκι απλή (σε σχέση με τις “παραδοσιακές” γλώσσες δημιουργίας εφαρμογών, όπως οι C, Delphi κ.λπ.), αλλά και “τρέχοντας μέσα στον browser” και ουχί “απευθείας” στο λειτουργικό σύστημα, είναι και λίγο έως πολύ πιο αργή. Για παράδειγμα, αν κανείς έγραφε την ίδια εφαρμογή, με τον ίδιο τρόπο, σε C++ και σε JavaScript, και την έτρεχε στην πρώτη περίπτωση απευθείας στο λειτουργικό σύστημα, στην δεύτερη περίπτωση μέσα από τον browser, η πρώτη εκδοχή μπορεί να έτρεχε μέχρι και… 20 φορές γρηγορότερα από τη δεύτερη!

Αυτό, όπως καταλαβαίνετε, έρχεται σε πλήρη αντίθεση με τα σχέδια των Google και Mozilla, που προσπαθούν να μετατρέψουν τον browser σε “πλατφόρμα όπου ο χρήστης κάνει τα πάντα” (αγνοώντας το… υποβόσκων λειτουργικό σύστημα). Γιατί να προτιμήσει κανείς π.χ. “να κάνει μοντάζ video στον browser” και όχι μέσα από μια εγγενή εφαρμογή, “που τρέχει απευθείας στα Win/στο Linux/στον Mac του”, αν αυτή η προσέγγιση είναι τραγικά πιο αργή;

Για αυτό Google και Mozilla έχουν βαλθεί να βρουν λύσεις ώστε να μπορούν να δημιουργηθούν εφαρμογές-που-τρέχουν-μέσα-στον-browser που να παρουσιάζουν επιδόσεις όσο το δυνατόν κοντινότερες στις “κανονικές” εφαρμογές.

Page 1 of 512345
...γνωστός και ως Οδυσσέας Κουράφαλος, αρχικός υπεύθυνος για το unregistered. Συντάκτης, γραφίστας, "μαλτιμηντιάς", φανατικός της science fiction και των αστείων γατιών στου ιντερνέτ. "Δηλώνω graphics whore" (παίζω Ms. Pac-Man στο MAME με 2xSAL και το πρώτο Max Payne με FXAA antialiasing). Load "unreg*",8,1.
  • ditsikts

    Καλό θα ήταν να υπήρχε και μια αναφορά στη Dart.

  • ducklord

    Από όσο γνωρίζω αυτή είναι απλά μια εναλλακτική της javascript, και όχι μια νέα τεχνολογία ή προσέγγιση με στόχο την επιτάχυνση του “πως λειτουργούν apps και games μέσα από τον browser”. Από την άλλη, δεν δηλώνω τρελός γνώστης επί του θέματος, οπότε αν μπορεί κάποιος να μας εξηγήσει καλύτερα “τι εστί Dart” (μέχρι να την ψάξω περισσότερο – επιφανειακά, “για να μπορώ να βγάλω θέμα”), μας το λέει. Ή και γράφει μόνος του μια παρουσίαση – αν έχει χρόνο, θέλει και μπορεί – για εμάς.

  • Gonik

    “Κανείς δεν ξέρει”, είναι η δημοφιλέστερη απάντηση. Η Dart είναι ακόμη πολύ νέα για να ξέρουμε.
    Πράγματι σχεδιάστηκε από την Google, ως η αντικατάσταση της JavaScript κυρίως για λόγους ταχύτητας, αλλά ακόμη δεν υποστηρίζεται από κανένα browser, παρά μόνο μέσω interpreter (dart2js) που πρακτικά αντικρούει τη φιλοσοφία για την οποία δημιουργήθηκε.

    Σε μια γενική φιλοσοφία, πράγματι Dart και Asm.js/NativeClient “αντικρούονται” μιας και στοχεύουν το θέμα της ταχύτητας. Αλλά κάθε μια το πράτει με διαφορετικό τρόπο, και οι 2 από τις 3 είναι τεχνολογίες της Google.

    Πάντως οτι χρειάζεται κάτι γρηγορότερο ο τομέας του Web είναι σίγουρο… Ακόμα και το Node.js έχουν φέρει στα όριά τους κάποιοι. Node.asm.js anyone? :P

  • ditsikts

    Είναι άμεσως αντίπαλος της JS. Η Dart φτιάχτηκε γιατί η JS από ότι φαίνετε εχει φτάσει στα όρια της, τολάχιστων έτσι λέει η google που έχει παίξει μεγάλο ρόλο στην αύξηξση των επιδώσεων της JS. H dart παρότι σε πρώιμο στάδιο βάσει τα bench της google(δε ξέρω αν έχουν γίνει άλλα από τρίτους) φαίνετε πολύ πιο γρήγορη. Τώρα αν θα υποστηριχθεί από άλλους browsers ή αν θα αντικαστησει πλήρως την JS στο μέλλον, δε μπορούμε να το ξέρουμε. Αν το asm.js είναι 2 φορές πιο γρήγορο από την JS, βάσει των bench η dart πολύ πιθανών να είναι πιο γρήγορη και από την asm.js. https://www.dartlang.org/performance/