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

Οδηγός προγραμματιστή για τα πλεονεκτήματα και τα μειονεκτήματα της Python

Η Python χρεώνεται από το Ίδρυμα Λογισμικού Python ως εύκολο να μάθει και να τρέχει παντού. Είναι χρήσιμο για μια σειρά τύπων εφαρμογών, όπως ανάπτυξη Ιστού, επιστημονική πληροφορική και εκπαίδευση. Το Google και το Instagram ήταν μεταξύ των πολλών χρηστών του Python και η γλώσσα βαθμολογεί καλά τους δείκτες δημοτικότητας.

Αλλά η Python είχε τα ζητήματα της, με ερωτήματα σχετικά με τις επιδόσεις και τις ιδιαιτερότητες του σχεδιασμού. Για να φτάσουμε στο κάτω μέρος του σωστού - και ίσως όχι τόσο σωστού - σχετικά με την Python, ο συντάκτης του Large Paul Krill ζήτησε από τους αξιωματούχους της κοινότητας Python για τη συμβολή τους.

Επαγγελματίες της Python

Διαβάστε το, χρησιμοποιήστε το με ευκολία. "Τα κύρια χαρακτηριστικά ενός προγράμματος Python είναι ότι είναι εύκολο να διαβαστεί", λέει ο Pierre Carbonnelle, ένας προγραμματιστής Python και blogger που διαχειρίζεται το ευρετήριο γλωσσών PyPL. "Αυτό έχει οφέλη σε εσάς και σε άλλους. Σας βοηθά να σκέφτεστε πιο καθαρά κατά τη σύνταξη προγραμμάτων και βοηθά τους άλλους που θα διατηρήσουν ή θα βελτιώσουν το πρόγραμμά σας. Και στις δύο περιπτώσεις, απαιτείται λιγότερη προσπάθεια για να γράψετε ένα πρόγραμμα Python από το να γράψετε ένα" σε άλλη γλώσσα, όπως C ++ ή Java. " Η αναγνωσιμότητα της Python διευκολύνει την ανάπτυξη ανοιχτού κώδικα, πρόσθεσε ο Carbonnelle.

Η Python είναι εύχρηστη και εξαιρετικά δημοφιλής στον ακαδημαϊκό χώρο, δημιουργώντας μια μεγάλη ομάδα ταλέντων, λέει ο Sumit Chachra, CTO στο Tivix, μια εταιρεία συμβούλων λογισμικού που ειδικεύεται στην ανάπτυξη Python / Django. Ο Django και η Python αξιοποιούνται από την Tivix στην ανάπτυξη Ιστού και κινητών, λέει.

Ο Python είναι ένας πολύ παραγωγικός τρόπος για να γράψετε κώδικα, λέει ο Stephen Deibel, του Wingware, που κάνει το Wing Python IDE. "Μερικά από αυτά προέρχονται από την απλή σύνταξη και την αναγνωσιμότητα - ουσιαστικά δεν υπάρχει καθόλου" boilerplate ". Ορισμένα από αυτά προέρχονται από την πλούσια, καλά σχεδιασμένη ενσωματωμένη και τυπική βιβλιοθήκη και τη διαθεσιμότητα πολλών ανοιχτών πηγών τρίτων βιβλιοθήκες και ενότητες. " Καθώς είναι εύκολο να κατανοηθεί, ο κώδικας είναι πιο εύκολο να διατηρηθεί, προσθέτει.

Ο Python, λέει ο Chachra, είναι δυναμικά δακτυλογραφημένος και ευέλικτος, με κωδικό που είναι λιγότερο λεκτικό. Ωστόσο, αναφέρει τη δυναμική πληκτρολόγηση ως πιθανό αρνητικό (βλ. Παρακάτω).

Διαδίκτυο ευκαιριών πραγμάτων. Η Python μπορεί να γίνει δημοφιλής για το Διαδίκτυο πραγμάτων, καθώς βασίζονται σε αυτό νέες πλατφόρμες όπως το Raspberry Pi, λέει ο Carbonnelle. Η τεκμηρίωση του Raspberry Pi αναφέρει τη γλώσσα ως "μια υπέροχη και ισχυρή γλώσσα προγραμματισμού που είναι εύχρηστη (ευανάγνωστη και γράψτε) και με το Raspberry Pi μπορείτε να συνδέσετε το έργο σας με τον πραγματικό κόσμο. "

Ασύγχρονα οφέλη κωδικοποίησης. Ο Python, λέει ο Deibel, "είναι υπέροχο για τη σύνταξη ασύγχρονου κώδικα, ο οποίος αντί να χρησιμοποιεί το νήμα χρησιμοποιεί έναν βρόχο συμβάντος για να δουλεύει σε μικρές μονάδες." Αυτός ο κώδικας, λέει, είναι συχνά πιο εύκολο να γράφεται και να συντηρείται χωρίς να προκαλεί σύγχυση στη διαμάχη των πόρων, στα αδιέξοδα κ.λπ.

Η προσέγγιση πολλαπλών προτύπων είναι καλύτερη από την Java. Η προσέγγιση προγραμματισμού της Python δεν είναι τόσο περιορισμένη όσο η Java, λέει ο Carbonnelle. "Για παράδειγμα, δεν χρειάζεται να δημιουργήσετε μια τάξη OO για να εκτυπώσετε το" Hello world "στην Python - πρέπει να το κάνετε στην Java." Σε αντίθεση με την Java, το Python είναι πολυπαραδειγματικό και υποστηρίζει στυλ OO, διαδικαστικού και λειτουργικού προγραμματισμού, λέει. (Η Java πρόσθεσε πρόσφατα λειτουργικές δυνατότητες στην Java 8.)

"Στην Python, όλα είναι ένα αντικείμενο", λέει ο Brian Curtin, μέλος του διοικητικού συμβουλίου του Python Software Foundation και βασικός συνεργάτης του CPython. "Είναι δυνατό να γράφετε εφαρμογές στο Python χρησιμοποιώντας διάφορα παραδείγματα προγραμματισμού, αλλά αυτό σημαίνει ότι γράφετε έναν πολύ σαφή και κατανοητό αντικειμενοστρεφή κώδικα."

Μειονεκτήματα της Python

Η ταχύτητα μπορεί να είναι ένα ζήτημα. "Επειδή είναι μια ερμηνευμένη γλώσσα, είναι συχνά πολλές φορές πιο αργή από τις μεταγλωττισμένες γλώσσες", λέει ο Curtin. "Ωστόσο, επιστρέφει στο διαχωρισμό της γλώσσας από το χρόνο εκτέλεσης. Ορισμένα σημεία αναφοράς του κώδικα Python εκτελούνται κάτω από το PyPy τρέχουν γρηγορότερα από τον αντίστοιχο κώδικα C ή άλλους."

"Ένα πιθανό μειονέκτημα της Python είναι η αργή ταχύτητα εκτέλεσης", λέει ο Carbonnelle. Αλλά πολλά πακέτα Python έχουν βελτιστοποιηθεί με την πάροδο των ετών και εκτελούνται με ταχύτητα C, λέει.

Η απόδοση, λέει ο Chachra, "είναι πιο αργή σε σύγκριση με παλαιότερες γλώσσες όπως C / C ++ και ακόμη και νεότερες όπως το Go."

Απουσία από φορητούς υπολογιστές και προγράμματα περιήγησης. "Η Python υπάρχει σε πολλές πλατφόρμες διακομιστών και επιτραπέζιων υπολογιστών, αλλά είναι αδύναμη στον φορητό υπολογιστή. Πολύ λίγες εφαρμογές smartphone έχουν αναπτυχθεί με την Python", λέει ο Carbonnelle. "Είναι επίσης σπάνια ορατό στην πλευρά του πελάτη μιας εφαρμογής Web."

Η Python δεν βρίσκεται στα προγράμματα περιήγησης στο Web, σημειώνει ο Deibel. "Είναι πραγματική ντροπή. Υπάρχει brython, αλλά δεν νομίζω ότι μπορεί να χρησιμοποιηθεί σε πραγματικό κόσμο." Η Python είναι δύσκολο να ασφαλιστεί και γι 'αυτό δεν βρίσκεται στα προγράμματα περιήγησης, προσθέτει. "Δεν υπάρχει ακόμη ένα καλό ασφαλές sandbox / jail για την Python και νομίζω ότι θεωρείται βασικά αδύνατο για το CPython (η τυπική εφαρμογή).

Περιορισμοί σχεδιασμού. Οι λάτρεις της Python ανέφεραν πολλά ζητήματα με το σχεδιασμό της γλώσσας. Επειδή η γλώσσα πληκτρολογείται δυναμικά, απαιτεί περισσότερες δοκιμές και έχει σφάλματα που εμφανίζονται μόνο κατά το χρόνο εκτέλεσης, λέει ο Chachra.

Το παγκόσμιο κλείδωμα διερμηνείας της Python, εν τω μεταξύ, σημαίνει ότι μόνο ένα νήμα μπορεί να έχει πρόσβαση στα εσωτερικά της Python κάθε φορά, λέει ο Deibel. "Αυτό μπορεί να είναι λιγότερο σημαντικό αυτές τις μέρες, καθώς μπορείτε τόσο εύκολα να δημιουργήσετε εργασίες για να διαχωρίσετε διαδικασίες χρησιμοποιώντας τη λειτουργική μονάδα πολλαπλής επεξεργασίας ή να γράψετε αντί για ασύγχρονο κώδικα."

Ο Curtin λέει ότι υπάρχουν μερικές συμβάσεις σχετικά με τη χρήση του Python, αλλά το σημαντικό κενό είναι αυτό που επιβάλλεται από τον διερμηνέα. "Η δομή των προγραμμάτων Python πρέπει να είναι συνεπής, οπότε όταν οι αγκύλες ή άλλα αναγνωριστικά επιτρέπουν στον χρήστη περισσότερη ελευθερία σε άλλες γλώσσες, η εσοχή είναι αυτό που έχει σημασία όταν πρόκειται για Python."