Γιατί ρε συ αφορίζεις αμέσως τον συνομιλητή σου χωρίς να δεις την οπτική του ?
Ένα πρόβλημα που έχει η C++ είναι ότι με τα χρόνια έχει υλοποιήσει τα κέρατά της και είναι χαώδης. Ένα πρόβλημα μπορεί να λυθεί με 15 διαφορετικές υποδομές της C++ οι οποίες δεν έχουν όλες το ίδιο επίπεδο βελτιστοποίησης από τον compiler. Ακόμη και καλοί προγραμματιστές πολλές φορές πέφτουν σε παγίδες. Αντίθετα η C είναι πάρα πολύ απλή γλώσσα με αποτέλεσμα α) να είναι λίγες οι κακές πρακτικές που μπορείς να χρησιμοποιήσεις και β) ο compiler να μπορεί να την βελτιστοποιήσει καλύτερα (το οποίο βοηθιέται ακόμη περισσότερο και από το α)
Μετά υπάρχει και ένα άλλο θέμα. Δεν διαφωνώ ότι στους gcc, clang, msvc, κτλ γίνεται τρομερή δουλειά και (στις περισσότερες περιπτώσεις) θα βελτιστοποιήσουν πάρα πολύ καλά τον C++ κώδικα και η απόδοσή του θα είναι σχεδόν ίδια με τον αντίστοιχο C κώδικα. Δεν υπάρχουν όμως μόνο αυτοί οι compilers. Είναι αδύνατο ο denisun να έχει εμπειρία από κάποια embedded πλατφόρμα στην οποία ο c++ compiler να είναι της πλάκας* και να παράγει εκτελέσιμα που να έχουν τεράστια διαφορά στην απόδοση ?
Εν γένει πιστεύω ότι έχει γίνει πολύ καλή δουλειά στους c++ compilers και όντως δεν θα έχει μεγάλη διαφορά το εκτελέσιμο του c++ compiler σε x86 / x86_64 αλλά υπάρχουν όμως περιπτώσεις στις οποίες το αποτέλεσμα σε c++ θα είναι χειρότερο για αυτό έγραψα επειδή δεν μου άρεσε ο κατευθείαν αφορισμός σου.
Edit: Για να μην παρεξηγηθώ, δεν είχα κανένα σκοπό να μειώσω την δουλειά των ανθρώπων. Δεν μου άρεσε το "της πλάκας" που έγραψα απλά ήταν το πιο απλό που μου ήρθε στο μυαλό να γράψω. Αυτό που ουσιαστικά εννοούσα ήταν ότι υπάρχουν compilers που αναπτύσσονται από μια ομάδα 4-5 ατόμων οπότε δεν μπορούμε να περιμένουμε να είναι τόσο αποδοτικοί όσο ο gcc.
Εμφάνιση 16-30 από 31
Θέμα: Γιατι c c++ ;
-
30-09-17, 19:49 Απάντηση: Γιατι c c++ ; #16"I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
30-09-17, 20:08 Απάντηση: Γιατι c c++ ; #17
Η συζήτηση αυτή έχει γίνει πολλές φορές σε τεράστια επίπεδα από πολύ σοβαρούς ανθρώπους και γνώστες και δεν σκοπεύω να αναπτύξω επιχειρήματα εδώ μέσα σε μία συζήτηση που δεν έχει νόημα.
Στοιχηματίζω 1000 ευρώ με όποιον θέλει να φτιάξει στα Windows ένα μεγάλο πρόγραμμα με C (όχι παραμύθια command line) με το Visual Studio και εγώ να κάνω το ίδιο πρόγραμμα με C++ και να το συγκρίνουμε. Για παράδειγμα μόλις τελείωσα ένα network asio driver... όποιος γουστάρει να τον φτιάξει με C και αν είναι πιο γρήγορο και δουλεύει κιόλας, πήρε ένα δωράκι.
-
30-09-17, 20:24 Απάντηση: Γιατι c c++ ; #18
-
01-10-17, 10:46 Απάντηση: Γιατι c c++ ; #19
O turboirc, αν και κάπως κυνικός, είναι σωστός.
Η C++ είναι υπερσύνολο της C. Δεν είναι τυχαίο ότι όταν πρωτοβγήκε η C++, πολλοί την έλεγαν C με κλάσεις. Επομένως, το να ισχυρίζεται κανείς ότι η C είναι γρήγορη αλλά η C++ είναι αργή, είναι απλά χαζό.
Ωστόσο, η C++ συντακτικά και ιδιαίτερα με τις τελευταίες προσθήκες (ISO C++17), έχει πλέον μεγαλώσει πάρα πολύ. Αυτό έχει τα εξής αποτελέσματα:
1. Είναι πολύ πιο εύκολο να φτιάξει κανείς έναν καλό compiler της C, από το να φτιάξει έναν καλό compiler της C++ (που να υποστηρίζει τα τελευταία features της γλώσσας).
2. Είναι πολύ πιο εύκολο να γράψει κανείς ένα καλό πρόγραμμα σε C (από άποψη ταχύτητας-χώρου), από το να γράψει το ίδιο καλό πρόγραμμα σε C++. Επίσης στη C, λόγω του μικρότερου συντακτικού, εντοπίζονται πολύ πιο εύκολα τυχόν inefficiencies στα διάφορα σημεία του κώδικα, σε σχέση με τη C++ (λόγω των abstractions που έχει).
Με βάση τα παραπάνω, καταλαβαίνει κανείς γιατί η C είναι και θα συνεχίσει να είναι η dominant γλώσσα στο low-level systems programming.NetBSD Rocks!
http://www.netbsd.org
-
01-10-17, 13:07 Απάντηση: Γιατι c c++ ; #20
Απορώ με τόσο "έμπειρους" προγραμματιστές σαν τον αγαπητό turboirc, πώς δεν αναφέρθηκε ότι η C με την C++ είναι δύο διαφορετικές γλώσσες. Το οτι μοιάζει το συντακτικό δεν σημαινει ότι έχουν την οποιαδήμοτε σχέση μεταξύ τους. Περισσότερα εδώ.
Αν νομίζεις ότι μπορείς να το κάνεις καλύτερα, απόδειξέ το. Μή μένεις μόνο στα λόγια.
-
01-10-17, 14:13 Απάντηση: Γιατι c c++ ; #21
Προφανώς άλλα λέμε και άλλα καταλαβαίνουν μερικοί.
Όταν μιλάμε για ταχύτητα, δεν μιλάμε για προγραμματάκια λογιστηρίου, αποθήκης κλπ.
Ούτε ακόμα για συστήματα υπολογισμού φόρου κλπ.
Μιλάμε για αλγόριθμους που για να βγάλουν αποτέλεσμα θα πρέπει να τρέξουν για ώρες ίσως και μέρες.
πχ αλγόριθμοι κρυπτογράφησης κλπ.
Όποιος λοιπόν δεν ασχολήθηκε με τέτοια θέματα και θεωρεί ότι μιλάμε για το εάν η cout είναι το ίδιο γρήγορη με την printf τότε απλά δεν έχει καταλάβει τι σημαίνει ταχύτητα.
Καλό είναι λοιπόν να μην γράφετε αερολογίες και τέτοιου είδους βαρύγδουμπα του στυλ "ναι είναι το ίδιο γρήγορες" όπως επίσης ότι η μία είναι υποσύνολο της άλλης, γιατί απλά εκτίθεστε.
Και επειδή δεν μου αρέσουν οι θεωρίες...
Όποιος θέλει μπορεί να υλοποιήσει τον πολύ απλό md5 με c και c++, να τον τρέξει για Χ-χαρακτήρες (~ μερικές ώρες) και να μας πει και σε εμάς τους ανίδεους τα αποτελέσματα που βρήκε.
Διαφορετικά τα είπα/άκουσα/μου είπανε/το διάβασα... δεν μου λένε τίποτε.| "Anyone can build a fast CPU.
| The trick is to build a fast system."
|____________Seymour Cray...
-
01-10-17, 14:41 Απάντηση: Γιατι c c++ ; #22
Τι σημαίνει low level systems programming ? Kernel driver?
Το (1) δεν με ενδιαφέρει, ο compiler είναι πλέον καλός.
Το (2) ήδη έβαλα στοίχημα για όποιον το καταφέρει. Από ότι φαίνεται εδώ μέσα όλοι θεωρητικοί φυσικοί σπούδασαν αλλά δεν ξέρουν να κουνήσουν μία μπετούγια. Βρες μου έναν από εδώ μέσα που έχει γραψει κώδικα.
Ναι εννοείται, η C Και η C++ δεν έχουν καμία σχέση μεταξύ τους, απλά τις μπερδεύεις με την BASIC και την COBOL ίσως.
Χαζομάρες. Η C++ είναι σχεδον superset της C. Μάλλον νομίζεις ότι για να κάτσω να υλοποιήσω το (απαρχαιωμένο και επικίνδυνο αλλά ακόμα σε χρήση σε σαβουροκώδικα) md5 Θα κάτσω να χρησιμοποιήσω std::map. Προφανώς και έχεις μείνει στο linux development command line της εποχής του 90 και αυτών που έφτιαξε ο Stroustroup.
Η C++ είναι superset (εκτός απο ελάχιστες μικροδιαφορές) και, κατά συνέπεια, σχεδόν όλοι οι C κώδικες είναι C++ κώδικες.
Παιδιά βαρέθηκα. Το στοίχημα ισχύει για όποιον νομίζει ότι μπορεί.
Αντιος.
-
01-10-17, 15:40 Απάντηση: Γιατι c c++ ; #23
Ναι, όπως ανέφερα και πιο πριν, θεωρώ τη C καταλληλότερη από τη C++, μόνο για να γράφει κανείς device drivers και λειτουργικά συστήματα. Όπως επίσης και για τον προγραμματισμό embedded συστημάτων (π.χ. microcontrollers).
Δεν διαφωνώ, υπάρχουν εξαιρετικοί C++ compilers, proprietary (Microsoft, Intel, IBM) και open-source (g++, clang++).
Εδώ μάλλον δεν κατάλαβες ακριβώς, αυτό που εννοούσα. Ας το ξεκαθαρίσω λοιπόν:
Αρκετός κόσμος μπορεί να φτάσει, σε ένα πολύ καλό επίπεδο C developer.
Πολύ λιγότερος κόσμος μπορεί να φτάσει στο αντίστοιχο πολύ καλό επίπεδο C++ developer.
Όσον αφορά το στοίχημα, θα έχει πράγματι ενδιαφέρον, αν κάποιος σηκώσει το γάντι...NetBSD Rocks!
http://www.netbsd.org
-
01-10-17, 16:27 Απάντηση: Γιατι c c++ ; #24
Αφενός, όταν ο turboirc αφορίζει ολόκληρο το φόρουμ με λόγια του στυλ "βρες μου έναν που να γράφει κώδικα" λες και μόνο αυτός προγραμματίζει από ολόκληρη την ελλάδα και οι υπόλοιποι γράφουν κώδικες τύπου "δώσε όνομα, γειά σου τάδε", δεν νομίζω να ανοίγει σε κάποιον η διάθεση να σηκώσει το γάντι.
Αφετέρου, κανένα ενδιαφέρον δεν θα έχει επειδή το μόνο που θα δείξει είναι πόσο καλός ή κακός προγραμματιστής είναι το Χ άτομο στο συγκεκριμένο αντικείμενο σε σχέση με τον turboirc. Για παράδειγμα αν εγώ που δεν έχω ιδέα από Windows APIs (και γνωρίζω μόνο πολύ βασικά πράγματα από c++) κάτσω και γράψω ένα άθλιο asio driver σε c++ που έχει χάλια απόδοση θα σημαίνει ότι η C++ δεν είναι καλή ?
Αν ο turboirc που γνωρίζει το αντικείμενο κάτσει ο ίδιος και γράψει τον asio driver σε C χρησιμοποιώντας καλές πρακτικές τότε _ίσως_ δείξει κάτι το εγχείρημα. Και εκείνο που θα δείξει θα είναι απλά πόση διαφορά έχει ο MSVC στους συγκεκριμένους κώδικες c και c++ και όχι γενικά συμπεράσματα για τις δύο γλώσσες."I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
01-10-17, 16:37 Απάντηση: Γιατι c c++ ; #25
Το βασικο προβλημα ολων εδω μεσα ειναι οτι θεωρουν C++ οτι εχει να κανει σχεση με αντικειμενα, templates κλπ. Και οι απλες συναρτησεις C++ ειναι. Η διαφορα με την C++ δεν ειναι στην ταχυτητα εκτελεσης, που ειναι ιδια και για τις δυο γλωσσες, αλλα στο τεραστιο κοστος επιπλεον που εχει να φτιαξεις κατι σε C που στη C++ θελει λιγες γραμμες, οταν αυτο χρειαζεται.
Φυσικα οι περισοτεροι δεν αντιμετωπισαν ποτε κατι τετοιο, οποτε γιατι να καταλαβουν τη διαφορα;
Εξ ου και ενα καρο exploits σε απαρχαιωμενο κωδικα του παρελθοντος. Στα συγχρονα προγραμματα εχουν μειωθει κατα πολυ τα bugs.
Οι περισσοτεροι εχουν μαθει λανθασμενα στο πανεπιστημιο οτι οπου βλεπω συναρτησεις ειναι C και οπου βλεπω objects και templates ειναι C++. Γιατι φυσικα στο πανεπιστημιο συνηθως διδασκονται πρωτα απλη C -> τεραστιο λαθος και επισης διδασκονται λανθασμενα οτι η C++ γινεται translate σε C, αρα πιο αργη.
Και φυσικα, η C++ ειναι πολυ δυσκολοτερη για τον μεσο προγραμματιστη, οποτε και ειτε θα μεινει στη C (και με καποιο αναλογο μπαζο οπως το debugging by printf()) ειτε θα παει σε καμια αλλη γλωσσα.
Οσο για τις παρατηρησεις σου για το στοιχημα, δεν εχω αλλο τροπο εδω μεσα να αποδειξω αυτα που λεω. Δεν ειναι συνεδριο οποτε και για να μιλησει καποιος θελει επιχειρηματα και βιβλιογραφια, εδω ειναι ενα απλο φορουμ και ο καθενας μπορει να λεει οτι θελει. Και ναι, αν φτιαξω τον ASIO driver σε C θα τρεχει το ιδιο ισως γρηγορα (αν υποθεσουμε οτι τα optimizations ειναι σωστα) αλλα θα μου κοστισει πολυ περισσοτερο σε χρονο, ασφαλεια, αξιοπιστια και maintenance. Και η steinberg θα με ξηλωσει αργα η γρηγορα.Τελευταία επεξεργασία από το μέλος turboirc : 01-10-17 στις 16:46.
-
01-10-17, 16:46 Απάντηση: Γιατι c c++ ; #26
Αυτό το ποστ σου είναι τελείως διαφορετικό από τα αφοριστικά προηγούμενα και συμφωνώ απολύτως. Να προσθέσω κιόλας ότι σε κάποιες σχολές μετά την μετάβαση από C σε C++ δεν διδάσκουν καν C++ αλλά C με cout/cin
Όσον αφορά το bold συμφωνώ και σε αυτό. Στην C θα αναγκαστείς να υλοποιήσεις από την αρχή ένα κάρο πράγματα που υπάρχουν στην C++ και θα φας χρόνο. Πριν όμως δεν προέβαλες αυτό σαν επιχείρημα αλλά ότι οποιοδήποτε κώδικα σε C σου δώσουν, εσύ θα τον γράψεις σε C++ και θα τρέχει πιο γρήγορα."I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
01-10-17, 16:53 Απάντηση: Γιατι c c++ ; #27
-
01-10-17, 17:05 Απάντηση: Γιατι c c++ ; #28
Δεν σου είπα να αναπτύξεις κώδικα για να τον πουλήσεις.
Για δοκιμή σου το είπα.
Προφανώς και δεν έχεις ιδέα από τέτοιου είδους προγραμματισμό.
Και μόνο η επιμονή σου (που τις σφραγίζεις μάλιστα και με χαρακτηρισμούς) σε πράγματα που δεν γνωρίζεις, δείχνει πως είσαι πολύ μακριά από το πνεύμα του προγραμματιστή.
Θα μπορούσες πολύ απλά να δοκιμάσεις αυτό που προανέφερα ως πρόκληση και να με διορθώσεις σε όλα γράφω.
Παρ όλα αυτά επιμένεις δαιμονικά ("το σφάλλειν ανθρώπινον, το εμμένειν σατανικόν") στις απόψεις σου απλά επαναλαμβάνοντας τα ίδια και τα ίδια.
Αφού λοιπόν τοποθετείς τον εαυτό σου σε μια τέτοια εωσφορική κατάσταση όπου δεν δέχεσαι τίποτε άλλο παρά μόνο την ίδια σου την άποψη σου... καλώς κάνεις και μας αποχαιρετάς.
Δεν έχει πραγματικά κανένα νόημα να συζητάμε (λάθος μου... να μην δεχόμαστε τις θεωρίες σου).| "Anyone can build a fast CPU.
| The trick is to build a fast system."
|____________Seymour Cray...
-
01-10-17, 19:34 Απάντηση: Γιατι c c++ ; #29
Λες ο Linus Torvalds να μην ξέρει τι του γίνεται;;;; χμμμμ.....
- - - Updated - - -
Η πρόκληση ειναι μια παπαριά και μισή. Γιατί ειναι στο δικό του πεδίο, και το έχει ήδη κάνει. Γιατί να μην γίνει το αντίθετο; Ο μίστερ turboirc λέει ότι χρησιμοποιεί ετοιμες βιβλιοθήκες και σιγά μην κάτσει να υλοποιήσει απο την αρχή. Ναι, για το 90% μην πω παραπάνω, ισχύει αυτό που λέει. Αλλά υπάρχει και αυτό το μαμημένο 10% (ή και πολύ λιγότερο), ΠΟΥ ΔΕΝ ΙΣΧΥΕΙ
Πραγματική ιστορία παρακάτω
Spoiler:
QoS: Τι είναι τούτο το πράγμα; Ευρυζωνικά: Μύθοι και πραγματικότητα Οδηγίες Εγκατάστασης Oracle 10G σε Linux (RHEL4)Περι αλόγιστης χρήσης Ιντερνετ
Ikariam.gr anon@AnonCity Guzoos@76:12
-
01-10-17, 19:40 Απάντηση: Γιατι c c++ ; #30
Ας φέρεις τον linus να συζητήσουμε τότε, εσύ τι θες;
Παρόμοια Θέματα
-
Free C/C++ compiler, υπάρχει?
Από eyw στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 36Τελευταίο Μήνυμα: 07-01-18, 21:00 -
string C++ και C-string
Από panosdoken_ στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 10Τελευταίο Μήνυμα: 02-09-17, 12:06 -
Απεγκατασταση 5-6 Visual C++ απο λιστα προγραμματων
Από CrazyPhoto στο φόρουμ WindowsΜηνύματα: 8Τελευταίο Μήνυμα: 30-11-16, 23:41 -
Thomson TG782 νέο firmware 8.C.D.C
Από qaz031 στο φόρουμ ADSLΜηνύματα: 7Τελευταίο Μήνυμα: 27-10-16, 16:17
Bookmarks