Επιθυμήσατε ποτέ να δημιουργήσετε πιο γρήγορες και πιο αποτελεσματικές εφαρμογές, αλλά ανακαλύψατε ότι οι τυπικές γλώσσες προγραμματισμού δεν είναι σε θέση να ανταποκριθούν στις απαιτήσεις σας;
Αυτό είναι όταν η γλώσσα Mojo μπαίνει στο παιχνίδι.
Η Mojo είναι μια νέα γλώσσα προγραμματισμού που αναπτύχθηκε από την Modular, μια εταιρεία που ειδικεύεται στην υποδομή AI.
Είναι ειδικά σχεδιασμένο για να επιτρέπει στους προγραμματιστές να κατασκευάζουν ταχύτερες και πιο ισχυρές εφαρμογές για πολλές περιπτώσεις χρήσης, συμπεριλαμβανομένης της ανάπτυξης τεχνητής νοημοσύνης. Σε αυτήν την ανάρτηση, θα δούμε τι Mojo είναι, πώς λειτουργεί και γιατί πρέπει να το χρησιμοποιήσετε στο επόμενο έργο σας.
The Origins of Mojo
Οι δημιουργοί του Mojo αναγνώρισαν την ανάγκη για μια γλώσσα προγραμματισμού που συνδύαζε τη χρηστικότητα της Python με την ταχύτητα και την αποτελεσματικότητα της C.
Και, καθιέρωσαν μια γλώσσα που θα επέτρεπε στους προγραμματιστές να κατασκευάζουν εφαρμογές υψηλής απόδοσης χωρίς να χρειάζεται να μάθουν τυπικές γλώσσες περιγραφής υλικού.
Ως αποτέλεσμα, δημιούργησαν το Mojo, το οποίο προορίζεται να είναι πλήρως συμβατό με το οικοσύστημα της Python παρέχοντας ταυτόχρονα ταχύτητα επιπέδου C.
Modular: The Organization Behind Mojo Language
Λοιπόν, ποιοι είναι οι δημιουργοί αυτής της φουτουριστικής γλώσσας;
Η Modular είναι μια παγκοσμίως κορυφαία startup υποδομής τεχνητής νοημοσύνης που δημιουργήθηκε από τους Chris Lattner και Tim Davis, οι οποίοι συναντήθηκαν στην Google και συνειδητοποίησαν ότι η υπερβολικά περίπλοκη και κατακερματισμένη υποδομή περιόριζε την παγκόσμια επιρροή της AI.
Ο στόχος και ο στόχος του Modular είναι να επανεξετάσει την υποδομή AI για να ενισχύσει την ανθρωπότητα. Η κουλτούρα και οι αρχές τους δίνουν προτεραιότητα στους πελάτες, το λογισμικό παραγωγής υψηλής ποιότητας και την παροχή ουσιαστικών αποτελεσμάτων
Τα γκολ του Mojo
Το Mojo σχεδιάστηκε για να παρέχει ένα μοναδικό μοντέλο προγραμματισμού για επιταχυντές μηχανικής μάθησης.
Η Modular αποφάσισε ότι το Mojo θα πρέπει να επιτρέπει τον προγραμματισμό γενικής χρήσης, επειδή οι σημερινές CPU διαθέτουν τανυστές και άλλους επιταχυντές τεχνητής νοημοσύνης. Επιπλέον, επειδή η Python χρησιμοποιείται εκτενώς στη μηχανική μάθηση και σε άλλους τομείς, η Modular επέλεξε να ενταχθεί στο οικοσύστημα της Python.
Η χρήση της Python διευκόλυνε περαιτέρω τον σχεδιασμό της γλώσσας. Επειδή η πλειοψηφία της σύνταξης είχε ήδη καθοριστεί, η εταιρεία θα μπορούσε αντ' αυτού να επικεντρωθεί στην κατασκευή του μηχανισμού μεταγλώττισης και στην παροχή εξειδικευμένων δυνατοτήτων προγραμματισμού.
Σημαντικά χαρακτηριστικά που πρέπει να λάβετε υπόψη
προγραμματισμού
Προοδευτικοί Τύποι
Η δυνατότητα προοδευτικών τύπων της γλώσσας Mojo επιτρέπει στους προγραμματιστές να χρησιμοποιούν σχολιασμούς τύπων ενίσχυση της αποτελεσματικότητας και ελέγχους σφαλμάτων.
Οι προγραμματιστές μπορούν να σχεδιάσουν πιο αποτελεσματικό κώδικα που εντοπίζει λάθη κατά το χρόνο μεταγλώττισης, εξαλείφοντας σφάλματα και βελτιώνοντας την αποτελεσματικότητα, παρέχοντας πιο εμπεριστατωμένες πληροφορίες τύπου.
Αφαιρέσεις Μηδενικού Κόστους
Οι προγραμματιστές μπορούν να αναλάβουν τον έλεγχο της αποθήκευσης κατανέμοντας δεδομένα σε δομές, χάρη στις αφαιρέσεις μηδενικού κόστους που παρέχονται από τη γλώσσα Mojo.
Καταργώντας την απαίτηση για επιπλέον εκχωρήσεις μνήμης, αυτή η δυνατότητα βελτιώνει την αποτελεσματικότητα του κώδικα και μειώνει την ποσότητα του κώδικα λέβητα.
Ενσωματωμένη αυτόματη ρύθμιση γλώσσας
Η ενσωματωμένη στη γλώσσα λειτουργία αυτόματου συντονισμού στο Mojo Language επιτρέπει στους προγραμματιστές να προσδιορίζουν αυτόματα τις ιδανικές τιμές των παραμέτρων για να επωφεληθούν από το υλικό-στόχο.
Με αυτήν τη λειτουργία, είναι πιο εύκολο να βελτιστοποιήσετε τον κώδικα χωρίς να χρειάζεται να τον προσαρμόσετε χειροκίνητα για κάθε συνδυασμό υλικού.
Η γλώσσα Mojo είναι ένα ευέλικτο και αποτελεσματικό εργαλείο για την ανάπτυξη τεχνητής νοημοσύνης, καθώς παρέχει επίσης όλη τη δύναμη της MLIR (Ενδιάμεση αναπαράσταση πολλαπλών επιπέδων), έναν παράλληλο ετερογενή χρόνο εκτέλεσης και γρήγορους χρόνους κατασκευής.
Παραλληλισμός
Το Mojo χρησιμοποιεί το MLIR, το οποίο επιτρέπει στους προγραμματιστές να χρησιμοποιούν διανύσματα, νήματα και μονάδες υλικού για AI για παραλληλισμό. Το Mojo υποστηρίζει παράλληλη επεξεργασία σε πολλούς πυρήνες σε αντίθεση με την εκτέλεση με ένα νήμα της Python.
Με επιτάχυνση 35,000x σε σχέση με την Python, το Mojo ξεπερνά άλλες γλώσσες όσον αφορά την ταχύτητα.
Διαλειτουργικότητα
Η διαλειτουργικότητα με ολόκληρο το οικοσύστημα της Python είναι ένα από τα μοναδικά πλεονεκτήματα του Mojo. Αυτό σημαίνει ότι μπορείτε να συνδυάσετε το Mojo με οποιεσδήποτε αυθαίρετες βιβλιοθήκες, όπως οι Numpy και Matplotlib, καθώς και τον εξατομικευμένο σας κώδικα.
Για παράδειγμα, μπορείτε να οπτικοποιήσετε δεδομένα στον κώδικα Mojo χρησιμοποιώντας τη βιβλιοθήκη Python Matplotlib.
Εκτατο
Το Mojo είναι επίσης αρκετά ευέλικτο, επιτρέποντας στους χρήστες να προσθέτουν απλά βήματα πριν και μετά την επεξεργασία στα μοντέλα ή να αλλάζουν υπάρχοντα βήματα με νέα.
Για να βελτιώσουν τα μοντέλα τους και τη στοίβα Modular, οι προγραμματιστές μπορούν να χρησιμοποιήσουν τη σύντηξη πυρήνα, την επανεγγραφή γραφημάτων, τις συναρτήσεις σχήματος και άλλες τεχνικές.
Γιατί να το επιλέξεις από την Python;
Η Python είναι μια δημοφιλής γλώσσα ανάπτυξης AI λόγω της ευελιξίας της και των μεταγλωττισμένων βιβλιοθηκών υψηλής απόδοσης. Ωστόσο, είναι σημαντικά πιο αργός από γλώσσες όπως η C++.
Επομένως, οι προγραμματιστές μαθαίνουν να χρησιμοποιούν περιτυλίγματα Python γύρω από πιο γρήγορες γλώσσες για να αποφύγουν τη χρήση της Python για κρίσιμες για την απόδοση περιοχές.
Αυτό οδηγεί στο ζήτημα των δύο γλωσσών, στο οποίο τα μοντέλα πρέπει να μετατραπούν από Python σε ταχύτερη υλοποίηση, όπως το ONNX ή το σενάριο φακού, το οποίο δεν υποστηρίζει όλες τις δυνατότητες της Python. Η Python έχει επίσης προβλήματα απόδοσης και έλλειψη καλής παράλληλης επεξεργασίας.
Ακόμη και έμπειροι προγραμματιστές δυσκολεύονται να μελετήσουν, να διορθώσουν σφάλματα και να αντιμετωπίσουν ζητήματα απόδοσης λόγω του διλήμματος των δύο γλωσσών.
Υπάρχουν επίσης βασικοί περιορισμοί στο τι μπορεί να κάνει η Python λόγω του τρόπου με τον οποίο είναι δομημένη η γλώσσα. Ενώ η υλοποίηση αλγορίθμων που χρησιμοποιούν βασικά στοιχεία στον πραγματικό κόσμο μπορεί να φαίνεται εύκολη, είναι σημαντικά πιο δύσκολη και απαιτεί τη χρήση πιο γρήγορης γλώσσας.
Πως να ξεκινήσεις?
Μπορείτε να αρχίσετε να χρησιμοποιείτε τη Γλώσσα Mojo τώρα στην Playground τους για να ξεκινήσετε. Το Playground που βασίζεται στο JupyterHub δίνει μαθήματα και την ευκαιρία να δημιουργήσετε τον δικό σας κώδικα Mojo, παρόλο που το Mojo είναι ακόμα ένα έργο σε εξέλιξη.
Μπορείτε να εγγραφείτε για πρόσβαση στον ιστότοπό τους για πρόσβαση στην Παιδική χαρά.
Για να επιτύχει τους στόχους απόδοσης, το Mojo χρησιμοποιεί τεχνολογίες μεταγλωττιστών επόμενης γενιάς με ενσωματωμένες τεχνολογίες caching, multithreading και cloud διανομής.
Προσθέτει επιπλέον πρωτόγονα στον προγραμματισμό συστημάτων και φιλοδοξεί να γίνει ένα υπερσύνολο Python με την πάροδο του χρόνου. Για να ξεκινήσετε την κωδικοποίηση με το Mojo, χρησιμοποιήστε τον μεταγλωττιστή Mojo για να εκτελέσετε ένα πρόγραμμα Mojo από το τερματικό με τον ίδιο τρόπο που κάνει η Python.
Η γλώσσα αυτή τη στιγμή βρίσκεται υπό ανάπτυξη και απευθύνεται σε προγραμματιστές με εμπειρία στον προγραμματισμό συστημάτων.
Τύλιξε
Το Mojo θεωρείται υπερσύνολο Python. Και, έχει τη δυνατότητα να φέρει επανάσταση στον προγραμματισμό συνδυάζοντας την απλότητα της Python με την απόδοση της C++ και της Rust.
Μπορεί να εκμεταλλευτεί το πλήρες Βιβλιοθήκη Python οικοσύστημα, επιτρέποντας στους προγραμματιστές να δημιουργούν βιβλιοθήκες υψηλής απόδοσης χωρίς να χρειάζονται C, C++, Rust ή CUDA.
Επιτρέπει την παραγωγή φορητού κώδικα χάρη στις δυνατότητες αυτόματου συντονισμού και μεταπρογραμματισμού σε χρόνο μεταγλώττισης.
Αν και είναι ακόμα ένα έργο σε εξέλιξη, έχει τη δυνατότητα να γίνει ένα τρομερό εργαλείο προγραμματισμού και να μεταμορφώσει τη βιομηχανία προγραμματισμού. Επομένως, θα πρέπει να μείνουμε συντονισμένοι για μελλοντικές εξελίξεις από τη Modular!
Κρις Σάντος
Πιστεύετε ότι ένα άτομο με βασικές έως μέσες γνώσεις θα μπορούσε να ξεκινήσει τις σπουδές του σε αυτή τη νέα γλώσσα; Ή συμβουλεύετε να μελετήσετε πρώτα μια πιο βασική γλώσσα, όπως Javascript ή Python;
İlke Candan Bengi
Γεια σου Chris, συγγνώμη για την καθυστερημένη απάντηση! Πιστεύω ότι η εκ των προτέρων βασική κατανόηση/εμπειρία της Python θα μπορούσε να είναι χρήσιμη πριν ξεκινήσετε με το Mojo.