Για περισσότερες από δύο δεκαετίες, η JavaScript ήταν η μόνη γλώσσα προγραμματισμού που μπορούσε να εκτελεστεί σε προγράμματα περιήγησης. Άλλες γλώσσες όπως η Python, η C++ και η Go ήταν κυρίως για τη δημιουργία της πλευράς διακομιστή των εφαρμογών και υπηρεσιών Ιστού.
Η JavaScript τα πήγε αρκετά καλά, αλλά πολλές άλλες γλώσσες προγραμματισμού είναι πιο γρήγορες. Υπάρχουν πολλά οφέλη από τα οποία μπορούν να επωφεληθούν οι εφαρμογές Ιστού εκτελώντας άλλες, πιο αποδοτικές γλώσσες προγραμματισμού απευθείας στο πρόγραμμα περιήγησης.
Το WebAssembly προσφέρει μια αποτελεσματική, ανοιχτή και ασφαλή επιλογή που αποτελεί μέρος της ανοιχτής πλατφόρμας Ιστού. Μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε εφαρμογές που εκτελούνται σε προγράμματα περιήγησης, διακομιστές και σε άλλα περιβάλλοντα.
Παρουσιάζοντας το WebAssembly
Η WebAssembly (WASM) είναι μια αποτελεσματική, χαμηλού επιπέδου, φορητή γλώσσα τυποποιημένη από το W3C. Καθορίζει μια μορφή κώδικα και διεπαφές για τα προγράμματα να αλληλεπιδρούν με πλατφόρμες στον Ιστό.
Μπορείτε να μεταγλωττίσετε τις περισσότερες γλώσσες προγραμματισμού στη μορφή δυαδικού κώδικα του WebAssembly. Τα προγράμματα περιήγησης μπορούν να ερμηνεύσουν και να εκτελέσουν τον κώδικα WASM που προκύπτει όπως ακριβώς κάνουν με την κανονική JavaScript. Μπορείτε επίσης να εκτελέσετε το WebAssembly μαζί με κώδικα JavaScript για υψηλότερη απόδοση εφαρμογής και διαλειτουργικότητα μεταξύ των δύο.
Το WebAssembly έγινε πρότυπο W3C το 2019, με υποστήριξη σε πολλές γλώσσες προγραμματισμού. Σύμφωνα με Κατασκευασμένο με WebAssembly, υπάρχουν ήδη πολλά δημοφιλή έργα που χρησιμοποιούν το WebAssembly για την αποστολή γρήγορου, ασφαλούς λογισμικού στους χρήστες τους.
Πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένων εκείνων που είναι συγκεκριμένες για τον διακομιστή, υποστηρίζουν το WebAssembly. Αυτά περιλαμβάνουν τα Rust, Go, Python, C++, TypeScript, Java, PHP και Ruby. Ελέγξτε το awesome-wasm-langs πόρος για να μάθετε για τις γλώσσες που υποστηρίζονται από το WebAssembly και τα πακέτα που μπορείτε να χρησιμοποιήσετε με αυτές.
Εδώ είναι ένα παράδειγμα Πρόγραμμα WebAssembly από το Tutorials Point που επιστρέφει το πολύ δύο ακέραιους αριθμούς:
Η σύνταξη WebAssembly είναι σχετικά περιεκτική σε σύγκριση με την JavaScript, αλλά αυτό δεν πρέπει να είναι πρόβλημα. Δεν θα χρειαστεί να μάθετε τη σύνταξη, καθώς το WebAssembly θα είναι ο στόχος μεταγλώττισης για τα προγράμματα που γράφετε στη γλώσσα που προτιμάτε.
Πώς λειτουργεί το WebAssembly
Το WASM υπάρχει ως στόχος μεταγλώττισης για άλλες γλώσσες προγραμματισμού. Μπορείτε να γράψετε την αγαπημένη σας γλώσσα προγραμματισμού και μεταγλωττίστε τον πηγαίο κώδικα σε bytecode WASM που εκτελείται στον υπολογιστή-πελάτη. Η μετάφρασή του σε εγγενή κώδικα μηχανής σημαίνει ότι μπορεί να εκτελεστεί με υψηλή ταχύτητα, συνήθως ταχύτερη από την JavaScript.
Ένα από τα κρίσιμα χαρακτηριστικά του WASM είναι η διαλειτουργικότητα JavaScript. Μπορείτε να εισαγάγετε μονάδες WASM σε μια εφαρμογή Ιστού και να εκθέσετε τις λειτουργίες WASM για χρήση σε κώδικα JavaScript. Τα πλαίσια JavaScript μπορούν να επωφεληθούν από το WASM για υψηλότερη απόδοση.
Το WASM χρησιμοποιεί ένα μοντέλο εκτέλεσης σε περιβάλλον δοκιμών παρόμοιο με το JavaScript. Το WASM αλληλεπιδρά με τον κεντρικό υπολογιστή χρησιμοποιώντας ABI (Δυαδική Διασύνδεση Εφαρμογών) όπως το Διεπαφή συστήματος WebAssembly που παρέχει πρόσβαση σε πόρους και άλλες υπηρεσίες συστήματος με βάση τις απαιτήσεις του προγράμματος.
Πολλά σύγχρονα προγράμματα περιήγησης υποστηρίζουν το WASM, συμπεριλαμβανομένων των Chrome, Microsoft Edge, Mozilla Firefox, Opera και Safari. Γλώσσες όπως το Go και Υποστήριξη σκουριάς WASM έξω από το κουτί.
Γιατί ο Ιστός χρειάζεται WebAssembly
Η JavaScript έχει περιορισμένη λειτουργικότητα από το σχεδιασμό. δεν είναι ένα από τα τις πιο γρήγορες ή τις πιο αποδοτικές γλώσσες δεδομένου ότι ξεκίνησε ως γλώσσα σεναρίου για τον Ιστό. Παρόλο που υπάρχουν πολλοί χρόνοι εκτέλεσης όπου η JavaScript εκτελείται με διαφορετικές ταχύτητες, υπάρχουν πιο γρήγοροι και περισσότεροι γλώσσες απόδοσης που το WebAssembly μπορεί να φέρει στον ιστό για περιπτώσεις χρήσης, όπως παιχνίδια, βίντεο και ΜΟΥΣΙΚΗ.
Το WebAssembly προσφέρει επίσης μεγαλύτερη φορητότητα και ευελιξία σε γλώσσες που δεν εκτελούνται στον ιστό. Η εισαγωγή περισσότερων γλωσσών στον Ιστό (η πιο δημοφιλής πλατφόρμα ανοιχτού κώδικα) θα έχει ως αποτέλεσμα μια βελτιωμένη εμπειρία συνολικά.
Η υιοθέτηση WebAssembly γίνεται με γρήγορο ρυθμό
Πολλές εταιρείες και προγραμματιστές δημιουργούν εφαρμογές με το WebAssembly. Το Google, το Dropbox και το Cloudflare χρησιμοποιούν ενεργά το WebAssembly σε ορισμένες από τις εφαρμογές τους.
Το WebAssembly είναι δημοφιλές μεταξύ των προγραμματιστών Python, C++ και Rust. Οι προγραμματιστές Python χρησιμοποιούν συνήθως Pyoidide και PyScript, προγραμματιστές C++ και Emscripten και προγραμματιστές Rust με Percy, Yew, Sycamore, MoonZoon και το πλαίσιο Seed.