C/C++ Languages

Vasilis Vasaitis vvas at hal.csd.auth.gr
Thu Jun 17 18:13:58 EEST 1999


  Αν και το thread αρχίζει να μπαγιατεύει, απ' τη στιγμή που έχω άποψη
για το θέμα δεν μπορώ να αντισταθώ στον πειρασμό να την εκθέσω. :-)
Θα μείνω πιο πολύ σε πράγματα που είπαν άλλοι (ουσιαστικά είναι ένα
συνολικό reply).

  Λοιπόν, καταρχήν κάποιοι ισχυρίστηκαν ότι δεν τίθεται θέμα, αφού C και
C++ είναι λίγο πολύ το ίδιο πράγμα. Εγώ θα έλεγα ότι η C και η C++ είναι
δύο γλώσσες με αρκετές διαφορές στη δομή, τη σύνταξη και τα
χαρακτηριστικά (αν και η C++ «τυχαίνει» να έχει τη C ως υποσύνολό της),
όμως πάνω απ' όλα με πολύ μεγάλες διαφορές στη φιλοσοφία
προγραμματισμού. Γιατί ως γνωστόν δεν αρκεί να ξέρεις να «μιλάς» μια
γλώσσα, πρέπει να μπορείς κιόλας να «σκέφτεσαι» σ' αυτήν. Μάλιστα,
κάποιος τρόπος προγραμματισμού μπορεί στη C να είναι κοινή πρακτική, ενώ
στη C++ να θεωρείται κακό στυλ, ή και αντίστροφα. Αυτό ισχύει για όλες
τις γλώσσες, όχι μόνο γι' αυτές τις δύο που ένα κομμάτι κώδικα μπορεί να
είναι και C και C++. Αν δεν μπεις στο πετσί μιας γλώσσας, δεν μπορείς να
την εκμεταλλευτείς στο έπακρο.

  Επίσης αρκετοί έσπευσαν να κακολογήσουν την C++, λέγοντας ότι πέρα από
την αντικειμενοστραφή σχεδίαση δεν προσφέρει και τίποτα σπουδαίο, οπότε
δεν αξίζει τον κόπο. Κι όμως, η C++ έχει και αρκετά αξιόλογα μη
αντικειμενοστραφή χαρακτηριστικά (αναφέρω συνοπτικά: references,
function overloading, εξ' ορισμού τιμές σε ορίσματα συναρτήσεων,
δηλώσεις μεταβλητών οπουδήποτε, και βέβαια τα C++-style comments :-) ).
Επίσης η αντικειμενοστραφής σχεδίαση, μαζί με όλα τα παράγωγα
(κληρονομικότητα, operator overloading, templates, exceptions,
namespaces) νομίζω ότι κάνουν τη ζωή του προγραμματιστή πολύ πιο εύκολη.
Τέλος, η Standard Library (κάποιοι θα την ξέρουν ως STL - Standard
Template Library) δίνει άπειρες δυνατότητες, ειδικά με τα διάφορα
container classes (vector, list, stack, map και δε συμμαζεύεται).

  Βέβαια και η C έχει σαφή πλεονεκτήματα έναντι της C++, τα κυριότερα
των οποίων είναι: (1) μικρότερα προγράμματα, (2) ταχύτερα προγράμματα,
(3) το ότι δεν είναι OO!

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

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

  Ο Τάσος είπε ότι η C++ δεν είναι και τόσο OO, σε σχέση με άλλες
γλώσσες. Τάσο, θα μπορούσες να το αναλύσεις λίγο περισσότερο αυτό;
Προσωπικά δεν είχα ποτέ επαφή με άλλες OO γλώσσες, και η C++ μου
φαίνεται αρκετά πλήρης από άποψης αντικειμενοστραφών χαρακτηριστικών.

  Ο Πάνος ρώτησε για κανένα καλό βιβλίο για C++. Εγώ προτείνω το `The
C++ Programming Language' του Stroustrup, οπωσδήποτε την τρίτη έκδοση.
Προσωπικά είμαι πολύ ευχαριστημένος από το συγκεκριμένο βιβλίο.

  (Α, ίσως να μην φαίνεται από το μήνυμα αυτό, αλλά προσωπικά προτιμώ
την C από την C++ στις περισσότερες περιπτώσεις).

-- 
Vasilis Vasaitis
vvas at hal.csd.auth.gr

Nuke them till they glow, then shoot them in the dark.


--
====================================================================
Gia boithia (h na diagrafhte) e-mail sto majordomo at hellug.gr
Ta archives tis listas einai sto http://lists.hellug.gr/archives
prin steilete kapoia erothsh psakte mipos exei hdh apanththei.
Gia opoiodipote problima stilte e-mail ston owner-linux-greek-users at hellug.gr
====================================================================



More information about the Linux-greek-users mailing list