Go vs Python: Ποιες οι Βασικές Διαφορές

Αρκετά συχνά, όταν κάποιος είναι νέος στο χώρο του προγραμματισμού, αναζητά πληροφορίες σε forums, σε πλατφόρμες όπως το medium, στο github, προκειμένου να αποφασίσει ποια είναι η κατάλληλη γλώσσα προγραμματισμού για να ξεκινήσει να μαθαίνει.

Υπάρχουν πολλές γλώσσες για κάθε σκοπό και έργο που θα μπορούσε κάποιος να σκεφτεί.

Δύο δημοφιλείς γλώσσες είναι φυσικά η Python και η Go, τις οποίες θα αναλύσουμε στο άρθρο αυτό.

Στο σημερινό λοιπόν οδηγό θα δούμε:

- Τι είναι η Python

- Τι είναι η Go

- Ποιες οι βασικές τους διαφορές

Ας ξεκινήσουμε με δύο βασικούς ορισμούς.

Τι Είναι η Python

Η Python αναπτύχθηκε το 1991 και είναι μια γενικού σκοπού, υψηλού επιπέδου γλώσσα προγραμματισμού.

Διαθέτει δυναμικούς τύπους, ενσωματωμένες δομές δεδομένων και μπορεί να υποστηρίξει τεχνικές τόσο διαδικαστικού όσο και αντικειμενοστραφή προγραμματισμού (object-oriented).

Αποτελεί ιδανική επιλογή για γρήγορη ανάπτυξη εφαρμογών καθώς και μοντέλων machine learning.

Λόγω των δυνατοτήτων της χρησιμοποιείται ιδιαίτερα από data scientists, data analysts και data engineers.

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

Τι Είναι η Go

Η Go (γνωστή και με την ονομασία Golang) είναι μια γλώσσα προγραμματισμού ανοιχτού κώδικα που αναπτύχθηκε από την ίδια τη Google το 2009.

Οι Robert Griesemer, Rob Pike, and Ken Thompson σχεδίασαν τη Go, μια στατικά δακτυλογραφημένη μεταγλωττισμένη γλώσσα, διαδικαστικού προγραμματισμού, με σκοπό να μειώσουν όσο ήταν εφικτό την πολυπλοκότητα της διαχείρισης της υποδομής κώδικα εντός της Google.

Η Go αποτελεί μια γλώσσα που υποστηρίζει ταυτόχρονο προγραμματισμό, επιτρέποντας συνάμα την ταυτόχρονη εκτέλεση πολλαπλών διαδικασιών. 

Συντακτικά, η γλώσσα Go είναι εμπνευσμένη σε μεγάλο βαθμό από τη C.

Τώρα που είδαμε ορισμένα βασικά στοιχεία για τις δύο αυτές γλώσσες, ας συνεχίσουμε βλέποντας λίγο πιο αναλυτικά τις μεταξύ τους διαφορές.

Go vs Python: 4 Βασικές Διαφορές

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

Ας δούμε λοιπόν πώς διαφέρει η Python από την Go.

   Διαφορά #1: Αναγνωσιμότητα

Η Python είναι γνωστή για την απλή και ευανάγνωστη σύνταξή της.

Αυτός άλλωστε είναι και ο λόγος που προτιμάται από αρχάριους στον προγραμματισμό.

Από την άλλη πλευρά, η Go παρότι είναι σχετικά εύκολη στην ανάγνωση, υπάρχει μόνο ένας τρόπος να ολοκληρωθεί μια ορισμένη εργασία.

Αυτό συμβαίνει λόγω των αυστηρότερων κανόνων της, που δεν επιτρέπουν για παράδειγμα, την δημιουργία περιττών μεταβλητών.

Για αυτό, μπορεί να υπάρχει συνέπεια αλλά δεν διαθέτει την ευελιξία της Python.

   Διαφορά #2: Ταυτοχρονισμός (Concurrency)

Η Go δημιουργήθηκε με γνώμονα τον ταυτοχρονισμό, προκειμένου να βοηθήσει τους developers στη Google να προσφέρουν επεκτάσιμες λύσεις και να καλύψουν τις ανάγκες της εταιρείας.

Η έννοια του ταυτοχρονισμού υποδηλώνει ότι μια εφαρμογή “τρέχει” περισσότερα από ένα tasks ταυτόχρονα, όμως μόνο το ένα τρέχει στο frontend, ενώ τα υπόλοιπα μπορούν να τρέχουν στο background.

Η υποστήριξη της Python για ταυτοχρονισμό και παραλληλισμό είναι περιορισμένη λόγω του GIL (Global Interpreter Lock), το οποίο περιορίζει τη χρήση πολλαπλών threads για παράλληλη εκτέλεση.

Ωστόσο, η Python διαθέτει βιβλιοθήκες όπως το asyncio για να αντιμετωπίσει αυτόν τον περιορισμό.

   Διαφορά #3: Δημοτικότητα

Η Python και η Go είναι δύο γλώσσες με μεγάλη δημοτικότητα.

Ωστόσο, η Go είναι αρκετά νεότερη συγκριτικά με την Python. Η δημοτικότητα και η κοινότητα της Python ξεπερνά σε μεγάλο βαθμό αυτή της Go.

Όπως μπορούμε να δούμε και στο ακόλουθο γράφημα του Google trends, η Python (μπλε) παρουσιάζει ανοδική πορεία και πολύ μεγαλύτερη ζήτηση συγκριτικά με την Go (κόκκινο).

Επίσης, σύμφωνα με το TIOBE Programming Community index, ένα δείκτη της δημοτικότητας των γλωσσών προγραμματισμού, η Python βρίσκεται σταθερά στην πρώτη θέση, ενώ η Go στην 11η θέση ως προς τη δημοτικότητα.

   Διαφορά #4: Χρήση

Η Python διαθέτει ένα μεγάλο και ανεπτυγμένο οικοσύστημα από πολλές βιβλιοθήκες και frameworks όπως το TensorFlow, PyTorch, Pandas και NumPy.

Χρησιμοποιείται ιδιαίτερα για web development, scientific computing, ανάλυση δεδομένων και για machine learning.

Αντίθετα, η Go λόγω της εγγενούς υποστήριξής για ταυτοχρονισμό, όπως είδαμε νωρίτερα, χρησιμοποιείται ιδιαίτερα στο κλάδο του cloud computing και για τη δημιουργία APIs.

Ακόμη, χρησιμοποιείται στο τομέα του προγραμματισμού συστημάτων (system programming) και των microservices.

Συνοψίζοντας

Μιλήσαμε λοιπόν αναλυτικά για τη Python και τη Go αναλύοντας τις βασικές διαφορές ανάμεσά τους.

Η επιλογή μεταξύ Python και Go θα εξαρτηθεί από τις ανάγκες και προτιμήσεις του καθενός.

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

Αν λοιπόν θες και εσύ να μάθεις τα πάντα για τη Python, τη πιο δημοφιλή γλώσσα προγραμματισμού και να αποκτήσεις ουσιαστική πρακτική γνώση, ανακάλυψε το Python for Data Science Course της Big Blue και ξεκίνα άμεσα!

Big Blue Data Academy