Στόχοι, βασικές έννοιες και περιπτώσεις χρήσης

Έχετε αναρωτηθεί για τις βασικές έννοιες και τις περιπτώσεις χρήσης του WASM; Αν όχι, σας καλύψαμε.

Η WebAssembly (WASM) είναι μια νέα γλώσσα χαμηλού επιπέδου που σας επιτρέπει να ξεμπλοκάρετε τις εγγενείς επιδόσεις στον Ιστό.

Στο WebAssembly για αρχάριους – Μέρος 1, εισαγάγαμε το WASM από την σκοπιά του αρχαρίου καλύπτοντας τον ορισμό και τους περιορισμούς του. Επιπλέον, εξετάσαμε τις δυνατότητες WebAssembly, τον οδικό χάρτη WASM και τον τρόπο λειτουργίας της JavaScript με το WebAssembly και όχι εναντίον του.

Αυτή η ανάρτηση θα εξερευνήσει το WebAssembly συζητώντας τους στόχους WASM, τις βασικές έννοιες και τις περιπτώσεις χρήσης. Θα ρίξουμε επίσης μια ματιά σε μερικά από τα συναρπαστικά έργα του.

Ας αρχίσουμε.

Στόχοι WebAssembly

Για να κατανοήσουμε τις βασικές έννοιες του WebAssembly, πρέπει πρώτα να δούμε τους στόχους του. Αυτοί οι στόχοι περιλαμβάνουν:

  • Δυνατότητα αξιοποίησης του διαθέσιμου υλικού χρησιμοποιώντας τη δυαδική μορφή σε χρόνο φόρτωσης και απόδοσης μεγέθους ως στόχο μεταγλώττισης. Με απλά λόγια, το WASM χρησιμοποιεί ένα Abstract Syntax Tree (AST) σε δυαδική μορφή, που υποστηρίζει τη μεταγλώττιση και την εκτέλεση με εγγενή ταχύτητα. Χρησιμοποιώντας την προσέγγιση, το WASM μπορεί να αποδώσει σε διάφορες συσκευές, όπως IoT, Web και κινητά.
  • Στόχος του WASM δεν είναι να αλλάξει ή να αλλάξει την υπάρχουσα πλατφόρμα Web. Με αυτήν την προσέγγιση, το WebAssembly μπορεί να ενσωματωθεί καλά με τον τρέχοντα και τον προηγούμενο Ιστό. Επιτρέπει επίσης στο WebAssembly να λειτουργεί απρόσκοπτα με JavaScript, συμπεριλαμβανομένης της εκτέλεσης παράλληλα ή της πραγματοποίησης σύγχρονων κλήσεων από JavaScript.
  • Για απρόσκοπτη εργασία με πολιτικές ασφαλείας αδειών και ίδιας προέλευσης.
  • Βεβαιωθείτε ότι οι προγραμματιστές μπορούν να σχεδιάσουν τις λύσεις τους για να υποστηρίζουν ενσωματώσεις εκτός προγράμματος περιήγησης.
  • Τέλος, δίνοντας στους προγραμματιστές τα εργαλεία για να εργαστούν αποτελεσματικά με τον πηγαίο κώδικα WebAssembly παρέχοντας μια μορφή κειμένου που μπορεί να επεξεργαστεί από τον άνθρωπο.
  Διορθώστε το σφάλμα Microsoft Teams You Cant Send Messages

Βασικές έννοιες WebAssembly

Μέσα στην κουκούλα, το WebAssembly ακολουθεί τα ακόλουθα βήματα:

  • Αρχικά, πρέπει να γράψετε κώδικα σε μια στατικά πληκτρολογημένη γλώσσα με καθορισμένους τύπους.
  • Μόλις τελειώσετε, δημιουργείτε μια προ-μεταγλωττισμένη μονάδα WASM και τροφοδοτείτε τον κώδικα στον μεταγλωττιστή του κινητήρα.
  • Το παραπάνω βήμα διασφαλίζει ότι το WASM παραλείπει την ανάλυση και καθιστά τον κώδικα έτοιμο για απόδοση στο πρόγραμμα περιήγησης ιστού.

Οι βασικές έννοιες πίσω από την εκτέλεση του WebAssembly στο πρόγραμμα περιήγησης ιστού περιλαμβάνουν:

  • Μνήμη: Η διαχείριση και η εγγραφή της μνήμης στο WebAssembly γίνεται από τις οδηγίες πρόσβασης στη μνήμη χαμηλού επιπέδου. Τεχνικά, είναι ένα ArrayBuffer με δυνατότητα αλλαγής μεγέθους και περιέχει μια σειρά από byte μνήμης.
  • Ενότητα: Η ενότητα στο WebAssembly είναι ένας μεταγλωττισμένος εκτελέσιμος κώδικας υπολογιστή. Λόγω της μορφής του χωρίς ιθαγένεια, το πρόγραμμα περιήγησης ιστού μεταγλωττίζει τη Μονάδα και τη μοιράζεται μεταξύ των Windows και των Εργαζομένων. Επίσης, το Module αποθηκεύει και δηλώνει εισαγωγές και εξαγωγές, εκτός από τη στέγαση των συναρτήσεων, των πινάκων, των τύπων, των καθολικών και της Μνήμης.
  • Πίνακας: Ένας πίνακας αποτελείται από όλες τις αναφορές και τις συναρτήσεις που χρησιμοποιούν έναν πληκτρολογημένο πίνακα με δυνατότητα αλλαγής μεγέθους. Αυτό καταργεί την ανάγκη αποθήκευσης ακατέργαστων byte στη μνήμη.
  • Παράδειγμα: Στο WASM, μια παρουσία είναι μια λειτουργική μονάδα κατά τη διάρκεια του χρόνου εκτέλεσης, με όλες τις καταστάσεις ζευγαρωμένες. Αυτές οι καταστάσεις περιλαμβάνουν Πίνακας, Μνήμη και άλλα σύνολα εισαγόμενων τιμών.

Βασικές Έννοιες WASM

Ως προγραμματιστής ιστού, μπορείτε να χρησιμοποιήσετε το JavaScript API για να καλέσετε και να ορίσετε Μονάδες, Πίνακες, Παρουσίες και Πίνακες. Επιπλέον, χρησιμοποιείτε JavaScript για να καλέσετε τις εξαγωγές WASM συγχρονισμένα εντός των συναρτήσεων JavaScript. Επομένως, η JavaScript παίζει καλά με το WebAssembly, καθώς μπορείτε να χρησιμοποιήσετε το WASM για να γράψετε εφαρμογές υψηλής απόδοσης στο πρόγραμμα περιήγησης Ιστού.

Αντικείμενα WASM

Όταν εργάζεστε με το WebAssembly, πρέπει να παρακολουθείτε οκτώ αντικείμενα WASM. Αυτά τα αντικείμενα περιλαμβάνουν:

  • WebAssembly.Global – Το καθολικό αντικείμενο είναι μια καθολική μεταβλητή. Είναι προσβάσιμο τόσο από WebAssembly.Module όσο και από JavaScript.
  • WebAssembly.Module – Εδώ, το αντικείμενο Module περιέχει τον κωδικό WASM χωρίς κατάσταση. Ο κώδικας είναι προμεταγλωττισμένος.
  • WebAssemly.Instance – Το WebAssembly.Instance είναι η εκτελέσιμη, κατάσταση κατάστασης του WebAssembly.Module.
  • WebAssembly.Table – Το αντικείμενο Table περιέχει αναφορές συναρτήσεων και λειτουργεί ως περιτύλιγμα JavaScript.
  • WebAssembly.CompileError – Το αντικείμενο CompileError περιέχει όλα τα σφάλματα κατά την επικύρωση και την αποκωδικοποίηση.
  • WebAssembly.RuntimeError – Εδώ, το αντικείμενο RuntimeError παραθέτει όλα τα σφάλματα χρόνου εκτέλεσης.
  • WebAssembly.LinkError – Το αντικείμενο LinkError περιέχει σφάλματα που παρουσιάζονται κατά την εγκατάσταση της μονάδας.
  Διορθώστε το σφάλμα BitTorrent στο οποίο δεν είναι δυνατή η πρόσβαση στη διαδικασία

WASM Χρήση-Περιπτώσεις και Έργα

Γνωρίζουμε ήδη ότι το WebAssembly προσφέρει απόδοση που μοιάζει με εγγενή στο πρόγραμμα περιήγησης ιστού. Ωστόσο, για να καταλάβετε πραγματικά πού μπορείτε να το χρησιμοποιήσετε, πρέπει να εξετάσετε τις περιπτώσεις χρήσης του. Ας παραθέσουμε παρακάτω μερικές από τις περιπτώσεις χρήσης WASM.

Οι θήκες χρήσης WebAssembly εκτείνονται τόσο εντός όσο και εκτός του προγράμματος περιήγησης. Για παράδειγμα, εάν θέλετε να χρησιμοποιήσετε το WASM σε ένα πρόγραμμα περιήγησης, μπορείτε να κάνετε πολλά πράγματα, όπως:

  • Επεξεργασία βίντεο ή ήχου, όπως το έργο ffmpegwasm.
  • Βιντεοπαιχνίδια στο πρόγραμμα περιήγησης ιστού, όπως αυτά τα παιχνίδια υψηλής απόδοσης.
  • Επιστημονική απεικόνιση και προσομοίωση
  • Εξομοίωση/προσομοίωση πλατφόρμας όπως DOSBox, MAME κ.λπ.
  • Κρυπτογράφηση
  • Απομακρυσμένη επιφάνεια εργασίας
  • Εργαλεία προγραμματιστή

Περιπτώσεις χρήσης

Από μια γενική άποψη, οι συναρπαστικές περιπτώσεις χρήσης του WebAssembly περιλαμβάνουν

  • Η δυνατότητα εγγραφής ταχύτερου κώδικα μπορεί να εκμεταλλευτεί το υποκείμενο υλικό.
  • Επιπλέον, μπορείτε επίσης να κάνετε συμπίεση από την πλευρά του πελάτη, η οποία οδηγεί σε καλύτερη εξοικονόμηση χρόνου φόρτωσης και εύρους ζώνης. Έτσι, χρησιμοποιείτε την CPU του πελάτη ή το υποκείμενο υλικό για να κάνετε τη συμπίεση και την αποσυμπίεση και, στη συνέχεια, χρησιμοποιείτε τους πόρους του διακομιστή.
  • Επιπλέον, μπορείτε να χρησιμοποιήσετε διαφορετικές γλώσσες προγραμματισμού για να γράψετε κώδικα για τον Ιστό, εκτός από τη χρήση απλώς JavaScript. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε τα Rust, C και C++ για να γράψετε κώδικα υψηλής απόδοσης για ορισμένες πτυχές των εφαρμογών ιστού σας.
  Ξεκινήστε την επιχείρησή σας στο Διαδίκτυο ΔΩΡΕΑΝ με το Sylius (πλατφόρμα ηλεκτρονικού εμπορίου ανοιχτού κώδικα)

Εργα

Αν περάσουμε σε παραδείγματα του πραγματικού κόσμου, αξίζει να αναφερθούν τα ακόλουθα έργα.

  • Η Figma βελτίωσε την απόδοση της εφαρμογής web με τη χρήση WebAssembly. Μείωσαν τον χρόνο φόρτωσης κατά την προετοιμασία της εφαρμογής, την απόδοση ολόκληρου του σχεδίου, ακόμη και τη λήψη ενός αρχείου σχεδίασης. Όπως συζητήσαμε νωρίτερα, το WebAssembly είναι επίσης εξαιρετικό για συμπίεση. Η Figma υλοποίησε το WASM για να βελτιώσει το μέγεθος λήψης, μειώνοντάς τα σημαντικά.
  • Pyodide: Ένα άλλο συναρπαστικό έργο WASM είναι το έργο Pyodide, το οποίο κυκλοφόρησε από τη Mozilla. Επιτρέπει στους επιστήμονες να μεταγλωττίσουν την επιστημονική στοίβα Python στο WebAssembly, συμπεριλαμβανομένων των NumPy, SciPy, Scikit-learn, κ.λπ., στο πρόγραμμα περιήγησης. Προσφέρει μια διαφανή μετατροπή αντικειμένων μεταξύ Python και JavaScript. Τέλος, επιτρέπει επίσης στους προγραμματιστές να χρησιμοποιούν Web API χρησιμοποιώντας Python.
  • Brazor WebAssembly: Το πλαίσιο Brazor WebAssembly επιτρέπει στους προγραμματιστές να δημιουργούν εφαρμογές ιστού μίας σελίδας, από την πλευρά του πελάτη και διαδραστικές εφαρμογές με το .NET. Μπορείτε να φιλοξενήσετε αυτές τις εφαρμογές στο πρόγραμμα περιήγησης με το χρόνο εκτέλεσης .NET που βασίζεται σε WebAssembly. Εδώ, ως προγραμματιστής, έχετε πρόσβαση στη λειτουργικότητα του προγράμματος περιήγησης στον κώδικα .NET σας με τη βοήθεια των API JavaScript του WebAssembly.

Πηγή: Figma

Άλλα πολλά γνωστά και αξιόλογα έργα χρησιμοποιούν το WebAssembly. Αυτά είναι τα Binaryen, Cheerp, Forest, Grain και άλλα.

Τελικές σκέψεις

Το WebAssembly δεν είναι ακριβώς φιλικό για αρχάριους. Ωστόσο, μελετώντας τις περιπτώσεις χρήσης και τις βασικές έννοιες, μπορείτε να κατανοήσετε ξεκάθαρα την ικανότητά του.

Με συναρπαστικά έργα στην αγορά, είναι η καλύτερη στιγμή για να μάθετε το WebAssembly, ειδικά αν ασχολείστε με την ανάπτυξη Ιστού. Η ικανότητα του WASM να λειτουργεί εκτός προγράμματος περιήγησης το καθιστά επίσης μια εξαιρετική επιλογή για ανάπτυξη προσανατολισμένη στην απόδοση.

Σας άρεσε να διαβάζετε το άρθρο; Τι θα λέγατε να μοιράζεστε με τον κόσμο;