Η τιμή της μετεγκατάστασης του Mercurial στην Python 3 μπορεί να είναι μια διαδρομή απροσδόκητων σφαλμάτων.

Συντηρητής συστήματος ελέγχου έκδοσης άστατος Απογοήτευσέ με σύνολο εργασίες για τη μεταφορά του έργου από την Python 2 στην Python 3. Παρά το γεγονός ότι οι πρώτες προσπάθειες μεταφοράς έγιναν το 2008 και η επιτάχυνση προσαρμογής για εργασία με την Python 3 ξεκίνησε το 2015, η πλήρης δυνατότητα χρήσης της Python 3 εφαρμόστηκε μόλις το τελευταίο κλάδος της Mercurial 5.2.

Οι προβλέψεις για τη σταθερότητα της θύρας για την Python 3 είναι απογοητευτικές. Συγκεκριμένα, αναμένεται ότι θα εμφανιστούν τυχαία σφάλματα στον κώδικα κατά τη διάρκεια αρκετών ετών, καθώς οι δοκιμές δεν καλύπτουν το 100% της βάσης του κώδικα και πολλά προβλήματα είναι αόρατα κατά τη στατική ανάλυση και εμφανίζονται μόνο κατά την εκτέλεση. Επιπλέον, πολλά πρόσθετα και επεκτάσεις τρίτων παραμένουν αμετάφραστα στην Python 3.
Δεδομένου ότι κατά τη μεταφορά αποφασίστηκε να προσαρμοστεί σταδιακά ο κώδικας στην Python 3, διατηρώντας παράλληλα την υποστήριξη για Python 2, ο κώδικας απέκτησε πολλά hacks για να συνδυάσει Python 2 και 3, τα οποία θα πρέπει να καθαριστούν μετά το τέλος της υποστήριξης για Python 2.

Σχολιάζοντας την κατάσταση με την Python 3, ο συντηρητής Mercurial πιστεύει ότι η απόφαση να προωθηθεί η Python 3 που σπάει τη διαλειτουργικότητα και να την επιβάλει ως μια νέα, πιο σωστή γλώσσα, ελλείψει καινοτόμων βελτιώσεων που σχετίζονται με τους προγραμματιστές, ήταν ένα μεγάλο λάθος που προκάλεσε μεγάλη ζημιά στην κοινότητα και αποτελεί παράδειγμα του πώς δεν χρειάζεται να το κάνουν τα μεγάλα έργα. Αντί να δημιουργηθεί σταδιακά η λειτουργικότητα και να επιτραπεί στις εφαρμογές να προσαρμόζονται σταδιακά, η κυκλοφορία της Python 3 ανάγκασε τους προγραμματιστές να ξαναγράψουν κώδικα και να ξοδέψουν πόρους διατηρώντας ξεχωριστούς κλάδους για Python 2 και Python 3. Μόλις επτά χρόνια μετά την κυκλοφορία της Python 3.0 Η Python 3.5 εισήγαγε χαρακτηριστικά για να εξομαλύνει τη διαδικασία μετάβασης και να διασφαλίσει ότι η ίδια βάση κώδικα εκτελεί τόσο την Python 2 όσο και την Python 3.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο