Προγραμματισμός

Η πρόταση ECMA θα φέρει εγγραφές και πλειάδες στο JavaScript

Το JavaScript θα κερδίσει τύπους εγγραφών και τιμών tuple βάσει μιας πρότασης πριν από το ECMA International, τον οργανισμό τυποποίησης που επιβλέπει τη δημοφιλή γλώσσα προγραμματισμού για την ανάπτυξη ιστού.

Οι εγγραφές και οι πλειάδες θα εισήγαγαν δύο πολύ αμετάβλητες δομές δεδομένων στο JavaScript: Ρεκόρ, μια δομή τύπου αντικειμένου και Tuple, μια δομή τύπου πίνακα. Ένα σχέδιο του σχεδίου με την Τεχνική Επιτροπή ECMA 39, η οποία διέπει το ECMAScript, το τυπικό υποκείμενο JavaScript.

Οι εγγραφές και πλειάδες, αναφέρει η πρόταση, μπορούν να περιέχουν μόνο πρωτόγονες και άλλες εγγραφές και πλειάδες. Μπορούν να θεωρηθούν ως «σύνθετα πρωτόγονα». Και επειδή βασίζονται σε βάθος σε πρωτόγονα, είναι βαθιά αμετάβλητα. Όπως τα αντικείμενα και οι πίνακες, οι εγγραφές και οι πλειάδες υποστηρίζουν άνετα ιδιώματα για κατασκευή, χρήση και χειρισμό, αναφέρει η πρόταση. Συγκρίνονται με περιεχόμενο και όχι με ταυτότητα.

Οι μηχανές JavaScript ενδέχεται να εκτελούν ορισμένες βελτιστοποιήσεις στην κατασκευή, τον χειρισμό και τη σύγκριση των εγγραφών και των πλειάδων, ανάλογα με τον τρόπο υλοποίησης των συμβολοσειρών. Οι εγγραφές και οι πλειάδες προορίζονται να χρησιμοποιηθούν και να γίνουν κατανοητές με υπερσύνολα εξωτερικού τύπου, όπως TypeScript ή Flow.

Επί του παρόντος, βιβλιοθήκες χρηστών όπως το immutable.js εφαρμόζουν παρόμοιες έννοιες. Επιχειρήθηκε μια προηγούμενη πρόταση ECMA για αμετάβλητες δομές δεδομένων, αλλά εγκαταλείφθηκε λόγω της πολυπλοκότητας και της έλλειψης επαρκών περιπτώσεων χρήσης, αναφέρει η πρόταση. Η νέα πρόταση εισάγει σημαντικές αλλαγές, προσφέροντας πλεονεκτήματα χρηστικότητας σε σχέση με βιβλιοθήκες χρηστών, όπως τα εξής:

  • Οι εγγραφές και οι πλειάδες είναι εύκολα ανιχνεύσιμες σε ένα πρόγραμμα εντοπισμού σφαλμάτων.
  • Δεν απαιτείται επιπλέον διακλάδωση για να γράψετε μια γενική βιβλιοθήκη που καταναλώνει αμετάβλητα και αντικείμενα JS.
  • Αποφεύγονται περιπτώσεις χρήσης όπου οι προγραμματιστές μπορούν να μετατρέπουν ακριβά μεταξύ των κανονικών αντικειμένων JS και των αμετάβλητων δομών.

Οι εγγραφές και οι πλειάδες λειτουργούν καλά με αντικείμενα και πίνακες. Μπορούν να διαβαστούν με τον ίδιο τρόπο όπως τα αντικείμενα και οι πίνακες. Η βασική διαφορά επικεντρώνεται στη βαθιά αμετάβλητη και τη σύγκριση κατά αξία παρά ταυτότητα. Επίσης, η προτεινόμενη σύνταξη βελτιώνει σημαντικά την εργονομία της χρήσης Ρεκόρ και Tuple σε κωδικό.

Η πιο πρόσφατη έκδοση των προδιαγραφών ECMAScript, έκδοση 2020, εγκρίθηκε τον Ιούνιο. Περιέχει δυνατότητες σε τομείς όπως η φόρτωση λειτουργικών μονάδων και ένα νέο BigInt τύπος.