Δημοσιεύτηκε: 24 Φεβ 2012, 12:26
από migf1
Ilias95 έγραψε:Καλησπέρα.
Θέλοντας να ασχοληθώ σοβαρά με τον προγραμματισμό αποφάσισα να αρχίσω την εκμάθηση μία εκ των C/C++.

Αυτό που θέλω να ρωτήσω είναι, ποιες είναι οι κυριότερες διαφορές των δύο γλωσσών.
Ποια τα πλεονεκτήματα και τα μειονεκτήματα της κάθε μίας;
Έχοντας ασχοληθεί με την python έχω ήδη γνωρίσει τον αντικειμενοστραφή προγραμματισμό αλλά δεν ξέρω αν έχει σημασία αυτό.

Με ποια απ' τις δύο θα μου προτείνατε να ασχοληθώ και γιατί;
Οι στόχοι μου αυτή τη στιγμή είναι καθαρά εκπαιδευτικοί οπότε με ενδιαφέρει να πάρω καλές βάσεις.

Ευχαριστώ εκ των προτέρων.

Καλημέρα Ηλία,

έχω παρατηρήσει πόσο μεθοδικός και αποτελεσματικός είσαι στην ενασχόλησή σου με την Python, η οποία παρεμπιπτόντως είναι εξαιρετική γλώσσα. Σε ότι αφορά την ερώτησή σου, και οι δυο γλώσσες C και C++ είναι παραπάνω από ικανές να σου δώσουν γερές βάσεις, μιας και υποθέτω πως αποφάσισες α) να εξοικειωθείς και με πιο low level πράγματα και β) να εξοικειωθείς με μια procedural γλώσσα.

Θα σου προτείνω κι εγώ C όχι γιατί είναι καλύτερη της C++, αλλά επειδή είναι (πολύ) πιο εστιασμένη και μικρή σε συντακτικό & keywords. Η C++ είναι πραγματικός ωκεανός. Ένα αβαντάζ της C είναι πως συνήθως ότι διαβάζεις αυτό είναι, κάτι που δεν ισχύει π.χ. σε γλώσσες που υποστηρίζουν υπερφόρτωση τελεστών ή/και συναρτήσεων (όπως η C++).

Ερχόμενος από Python στην αρχή θα δυσκολευτείς και με τη C και με τη C++, συχνά μπορεί ακόμα και να απογοητευτείς με τον κόπο που χρειάζεται να καταβάλλεις για να βγάλεις αποτέλεσμα που με την Python θα το έβγαζες σε χρόνο & κόπο λιγότερο από τον μισό. Από την άλλη μεριά, όταν ξεπεράσεις το αρχικό σοκ και προχωρήσεις και λίγο ίσως αρχίσεις να απολαμβάνεις την απόλυτη ελευθερία που έχεις σε όλο το μηχάνημα και τα εξαρτήματά του, είτε σε επίπεδο hardware είτε σε επίπεδο software.

Εφόσον όμως αποφάσισες να ασχοληθείς σοβαρά με τον προγραμματισμό, θεωρώ απαραίτητη τη γνώση της C (προσωπικά την θεωρώ κάτι σαν το αλφάβητο του προγραμματιστή).

ΥΓ1. Το βιβλίο που πρότεινα και στον Starlight είναι εξαιρετικό για να ξεκινήσεις με C. 1-2 σελίδες πριν υπάρχει κάπου ένα link για κατέβασμα σε pdf.
ΥΓ2. Κατόπιν κάποια στιγμή ίσως θελήσεις να εντρυφήσεις και σε functional γλώσσες, όπως π.χ. η Lisp.