Πίνακας περιεχομένων[Κρύβω][Προβολή]
Σε μια προσπάθεια να αντικαταστήσουν την αξιοσέβαστη αλλά υποτονική C++, οι ερευνητές της Google παρουσίασαν μια ολοκαίνουργια «πειραματική» γλώσσα προγραμματισμού ανοιχτού κώδικα που ονομάζεται Carbon.
Η Carbon θα μπορούσε να χρησιμεύσει ως διάδοχος γλώσσα της C++, μια γλώσσα που παρέχει ένα απλό σημείο εκκίνησης για τους προγραμματιστές σε μια νεότερη γλώσσα που αντιμετωπίζει τις σύγχρονες έννοιες ανάπτυξης, όπως η ασφάλεια της μνήμης και τα γενικά.
Αυτό θα ήταν παρόμοιο με το πώς η Microsoft κατασκεύασε το Typescript για να ενημερώσει το JavaScript και το Kotlin για να ενισχύσει τις αδυναμίες της Java.
Η Google έχει αναπτύξει διάφορες γλώσσες προγραμματισμού όλα αυτά τα χρόνια, μερικές από τις οποίες έχουν κερδίσει σημαντική φήμη και εξέχουσα θέση.
Για παράδειγμα, το Golang (ή απλώς Go) αναπτύχθηκε για να διευκολύνει τη δημιουργία διακομιστών και κατανεμημένων συστημάτων και στη συνέχεια έγινε αποδεκτό από το ευρύ κοινό.
Το βέλος γλώσσα προγραμματισμού, το οποίο δημιουργήθηκε ως υποκατάστατο JavaScript, δεν έγινε πολύ γνωστό μέχρι την κυκλοφορία του Flutter.
Ο Chandler Carruth, ένας υπάλληλος της Google, παρουσίασε την ιδέα του για μια νέα γλώσσα προγραμματισμού που ονομάζεται Carbon στις 19 Ιουλίου 2022, στο συνέδριο Cpp North στο Τορόντο, σύμφωνα με τον Conor Hoekstra, που παρευρέθηκαν και ηχογράφησαν τις διαφάνειες.
Προκειμένου να ρυθμίσει το σενάριο, ο Carruth έδειξε πώς πολλές από τις πιο δημοφιλείς γλώσσες προγραμματισμού της σημερινής εποχής είχαν απογόνους που επιτρέπουν στους προγραμματιστές να είναι γρήγορα παραγωγικοί και επίσης να επωφελούνται από το σύγχρονο σχεδιασμό γλώσσας.
Ας ξεκινήσουμε με μια γενική εισαγωγή της γλώσσας προγραμματισμού Carbon, συμπεριλαμβανομένων των δυνατοτήτων της, του σκοπού της εφεύρεσης της Google και άλλων.
Εισαγωγή στη γλώσσα προγραμματισμού Carbon
Στις 19 Ιουλίου 2022, η Google αποκάλυψε την Carbon ως τη νεότερη γλώσσα προγραμματισμού που είχε δημιουργήσει. Προοριζόταν να αντικαταστήσει την C++ πειραματικά.
Χάρη σε μια σύστημα γενόσημων, το οποίο εξαλείφει την ανάγκη διπλού ελέγχου του κώδικα για κάθε παρουσίαση, το Carbon θα κατασκευαστεί σε βάση σύγχρονων αρχών προγραμματισμού.
Μέχρι το τέλος του έτους, ο σχεδιασμός σχεδιάζει να παρέχει μια βασική λειτουργική έκδοση (έκδοση 0.1).
Η ακεραιότητα της μνήμης είναι ένα κρίσιμο στοιχείο που λείπει από τη C++. Μία από τις κύριες πηγές ελαττωμάτων ασφαλείας είναι τα προβλήματα πρόσβασης στη μνήμη.
Η ανάπτυξη δυναμικών ελέγχων ορίων, η μεγαλύτερη παρακολούθηση μη αρχικοποιημένων καταστάσεων και η πλήρης προεπιλεγμένη λειτουργία δημιουργίας εντοπισμού σφαλμάτων είναι όλοι οι στόχοι της ομάδας Carbon. Οι δημιουργοί σκοπεύουν να δημιουργήσουν ένα ασφαλές υποσύνολο Carbon με την πάροδο του χρόνου.
Ωστόσο, τα ακόλουθα είναι μερικά κρίσιμα χαρακτηριστικά της νέας γλώσσας προγραμματισμού:
- Για να ονομάσετε τύπους, χρησιμοποιήστε εκφράσεις.
- Ισχυρά γενόσημα με ελέγχους ορισμού
- Οι τύποι πραγματοποιούν ειδικά διεπαφές
- φράσεις εισαγωγής και βασική γραμματική
- Οι δείκτες επιτρέπουν απεριόριστη πρόσβαση και μετάλλαξη.
- Οι τιμές για τις παραμέτρους εισαγωγής συναρτήσεων είναι μόνο για ανάγνωση.
- Ο ριζικός χώρος ονομάτων είναι το πακέτο.
- Τα API μπορούν να εισαχθούν χρησιμοποιώντας τα ονόματα των πακέτων τους.
- Μια μέθοδος δηλώνεται μέσω μιας παραμέτρου ρητού αντικειμένου.
- Οι τάξεις είναι τελικές από προεπιλογή. υπάρχει μόνο μία κληρονομιά
Χαρακτηριστικά του άνθρακα
Σύγχρονο και αναπτυσσόμενο
- Οι αναβαθμίσεις μεταξύ των εκδόσεων Carbon είναι απλές και βασισμένες σε εργαλεία.
- Ισχυρές γλωσσικές βάσεις, ειδικά αν έχετε χρησιμοποιήσει C++, και απλό στην εκμάθηση
- Ασφαλέστερες βάσεις και μια βήμα προς βήμα προσέγγιση σε ένα υποσύνολο ασφαλές για τη μνήμη
Καλωσορίζοντας την κοινότητα του ανοιχτού κώδικα
- Μια κοινότητα που προσπαθεί να είναι ζεστή, αποδεκτή και ελκυστική
- Οι στόχοι και οι προτεραιότητές του είναι διακριτές και ισχυρή διακυβέρνηση
- Μια στρατηγική all-in-one με μεταγλωττιστή, βιβλιοθήκες, τεκμηρίωση, εργαλεία, διαχείριση πακέτων και πολλά άλλα
Γρήγορο και συμβατό με C++
- Εργαστείτε μαζί με το Κωδικός C ++ έχετε ήδη, συμπεριλαμβανομένης της κληρονομιάς και των προτύπων
- Με LLVM, απόδοση συγκρίσιμη με C++ και πρόσβαση χαμηλού επιπέδου σε bit και διευθύνσεις
- Κατασκευές που είναι γρήγορες και επεκτάσιμες και συμβατές με τα υπάρχοντα συστήματα κατασκευής C++
Γιατί η Google δημιούργησε τη γλώσσα προγραμματισμού Carbon;
Το λογισμικό κρίσιμο για την απόδοση συνεχίζει να γράφεται κυρίως σε C++, το οποίο έχει τεράστιες και διευρυνόμενες βάσεις κώδικα και επενδύσεις.
Ωστόσο, δυσκολεύεται να προχωρήσει και να ανταποκριθεί στις απαιτήσεις των προγραμματιστών όπως αναφέρθηκε παραπάνω, σε μεγάλο βαθμό λόγω της συσσώρευσης τεχνολογικού χρέους πολλών ετών.
Είναι εξαιρετικά δύσκολο να βελτιωθεί σταδιακά η C++ λόγω του τεχνικού χρέους που έχει συγκεντρώσει καθώς και λόγω δυσκολιών στη διαδικασία εξέλιξής της.
Η ιδανική προσέγγιση για την επίλυση αυτών των ζητημάτων είναι να ξεκινήσετε με μια ισχυρή γλωσσική βάση, όπως ένα σύγχρονο σύστημα γενικών, δομοστοιχειωτή δομή κώδικα και συνεπή, απλή σύνταξη, αντί να κληρονομήσετε άμεσα την παράδοση της C ή της C++.
Go, Swift, Kotlin, Rust και πολλές άλλες σύγχρονες γλώσσες προσφέρουν ήδη μια εξαιρετική εμπειρία ανάπτυξης. Οι προγραμματιστές που είναι σε θέση να χρησιμοποιούν μία από αυτές τις τρέχουσες γλώσσες θα πρέπει να το κάνουν.
Δυστυχώς, η υιοθέτηση και η μετανάστευση από την C++ παρεμποδίζονται σοβαρά από τα σχέδια αυτών των γλωσσών. Αυτά τα εμπόδια περιλαμβάνουν τα γενικά έξοδα απόδοσης και τροποποιήσεις στον ιδιωματικό σχεδιασμό του λογισμικού.
Το Carbon δεν είναι μια προσπάθεια σταδιακής βελτίωσης της C++. μάλλον, είναι μια διάδοχη γλωσσική στρατηγική. Η εστίασή του είναι στη διαλειτουργικότητα της C++, καθώς και στην ευρεία αποδοχή και μετεγκατάσταση για προγραμματιστές και βάσεις κωδικών που χρησιμοποιούν αυτήν τη στιγμή τη C++.
Μια γλώσσα αντικατάστασης C++ πρέπει να έχει:
- Οι επιδόσεις συγκρίσιμες με την C++ είναι ένα κρίσιμο χαρακτηριστικό για τους προγραμματιστές.
- Μια διαχειρίσιμη καμπύλη μάθησης και επίπεδο εξοικείωσης για προγραμματιστές C++
- Μετανάστευση που είναι επεκτάσιμη και περιλαμβάνει κάποια ιδιωματική μετάφραση κώδικα C++ από πηγή σε πηγή.
- Παρόμοια εκφραστικότητα και υποστήριξη για την αρχιτεκτονική και το σχεδιασμό του τρέχοντος λογισμικού.
- Διαλειτουργικότητα με C++ που είναι απρόσκοπτη και αμφίδρομη, επιτρέποντας σε κάθε βιβλιοθήκη να υιοθετήσει το Carbon χωρίς να χρειάζεται να μεταφέρει την υπόλοιπη στοίβα.
Με αυτήν τη στρατηγική, η Google προσθέτει στο οικοσύστημα που υπάρχει ήδη για τη C++ και ενσωματώνει τρέχουσες επενδύσεις, βάσεις κωδικών και κοινότητες ανάπτυξης.
Μερικές γλώσσες έχουν υιοθετήσει αυτήν την προσέγγιση για διάφορα οικοσυστήματα και το Carbon επιδιώκει να παίξει παρόμοια λειτουργία με τη C++ σε αυτές τις περιπτώσεις:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – Carbon
C++ VS Carbon Code
Το Carbon θα πρέπει να έχει χαμηλή καμπύλη εκμάθησης εάν είστε ήδη προγραμματιστής C++. Αποτελείται από ένα σταθερό σύνολο γραμματικών κατασκευών που θα πρέπει να ακούγονται φυσικές και να είναι απλές στην ανάγνωση και κατανόηση.
Ένα παράδειγμα κώδικα C++:
Αυτός ο κωδικός άνθρακα αντιστοιχεί σε:
Άνθρακας εναντίον Σκουριάς
Μια άλλη σύγχρονη γλώσσα που έχει σχεδιαστεί ρητά για να ανταποκρίνεται στις απαιτήσεις των εφαρμογών απόδοσης με ασφάλεια στη μνήμη ονομάζεται Rust.
Γιατί λοιπόν να μην χρησιμοποιήσετε απλώς το Rust;
Ενώ ορισμένοι υποστηρίζουν ότι το Rust, το οποίο ξεκίνησε ως έργο της Mozilla και στη συνέχεια μεγάλωσε για να έχει μεγάλο κοινό, είναι διάδοχος της C++, ο Carruth αμφιβάλλει αν ο παράλληλος εξακολουθεί να ισχύει.
Η Rust είναι αναμφίβολα μια φανταστική γλώσσα με την οποία μπορεί κανείς να ξεκινήσει ένα νέο έργο, αλλά καθώς δεν διαθέτει την «αμφίδρομη διαλειτουργικότητα» γλωσσών όπως η Java και η Kotlin, είναι δύσκολο να γίνει σταδιακή μετάβαση σε αυτήν.
Ο Carruth έδωσε μια διάλεξη στο CPP North και ενθάρρυνε τους ανθρώπους που χρησιμοποιούσαν ήδη το Rust να συνεχίσουν να το κάνουν. Οι προγραμματιστές που έχουν ήδη μεγάλες βάσεις κώδικα C++ που είναι δύσκολο να μετατραπούν σε Rust θα πρέπει να χρησιμοποιούν Carbon.
Συγκεκριμένα, το Carbon είναι αυτό που ο Carruth ανέφερε ως «γλώσσα διάδοχο», η οποία είναι κατασκευασμένη πάνω από ένα υπάρχον οικοσύστημα, σε αυτήν την περίπτωση τη C++.
Για το σκοπό αυτό, το Carbon προορίζεται να είναι πλήρως συμβατό με τον τρέχοντα κώδικα C++, ακόμα κι αν έχει πολλούς στόχους με το Rust, όπως να βοηθά τους προγραμματιστές στη δημιουργία «εφαρμογών κρίσιμων για την απόδοση».
Επιπλέον, προορίζεται να κάνει τη μετακίνηση από C++ σε Carbon όσο το δυνατόν πιο απλή.
Συμπέρασμα
Τέλος, οι δημιουργοί της γλώσσας Carbon έκαναν μια προσπάθεια να δώσουν προσοχή στη διαδικασία δημιουργίας. Ο κωδικός του έργου είναι διαθέσιμος για αίτημα και αποθηκεύεται ανοιχτά στο Github, και η κουλτούρα της ορίζεται ως περιεκτική και ανοιχτή τόσο στους ιδιώτες όσο και στον τομέα της πληροφορικής.
Η ομάδα του Carbon θεώρησε ότι το Carbon έπρεπε να είναι ένα αυτόνομο έργο που καθοδηγείται από την κοινότητα και όχι μόνο ένα έργο που τροφοδοτείται από την Google προκειμένου να αναπτυχθεί στο μέλλον.
Η Caruth πρόσθεσε ότι παρά το ενδιαφέρον πολλών επιχειρήσεων πληροφορικής, αυτή η ιδέα βρίσκεται ακόμα σε πειραματικό στάδιο.
Αφήστε μια απάντηση