Ακόμα κι όταν πλησιάζει τα 40 χρόνια ζωής, η C++ παραμένει μια από τις πιο επιτυχημένες γλώσσες προγραμματισμού στον κόσμο. Είναι πιθανό να έχετε χρησιμοποιήσει εφαρμογές γραμμένες σε C++, όπως προγράμματα περιήγησης Chrome και Firefox, πολλούς μεταγλωττιστές, MongoDB, Photoshop, OpenOffice, MySQL και πολλές μηχανές παιχνιδιών και τα περισσότερα παιχνίδια AAA. Εάν είστε προγραμματιστής, η γνώση της C++ μπορεί να ανοίξει κάθε είδους ευκαιρίες.
Ο Bjarne Stroustrup, ο δημιουργός της C++, απαριθμεί πολλούς περισσότερες εφαρμογές C++ στην ιστοσελίδα του. Σύμφωνα με όλες τις ενδείξεις, η γλώσσα είναι επίσης μελλοντική, με τους προγραμματιστές να τη χρησιμοποιούν για τη δημιουργία εφαρμογών εικονικής πραγματικότητας (VR) μέσω του Unreal Engine, του Internet of Things (IoT) και εφαρμογών κρυπτονομισμάτων. Αυτό Έρευνα Έθνους Προγραμματιστή από το τρίτο τρίμηνο του 2021 δείχνει ότι 7,5 εκατομμύρια προγραμματιστές χρησιμοποιούν C/C++.
Ωστόσο, η ανάπτυξη επιτραπέζιων υπολογιστών (ένα από τα βασικά κανάλια για την ανάπτυξη της C++) έχει μειωθεί σε δημοτικότητα τα τελευταία χρόνια σε σύγκριση με την ανάπτυξη ιστού και κινητών. Σύμφωνα με αυτό το Πανεπιστήμιο της Φλόριντα infographic, από τα 20 κορυφαία τμήματα Επιστήμης Υπολογιστών των ΗΠΑ, η C++ διδάσκεται μόνο σε δύο από αυτά. Χάνει τελικά η C++ δύναμη;
Η C++ είναι περίπλοκη
Εάν έχετε περιηγηθεί ποτέ σε ιστότοπους όπως ο C++ FAQ, Θα ξέρετε πόσο περίπλοκη μπορεί να είναι η C++. Ξέρω πολλή C++ αλλά ποτέ δεν έμαθα τον μεταπρογραμματισμό προτύπων, για παράδειγμα. Με προηγούμενες εκδόσεις της γλώσσας, ένα κόμμα σε λάθος μέρος θα μπορούσε να προκαλέσει εκατοντάδες σφάλματα μεταγλώττισης. Από την C++ 11 και μετά, η γλώσσα βελτιώθηκε (για παράδειγμα, μετακίνηση σημασιολογίας για αλλαγή ιδιοκτησίας και αναφορές rvalue), αλλά εξακολουθεί να υπάρχει μια απότομη καμπύλη εκμάθησης.
Η C++ έχει ανακτήσει κάποια δημοτικότητα από τότε που εμφανίστηκε η C++ 11 και ο όρος Modern C++ επινοήθηκε για αυτήν. Η Microsoft έχει μια σελίδα περιγράφοντας τα χαρακτηριστικά που συνθέτουν τη σύγχρονη C++.
Ανάπτυξη Νέας Εφαρμογής
Πίσω στη δεκαετία του ’90, εάν αναπτύσσατε μια μεγάλη εφαρμογή για υπολογιστές, η C++ θα ήταν πιθανότατα η πρώτη σας επιλογή. Όταν εμφανίστηκε η Java, έγινε γρήγορα η γλώσσα που χρησιμοποιείται για επιχειρηματικές εφαρμογές, αφήνοντας τον προγραμματισμό χαμηλού επιπέδου και συστήματος στην C++. Το C# προέκυψε μετά από μια νομική διαμάχη της Microsoft σχετικά με τη χρήση της Java.
Το 2006, η Microsoft παρουσίασε το C++/CLI, το οποίο ήταν C++ για το .NET. για .NET, τώρα είχατε την επιλογή C++, C# ή VB.NET. Αλλά η C++/CLI δεν έβαλε φωτιά στον κόσμο. είναι ακόμα διαθέσιμο σε Visual Studio 2022αλλά δεν ξέρω κανέναν που να το χρησιμοποιεί.
Τα τελευταία χρόνια, έχουμε δει την άνοδο νεότερων γλωσσών προγραμματισμού που θα μπορούσαν να αντικαταστήσουν τη C++ για στοιχεία συστήματος χαμηλού επιπέδου, συμπεριλαμβανομένου του Rust, το οποίο προσφέρει ασφάλεια και ασφάλεια εξαλείφοντας τις υπερχειλίσεις buffer και τις διαρροές μνήμης (και είναι πολύ πιο εύκολο στην εκμάθηση από τη C++ ).
Υπάρχει η πεποίθηση από ορισμένους ότι η προηγούμενη χρήση της C και της C++ οδήγησε σε μια συνεχή ροή τρωτών σημείων στις εφαρμογές και ότι είναι καιρός να αυξηθεί η ασφάλεια του λογισμικού χρησιμοποιώντας ασφαλέστερες γλώσσες όπως η Rust. Mark Russinovich, CTO της Microsoft Azure και ιδρυτής της SysInternals, ανέβασε στο Twitter πέρυσι: «Ήρθε η ώρα να σταματήσετε την έναρξη νέων έργων σε C/C++ και να χρησιμοποιήσετε το Rust για εκείνα τα σενάρια όπου απαιτείται γλώσσα εκτός GC».
Όμως, παρ’ όλα αυτά, η C++ εξακολουθεί να είναι ισχυρή. Μην περιμένετε να εξαφανιστεί σύντομα. Οποιοδήποτε μεγάλο έργο που χρησιμοποίησε C++ δεν πρόκειται να το ξαναγράψει σε άλλη γλώσσα. Είναι αμφίβολο ότι θα μπορούσαν να δικαιολογήσουν το χρόνο ή το κόστος για αυτό.
C++ Going Forward
Μαζί με την κυκλοφορία της C++ 11 ήρθε μια αλλαγή σε έναν κύκλο κυκλοφορίας τριών ετών με βελτιώσεις και νέες δυνατότητες στην C++ 14, 17 και 20. Οι συγγραφείς μεταγλωττιστών χρειάζονται χρόνο για να εφαρμόσουν αυτές τις νέες δυνατότητες, αλλά μπορείτε να δείτε τι υποστηρίζεται σε αυτό σελίδα υποστήριξης μεταγλωττιστή. Το GCC και το Clang συνήθως ηγούνται του πακέτου με τους μεταγλωττιστές της Intel και της Microsoft να χτυπούν τα τακούνια τους. Νομίζω ότι θα περάσουν ένα ή δύο χρόνια ακόμη μέχρι να υποστηρίξουν πλήρως αυτοί οι μεταγλωττιστές C++ 23 και φυσικά υπάρχουν οι C++ 26 και C++ 29 επίσημη σελίδα κατάστασης.
συμπέρασμα
Το Rust δεν αποτελεί άμεση απειλή για τη C++, καθώς είναι ακόμα πολύ καινούργιο και δεν υπάρχουν ακόμη τόσες πολλές εργασίες Rust… αλλά περιμένετε να αλλάξει σιγά σιγά. Παρ’ όλα αυτά, θα στοιχηματίζω ότι η C++ θα είναι διαθέσιμη για τις επόμενες δεκαετίες, ειδικά δεδομένου του τεράστιου όγκου του κληροδοτημένου κώδικα εκεί έξω.