post

Python el:Εισαγωγή

Contents

Εισαγωγή

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

Η επίσημη εισαγωγή στην Python είναι:

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

Θα εξηγήσω τα περισσότερα από αυτά τα χαρακτηριστικά λεπτομερώς στις επόμενες ενότητες.

Σημείωση
Ο Guido van Rossum, ο δημιουργός της γλώσσας Python, ονόμασε τη γλώσσα από την εκπομπή “Monty Python’s Flying Circus” του BBC. Δεν του αρέσουν ιδιαίτερα τα φίδια τα οποία σκοτώνουν άλλα ζώα για φαγητό τυλίγοντας το σώμα τους γύρω τους και συντρίβοντάς τα.

Χαρακτηριστικά της Python

Απλή
Η Python είναι μια απλή και μινιμαλιστική γλώσσα. Το διάβασμα ενός καλού προγράμματος σε Python είναι σαν το διάβασμα των Αγγλικών, αλλά πολύ αυστηρών Αγγλικών! Αυτή η ομοιότητα της Python με ψευδοκώδικα είναι ένα από τα πιο ισχυρά σημεία της. Σας επιτρέπει να συγκεντρώνεστε στη λύση του προβλήματος αντί στην ίδια τη γλώσσα.
Εύκολη στην εκμάθηση
Όπως θα δείτε, είναι εξαιρετικά απλό να ξεκινήσετε με την Python. Η Python έχει μια ασυνήθιστα απλή σύνταξη, όπως έχει ήδη αναφερθεί.
Ελεύθερη και Ανοικτού Κώδικα
Η Python είναι ένα παράδειγμα ΕΛΛΑΚ (Ελεύθερο Λογισμικό και Λογισμικό Ανοικτού Κώδικα). Με απλά λόγια, μπορείτε να διανείμετε αντίγραφα αυτού του λογισμικού, να διαβάσετε τον πηγαίο κώδικά του, να κάνετε αλλαγές σ’ αυτό και να χρησιμοποιήσετε κομμάτια του σε νέα ελεύθερα προγράμματα. Το ΕΛΛΑΚ βασίζεται στην ιδέα μιας κοινότητας που μοιράζεται τη γνώση. Αυτός είναι ένας από τους λόγους για τους οποίους η Python είναι τόσο καλή -δημιουργήθηκε και βελτιώνεται συνεχώς από μια κοινότητα που το μόνο που θέλει είναι μια καλύτερη Python.
Γλώσσα υψηλού επιπέδου
Όταν γράφετε προγράμματα στην Python, δε χρειάζεται ποτέ να νοιάζεστε για τις χαμηλού επιπέδου λεπτομέρειες όπως η διαχείριση της μνήμης που χρησιμοποιείται από τα προγράμματά σας, κ.λπ.
Φορητή
Λόγω του ανοικτού της κώδικα, η Python έχει υλοποιηθεί (δηλαδή αλλάχθηκε για να λειτουργεί) σε πολλές πλατφόρμες. Όλα τα Python προγράμματά σας μπορούν να δουλέψουν σε οποιαδήποτε από αυτές τις πλατφόρμες χωρίς να χρειάζονται καθόλου αλλαγές αν είστε αρκετά προσεκτικοί ώστε να αποφύγετε να χρησιμοποιήσετε χαρακτηριστικά που εξαρτούνται από κάθε σύστημα.
Μπορείτε να χρησιμοποιήσετε την Python στο Linux, στα Windows, στο FreeBSD, σε Macintosh, στο Solaris, στο OS/2, στην Amiga, στο AROS, στο AS/400, στο BeOS, στο OS/390, στο z/OS, στο Palm OS, στο QNX, στο VMS, στο Psion, στο Acorn RISC OS, στο VxWorks, σε PlayStation, στο Sharp Zaurus, στα Windows CE ακόμα και σε PocketPC!
Διερμηνευόμενη
Εδώ χρειάζονται μερικές εξηγήσεις.
Ένα πρόγραμμα που γράφεται σε μια μεταγλωττιζόμενη γλώσσα όπως η C ή η C++ μετατρέπεται από την πηγαία γλώσσα, για παράδειγμα τη C ή τη C++ σε μια γλώσσα που μιλάει ο υπολογιστής σας (δυαδικός κώδικας δηλαδή 0 και 1) χρησιμοποιώντας ένα μεταγλωττιστή με διάφορες σημαίες και επιλογές. Όταν τρέχετε το πρόγραμμα, ο συνδέτης αντιγράφει το πρόγραμμα στη μνήμη και αρχίζει να το τρέχει.
Η Python, από την άλλη, δε χρειάζεται μεταγλώττιση σε δυαδικό αρχείο. Απλά τρέχετε το πρόγραμμα απ’ ευθείας από τον πηγαίο κώδικα. Εσωτερικά, η Python μετατρέπει τον πηγαίο κώδικα σε μια ενδιάμεση μορφή που ονομάζεται bytecode και μετά το μεταφράζει στη γλώσσα του υπολογιστή και μετά το τρέχει. Όλο αυτό, στην πραγματικότητα κάνει τη χρήση της Python πολύ πιο εύκολη αφού δε χρειάζεται να ανησυχείτε για τη μεταγλώττιση του προγράμματος, τη σύνδεση με τις κατάλληλες βιβλιοθήκες, κ.λπ, κ.λπ. Αυτό επίσης κάνει τα προγράμματα της Python εξαιρετικά φορητά, αφού μπορείτε απλά να αντιγράψετε το πρόγραμμα Python που φτιάξατε σε έναν άλλο υπολογιστή και να δουλέψει έτσι απλά!
Αντικειμενοστρεφής
Η Python υποστηρίζει τόσο το διαδικασιοστρεφή προγραμματισμό (procedure-oriented) όσο και τον αντικειμενοστρεφή προγραμματισμό (object-oriented). Στο διαδικασιοστρεφή προγραμματισμό, το πρόγραμμα δομείται πάνω σε διαδικασίες ή συναρτήσεις οι οποίες δεν είναι τίποτε άλλο από επαναχρησιμοποιήσιμα κομμάτια από προγράμματα. Στις αντικειμενοστρεφείς γλώσσες, το προγράμματα δομούνται πάνω σε αντικείμενα τα οποία συνδυάζουν δεδομένα και λειτουργικότητα. Η Python έχει έναν πολύ ισχυρό αλλά πολύ απλό τρόπο για αντικειμενοστρεφή προγραμματισμό, ειδικά όταν συγκρίνεται με μεγάλες γλώσσες όπως η C++ ή η Java.
Επεκτάσιμη
Αν χρειάζεστε ένα κρίσιμο κομμάτι κώδικα να τρέχει πολύ γρήγορα ή αν πρέπει να έχετε ένα κομμάτι ενός αλγόριθμου που να μην είναι ανοικτό, τότε μπορείτε να προγραμματίσετε εκείνο το κομμάτι σε C ή C++ και μετά να το χρησιμοποιείτε από το Python πρόγραμμά σας.
Ενσωματώσιμη
Μπορείτε να ενσωματώσετε την Python μέσα στα προγράμματα σε C/C++ για να τους δώσετε δυνατότητες ‘scripting’ για τους χρήστες σας.
Εκτεταμένες βιβλιοθήκες
Η Πρότυπη βιβλιοθήκη της Python είναι πραγματικά τεράστια. Μπορεί να σας βοηθήσει να κάνετε διάφορα πράγματα σχετικά με κανονικές εκφράσεις, δημιουργία τεκμηρίωσης, δοκιμές μονάδων, νημάτωση, βάσεις δεδομένων, περιηγητές ιστού, CGI, FTP, email, XML, XML-RPC, HTML, αρχεία WAV, κρυπτογράφηση, γραφικές διεπαφές χρήστη (GUI -graphical user interfaces), Tk, και άλλα πράγματα που εξαρτούνται από το σύστημα. Θυμηθείτε ότι όλα αυτά είναι διαθέσιμα όποτε είναι εγκατεστημένη η Python. Αυτό ονομάζεται φιλοσοφία ‘Batteries Included’ της Python.
Επιπλεόν από την πρότυπη βιβλιοθήκη, υπάρχουν διάφορες άλλες βιβλιοθήκες υψηλής ποιότητας όπως η wxPython , η Twisted, η Python Imaging Library και πολλές άλλες.

Η Python είναι πραγματικά μια συναρπαστική και ισχυρότατη γλώσσα. Έχει το σωστό συνδυασμό απόδοσης και χαρακτηριστικών που κάνουν τη δημιουργία προγραμμάτων σε Python διασκεδαστική και εύκολη.

Γιατί όχι Perl;

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

Αν είχατε προσπαθήσει ποτέ να γράψετε ένα μεγάλο πρόγραμμα σε Perl, θα είχατε απαντήσει αυτή την ερώτηση από μόνοι σας! Με άλλα λόγια, τα προγράμματα σε Perl είναι πολύ εύκολα όταν είναι μικρά, και η γλώσσα διαπρέπει σε μικρά hacks και σενάρια εντολών που “κάνουν τη δουλειά τους”. Ωστόσο, γρήγορα γίνεται ανυπόφορη όταν αρχίσετε να γράφετε μεγαλύτερα προγράμματα, και μιλάω από την προσωπική μου εμπειρία δημιουργίας μεγάλων προγραμμάτων σε Perl για τη Yahoo!

Συγκρινόμενα με την Perl, τα προγράμματα σε Python είναι σίγουρα πιο απλά, πιο καθαρά, πιο εύκολα στη συγγραφή και άρα πιο κατανοητά και εύκολα στη συντήρηση. Πραγματικά θαυμάζω την Perl και τη χρησιμοποιώ καθημερινά για διάφορα πράγματα αλλά όταν γράφω ένα πρόγραμμα πάντα αρχίζω να το σκέφτομαι με τους όρους της Python επειδή έχει γίνει τόσο φυσική για μένα. Η Perl έχει υποστεί τόσα πολλά hacks και αλλαγές, που μοιάζει σαν να είναι η ίδια ένα τεράστιο (αλλά πολύ τεράστιο) hack. Δυστυχώς, η επερχόμενη Perl 6 δε φαίνεται να φέρνει καθόλου βελτιώσεις σ’ αυτό τον τομέα.

Το μοναδικό και πολύ σημαντικό πλεονέκτημα που νομίζω ότι έχει η Perl, είναι η τεράστια βιβλιοθήκη CPAN -η Comprehensive Perl Archive Network. Όπως υπαινίσσεται και το όνομα, αυτή είναι μια γιγαντιαία συλλογή από αρθρώματα της Perl και είναι πραγματικά δύσκολο να κατανοήσει κανείς το μέγεθος και το βάθος της -μπορείτε να κάνετε οτιδήποτε σ’ έναν υπολογιστή χρησιμοποιώντας αυτά τα αρθρώματα. Ένας από τους λόγους για τους οποίους η Perl έχει περισσότερες βιβλιοθήκες από την Python είναι γιατί υπάρχει εδώ και πολύ περισσότερο καιρό από ότι η Python. Εντούτοις αυτό φαίνεται να αλλάζει με το ολοένα αυξανόμενο Ευρετήριο πακέτων της Python.

Γιατί όχι Ruby;

Αν δεν το ξέρατε ήδη, η Ruby είναι μια ακόμα δημοφιλής, ανοικτού κώδικα, διερμηνεύσιμη γλώσσα προγραμματισμού.

Αν χρησιμοποιείτε ήδη τη Ruby και σας αρέσει, τότε χωρίς αμφιβολία σας προτείνω να συνεχίσετε να τη χρησιμοποιείτε.

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

Τι λένε οι προγραμματιστές

Ίσως να σας ενδιαφέρει να διαβάσετε τι λένε οι σπουδαίοι hackers όπως ο ESR για την Python:

  • Ο Eric S. Raymond είναι ο συγγραφέας του “Ο καθεδρικός και το παζάρι” και είναι επίσης εκείνος που πρότεινε τον όρο Ανοικτός κώδικας. Λέει ότι η Python έγινε η αγαπημένη του γλώσσα προγραμματισμού (άρθρο στα αγγλικά). Αυτό το άρθρο ήταν η πραγματική έμπνευση πίσω από την πρώτη μου επαφή με την Python.
  • Ο Bruce Eckel είναι ο συγγραφέας των διάσημων βιβλίων Thinking in Java και Thinking in C++. Λέει ότι καμιά γλώσσα δεν τον έκανε να νιώσει πιο παραγωγικός από την Python. Λέει ότι η Python είναι ίσως η μόνη γλώσσα η οποία εστιάζει στο να κάνει τα πράγματα πιο εύκολα για τον προγραμματιστή. Διαβάστε την πλήρη συνέντευξή του (στα αγγλικά) για περισσότερες λεπτομέρειες.
  • Ο Peter Norvig είναι ένας γνωστός συγγραφέας της Lisp και Διευθυντής ποιότητας αναζητήσεων στο Google (ευχαριστώ τον Guido van Rossum που μου το ανέφερε αυτό). Λέει ότι η Python πάντα ήταν ένα εσωτερικό κομμάτι του Google. Μπορείτε να το επιβεβαιώσετε αυτό κοιτώντας τις αγγελίες Google Jobs στις οποίες αναγράφεται η γνώση της Python ως απαιτούμενη για μηχανικούς λογισμικού.

Περί της Python 3.0

Η Python 3.0 είναι η νέα έκδοση της γλώσσας. Μερικές φορές θα τη δείτε ως Python 3000 ή Py3K.

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

Αν ήδη έχετε αρκετό κώδικα σε Python 2.x, τότε υπάρχει μια εφαρμογή που θα σας βοηθήσει να μετατρέψετε τον κώδικα από 2.x σε 3.x (σελίδα στα Αγγλικά).

Περισσότερες λεπτομέρειες στα (όλοι οι σύνδεσμοι στα Αγγλικά):


Πίσω στα περιεχόμενα