Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Στο Vim υπάρχουν πάρα πολλά plugins με τα οποία μπορείς να έχεις διάφορα καλούδια... π.χ. file explorer.

 

Το brace matching highlight είναι default plugin (pi_paren). 

 

 

 

Εάν δεν θες sublime, τότε Vim. 

 

 

Επίσης, δεν είχα καμία διάθεση να γίνει flame για γλώσσες. Σόρρυ εάν φάνηκε κάτι τέτοιο, νομίζω όμως ότι για έναν που δεν είναι προγραμματιστής αλλά θέλει να χρησιμοποιήσει τον Η/Υ για να κάνει δουλειά του δεν υπάρχει λόγος να πάει σε plain C. 

 

Τα ίδια low level πράγματα που, ενδεχομένως, τον συγκινούν μπορεί να τα δει και στην C++ αλλά θα έχει και διάφορες ευκολίες που δεν υπάρχουν στην C (κυρίως σε διαχείριση strings και strings concatenation και number to string κτλ). 

 

Συν ότι θα μάθει μία σύγχρονη γλώσσα που, πλέον, χρησιμοποιείται (νομίζω) σε πιο ευρεία κλίμακα από την C. 

 

 

Υ.Γ. Ένα απλό google search για vim plugins: http://spf13.com/post/the-15-best-vim-plugins

Όχι, σε καμία περίπτωση δεν είπα ότι θέλει να αρχίσει flame κάποιος από εμάς :)

 

Συμφωνώ, κατ' αρχήν, με την οπτική σου γωνία. Έχω κάνει αρκετές συζητήσεις και έχω διαβάσει "άπειρα" άρθρα και fora σχετικώς με την επιλογή της γλώσσας. Σε αδρές γραμμές (και ίσως "αφελώς") έχω τα εξής κριτήρια:

α) μικρό και λιτό συντακτικό 

β) ανοικτό πρότυπο 

γ) ισχύς ( => low level ? ίσως... )

δ) σχετική δημοφιλία (=> πληθώρα από tutorials, βιβλιοθήκες, έτοιμα projects και ... άτομα με συμβουλές! :P )

ε) θα είναι η βάση για άλλες, παρόμοιες, γλώσσες (ΑΝ και ΕΦ' ΟΣΟΝ...)

 

Η C++ "κόβεται" -για εμένα βέβαια- (τουλάχιστον) λόγω του α). Από την άλλη μεριά, όλο αυτό είναι ένα πείραμα -μπορεί να μην ευδοκιμήσει! Όσο για το χρήση σε "ευρεία κλίμακα" (ίσως πω κάτι άκυρο) νομίζω ότι αν κρίνουμε από το ΤΙΟΒΕ η C είναι σταθερά πρώτη εδώ και πολλά χρόνια (με διαφορά από την C++ και με την Java να είναι, συνήθως, ανάμεσα).

Ξαναλέω ότι, δεν είμαι ειδικός και εκφράζω μια "χαλαρή", αμιγώς προσωπική άποψη, χάριν της κουβέντας.

 

 

Συμφωνώ με τα παιδιά για τη χρήση vim. Μπορείς να αρχίσεις να μαθαίνεις από τώρα vim. Στην αρχή θα είσαι λίγο αργός/ή, αλλά σε καμιά βδομάδα θα πετάς. Θα δεις ότι πραγματικά άξιζε τον κόπο. Το tutorial είναι ένα μισάωρο και καλύπτει ένα εύρος εντολών οι οποίες είναι hot για την καθημερινή χρήση.

 

Όσον αφορά editor, αν είσαι σε gnome, τότε θα πρότεινα gedit. Έχει αρκετά plugins και κάποια από αυτά πραγματικά σου κάνουν τι ζωή εύκολη (εισαγωγή έτοιμων snippets με συντομεύσεις, python console, line bookmarking, comment shoertcuts κ.α.). Σε σχέση όμως με notepad++ (που είναι για windows) δεν πιάνει μία. Άσε που έχει ένα θέμα με πολύ-πολύ μεγάλα αρχεία. Από KDE έχω δοκιμάσει KATE, ο οποίος είναι καλύτερος από gedit, αλλά πολύ κακό για το τίποτα για μένα. Άσε που στις τελευταίες είναι προβληματικό με το Unity. Και τα δύο είναι σχετικά βαριά προγράμματα, συγκρινόμενα με vim. Δεν έχω δοκιμάσει κάποιον άλλο και τώρα θα ρίξω μία ματιά σε αυτούς που πρότεινες.

Είμαι σε Xfce. Default είναι τα Geany (που δεν μου πολυαρέσει συν ότι δεν φάνηκε να μου δουλεύει η κονσόλα του -ίσως κάνω κάτι λάθος) και το Leafpad (που νομίζω, είναι ό,τι πιο απλό υπάρχει αλλά βράχος σταθερότητας -σε σχέση με το GEdit).

Για αρχή, χρησιμοποιώ Leafpad και nano, αλλά θα μεταβώ σιγά-σιγά σε Vim. 

 

Πάντως για το LightTable έχω ακούσει πολλά καλά λόγια (όπως και για το Brackets) αλλά δεν ξέρω ποιές γλώσσες υποστηρίζουν ακριβώς (συνήθως είναι θολό αυτό) και κατά πόσο είναι σταθερά.

 

Eυχαριστώ και τους δύο.

  • Απαντ. 34
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Αν δεν έχεις πρόβλημα να αφιερώσεις κάποιο χρόνο στην αρχή τότε οι επιλογές είναι δύο. (g)vim ή emacs. Όλα τα υπόλοιπα που έχουν αναφερθεί είναι απλά text editors. Είναι αμφίβολο αν υπάρχει κάποιο feature που των υπόλοιπων editors που να μην υπάρχει σε vim/emacs ενώ υπάρχουν αμέτρητα features που υπάρχουν μόνο σε vim/emacs.

 

Κατ'εμε ο χρόνος που θα αφιερώσεις στην εκμάθηση τους αξίζει με το παραπάνω. Προσωπικα χρησιμοποιώ (και προτείνω) vim αλλά επειδή σε αυτά τα πράγματα δεν υπάρχει σωστό και λάθος, θα πρέπει να σχηματίσεις ίδια γνώμη. Για αυτό, τρέξε τα βασικά tutorials και των δύο (δηλαδή vimtutor και το αντίστοιχο του emacs) και συνέχισε με όποιο σου κάνει καλύτερη εντύπωση. Το ιδανικό βέβαια θα ήταν, αν έχεις και το χρόνο, να δοκιμάσεις να δουλέψεις μια εβδομάδα με vim και άλλη μία με emacs και να αποφασίσεις με ποιον θα συνεχίσεις έχοντας πλέον πραγματική προσωπική εμπειρία και με τους δύο.

  • Like 3
Δημοσ.

Αν δεν έχεις πρόβλημα να αφιερώσεις κάποιο χρόνο στην αρχή τότε οι επιλογές είναι δύο. (g)vim ή emacs. Όλα τα υπόλοιπα που έχουν αναφερθεί είναι απλά text editors. Είναι αμφίβολο αν υπάρχει κάποιο feature που των υπόλοιπων editors που να μην υπάρχει σε vim/emacs ενώ υπάρχουν αμέτρητα features που υπάρχουν μόνο σε vim/emacs.

 

Κατ'εμε ο χρόνος που θα αφιερώσεις στην εκμάθηση τους αξίζει με το παραπάνω. Προσωπικα χρησιμοποιώ (και προτείνω) vim αλλά επειδή σε αυτά τα πράγματα δεν υπάρχει σωστό και λάθος, θα πρέπει να σχηματίσεις ίδια γνώμη. Για αυτό, τρέξε τα βασικά tutorials και των δύο (δηλαδή vimtutor και το αντίστοιχο του emacs) και συνέχισε με όποιο σου κάνει καλύτερη εντύπωση. Το ιδανικό βέβαια θα ήταν, αν έχεις και το χρόνο, να δοκιμάσεις να δουλέψεις μια εβδομάδα με vim και άλλη μία με emacs και να αποφασίσεις με ποιον θα συνεχίσεις έχοντας πλέον πραγματική προσωπική εμπειρία και με τους δύο.

Καλησπέρα.

 

Έμμεσα (μέσω άλλου πακέτου) έχω χρησιμοποιήσει Emacs (βέβαια, για πολύ λίγο). Είναι εξαιρετικό πρόγραμμα, αλλά:

α) "βαρύς" σε σχέση με τον Vim (από το λίγο που είδα)

β) όντως, υπάρχει θέμα με την βασική χρήση του Ctrl...

 

Eπιπλέον, νομίζω ο Vim κάνει και για LaTeX (που σαφώς με ενδιαφέρει). Οπότε σίγουρα θα δοκιμάσω να τον μάθω. Έχω ήδη κατεβάσει δύο tutorials από την σελίδα του Vim.

 

Eυχαριστώ.

Δημοσ.

1. To ctrl μπορείς να το αλλάξεις «θέση». Πχ να κάνεις swap ctrl με caps lock.

2. Ειδικά για LaTeX ο emacs παίζει να είναι καλύτερος από vim. Δες το auctex. Τα αντίστοιχα πακέτα του vim δεν νομίζω ότι είναι και τόσο καλά (αν και έχω πάνω από χρόνο να τα κοιτάξω). Ειδικά και πάλι για LaTeX τσέκαρε το kile· είναι σίγουρα το καλύτερο IDE για LaTeX (έχει και vim mode ;))

 

tip: Αν πας τελικά με το vim, Vundle is your friend

Δημοσ.

1. To ctrl μπορείς να το αλλάξεις «θέση». Πχ να κάνεις swap ctrl με caps lock.

2. Ειδικά για LaTeX ο emacs παίζει να είναι καλύτερος από vim. Δες το auctex. Τα αντίστοιχα πακέτα του vim δεν νομίζω ότι είναι και τόσο καλά (αν και έχω πάνω από χρόνο να τα κοιτάξω). Ειδικά και πάλι για LaTeX τσέκαρε το kile· είναι σίγουρα το καλύτερο IDE για LaTeX (έχει και vim mode ;))

 

tip: Αν πας τελικά με το vim, Vundle is your friend

1. Nαι το ξέρω, αλλά η ουσία (ένα βασικό πλήκτρο και οι συνδυασμοί του με άλλα) δεν θα αλλάξει... => τενοντίτιδα! :P

2. Μπορεί να είναι, αλλά δεν θα μάθω δύο συστήματα (έλλειψη χρόνου αλλά και διάθεσης, για να είμαι ειλικρινής). Πάντως, όπως και να έχει ο Vim (όσο "φτωχός" και να είναι θα είναι καλύτερος από το Leafpad.

3. Έχω ένα "θέμα" με τα Qt ... (αν και όντως έχω ακούσει τα καλύτερα για Kile).

 

Nα' σαι καλά για τον σύνδεσμο!

Δημοσ.

 

Και υπάρχουν και μπορείς να γράψεις και μόνος σου καθώς προχωράς. Είπες πως είσαι σε *nix, οπότε δες το Valgrind. Ακόμα, τα compiler tool-chains συνήθως παρέχουν και profilers (π.χ. ο gcc παρέχει το gprof) Επίσης, μάθε από νωρίς να δουλεύεις με τον debugger του compiler σου.

 

 

Γειά και πάλι. Μια σύντομη ερώτηση: ο gcc κάνει  για debugging από μόνος του ή πάει με το -g flag σε συνδυασμό με το gdb; 

Δημοσ.

Γειά και πάλι. Μια σύντομη ερώτηση: ο gcc κάνει  για debugging από μόνος του ή πάει με το -g flag σε συνδυασμό με το gdb; 

 

Με -g3 flag (για καλύτερη υποστήριξη των preprocessor macros) και gdb.

 

ΥΓ. Btw, ο emacs περιλαμβάνει gdb interface, για τον vim δεν ξέρω (λογικά όλο και κάποιο addon θα υπάρχει και εκεί). Εγώ συνήθως τον δουλεύω απευθείας στο δικό του text interface και για πολύ σύνθετα προβλήματα ενίοτε χρησιμοποιώ πλέον το gdb GUI interface του Code::Blocks.

Δημοσ.

Με -g3 flag (για καλύτερη υποστήριξη των preprocessor macros) και gdb.

 

ΥΓ. Btw, ο emacs περιλαμβάνει gdb interface, για τον vim δεν ξέρω (λογικά όλο και κάποιο addon θα υπάρχει και εκεί). Εγώ συνήθως τον δουλεύω απευθείας στο δικό του text interface και για πολύ σύνθετα προβλήματα ενίοτε χρησιμοποιώ πλέον το gdb GUI interface του Code::Blocks.

ΟΚ ευχαριστώ για την διευκρίνιση!

Δημοσ.

Τίποτα :)

 

ΥΓ. Ακόμα με το K&R παλεύεις;

Ω ναι! Μέχρι στιγμής, νομίζω, τα πάω καλά. Είμαι προς το τέλος του πρώτου κεφαλαίου και καταφέρνω να λύνω τις ασκήσεις εύκολα. Θε δείξει...

Δημοσ.

Ω ναι! Μέχρι στιγμής, νομίζω, τα πάω καλά. Είμαι προς το τέλος του πρώτου κεφαλαίου και καταφέρνω να λύνω τις ασκήσεις εύκολα. Θε δείξει...

Άρα έχεις ήδη εντυπώσει την "κακή" (πλέον) πρακτική να ορίζεις την entry function των προγραμμάτων σου ως...

main()
{
   ...
}
αντί για το σωστό...

int main( void )
{
    ...
    return 0;
}
Γενικώς, λόγω μεγάλης παλαιότητας, με το K&R θα εντυπώσεις πράγματα που πλέον θεωρούνται "κακές πρακτικές" και πράγματα για τα οποία οι σημερινοί compilers θα σου βγάζουν warnings (ενίοτε και errors, ανάλογα με το strict level τους).

 

Προφανώς θα κάνεις pick-up και πράγματα που είναι "καλές πρακτικές", αλλά επειδή τώρα ξεκινάς δεν έχεις τρόπο να τα ξεχωρίζεις.

 

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

  • Like 5
Δημοσ.

Άρα έχεις ήδη εντυπώσει την "κακή" (πλέον) πρακτική να ορίζεις την entry function των προγραμμάτων σου ως...

main()
{
   ...
}
αντί για το σωστό...

int main( void )
{
    ...
    return 0;
}
Γενικώς, λόγω μεγάλης παλαιότητας, με το K&R θα εντυπώσεις πράγματα που πλέον θεωρούνται "κακές πρακτικές" και πράγματα για τα οποία οι σημερινοί compilers θα σου βγάζουν warnings (ενίοτε και errors, ανάλογα με το strict level τους).

 

Προφανώς θα κάνεις pick-up και πράγματα που είναι "καλές πρακτικές", αλλά επειδή τώρα ξεκινάς δεν έχεις τρόπο να τα ξεχωρίζεις.

 

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

 

Γειά -συγγνώμη για την αργοπορημένη απάντηση. 

 

Όντως,  έτσι έμαθα (αναφέρομαι στο παράδειγμα που ανέφερες). Συνεπώς, πρέπει να "ανακρούσω πρήμνα" για κάποιο άλλο βιβλίο, όπως αυτό του King -που έλεγες... 

 

Αν και το "πρόβλημα" είναι ότι τα περισσότερα νέα βιβλία είναι "υπερβολικά" (κατά την δική μου αντίληψη) μεγάλα -τουλάχιστον για πρώτη επαφή.

 

:huh:

Δημοσ.

Γειά -συγγνώμη για την αργοπορημένη απάντηση. 

 

Όντως,  έτσι έμαθα (αναφέρομαι στο παράδειγμα που ανέφερες). Συνεπώς, πρέπει να "ανακρούσω πρήμνα" για κάποιο άλλο βιβλίο, όπως αυτό του King -που έλεγες... 

 

Αν και το "πρόβλημα" είναι ότι τα περισσότερα νέα βιβλία είναι "υπερβολικά" (κατά την δική μου αντίληψη) μεγάλα -τουλάχιστον για πρώτη επαφή.

 

:huh:

Βασικά εξαρτάται κι από το πόσο σκοπεύεις να ασχοληθείς γενικώς. Αν δεν σκοπεύεις να εντρυφήσεις, τότε πιθανότατα η C89/90 είναι μια χαρά (άλλωστε υπάρχει πάρα πολύς κώδικας γραμμένος σε C89 και πολλοί την θεωρούν ακόμα ως τον ελάχιστο κοινό παρανομαστή).

 

Από την άλλη μεριά, αν σκοπεύεις να ασχοληθείς πιο σοβαρά, η C99 σου παρέχει σημαντικές διευκολύνσεις (π.χ. wide-characters, fixed-length types, μιγαδικούς αριθμούς, snprintf, vscanf & variadic macros, και διάφορα άλλα).

 

Να μια λίστα με μαζεμένες τις προσθήκες της C99, που βρήκα με ένα πρόχειρο γκουγλάρισμα:

 

 

 

http://cboard.cprogramming.com/c-programming/136047-difference-between-c89-c99.html#post1013204

 

— restricted character set support in <iso646.h> (originally specifed in AMD1)

— wide-character library support in <wchar.h> and <wctype.h> (originally specifed in AMD1)

— restricted pointers

— variable-length arrays

— fexible array members

— complex (and imaginary) support in <complex.h>

— type-generic math macros in <tgmath.h>

— the long long int type and library functions

— increased translation limits

— remove implicit int

— the vscanf family of functions

— reliable integer division

— universal character names

— extended identifers

— binary foating-point literals and printf/scanf conversion specifers

— compound literals

— designated initializers

— // comments

— extended integer types in <inttypes.h> and <stdint.h>

— remove implicit function declaration

— preprocessor arithmetic done in intmax_t/uintmax_t

— mixed declarations and code

— integer constant type rules

— integer promotion rules

— vararg macros

— additional math library functions in <math.h>

— foating-point environment access in <fenv.h>

— IEC 60559 (also known as IEC 559 or IEEE arithmetic) support

— trailing comma allowed in enum declaration

— %lf conversion specifer allowed in printf

— inline functions

— the snprintf family of functions

— boolean type in <stdbool.h>

— idempotent type qualifers

— empty macro arguments

— new struct type compatibility rules (tag compatibility)

— _Prama preprocessing operator

— standard pragmas

— __func__ predefned identifer

— VA_COPY macro

— additional strftime conversion specifers

— LIA compatibility annex

— deprecate ungetc at the beginning of a binary file

— remove deprecation of aliased array parameters

 

 

Κάποιες από αυτές, όπως για παράδειγμα η "remove implicit int" (που έθιξα στο προηγούμενο ποστ) η "integer promotion rules", η "deprecate ungetc at the beginning of a binary file" ενδέχεται να σου δημιουργήσουν πρόβλημα σε σύγχρονους compilers (αν και σε όλους τους δημοφιλείς compilers μπορείς να ορίζεις σε ποιο στάνταρ της γλώσσας θέλεις να κάνεις τόσο το preprocessing όσο και το compilation).

 

Το καλό με το K&R είναι η λιτότητά του και οι ωραίες ασκήσεις του που σε ρίχνουν στα βαθειά από νωρίς. Δυστυχώς όμως αρκετές φορές (ιδιαίτερα σε πιο προχωρημένα πράγματα) αυτά τα 2 χαρακτηριστικά αντί να λειτουργούν υποστηρικτικά λειτουργούν το ένα εις βάρος του άλλου. Για αυτό και σου είπα στην αρχή πως είναι πολύ καλό βιβλίο για reference, αλλά όχι για αυτοδίδακτη εκμάθηση (βασικά θα μπορούσαμε να το χαρακτηρίσουμε ως βιβλίο γραμμένο από προγραμματιστές για προγραμματιστές).

 

Το βιβλίο του King, πέρα από το ότι καλύπτει και C89/90 και C99, είναι βιβλίο γραμμένο ειδικά για την εκμάθηση αρχαρίων. Χωρίς αυτό να σημαίνει πως δεν καλύπτει προχωρημένα πράγματα, το αντίθετο. Σε ξεκινάει από την... αμμουδιά και σε πάει πολύ πιο μετά από τις... σημαδούρες :lol: Όμως, κατά την άποψή μου, οι ασκήσεις των K&R παραμένουν πιο ρεαλιστικές από αυτές του King.

 

Ιδανικά θα πρότεινα να διαβάσεις τον King (εννοείται με τις ασκήσεις του) αλλά μετά να κάνεις και τις ασκήσεις των K&R (χωρίς να περιορίσεις τον εαυτό σου μονάχα στην διδακτέα ύλη της άσκησης).

 

Εξαρτάται όμως όπως είπαμε κι από το τι στόχους έχεις.

Δημοσ.

Βασικά εξαρτάται κι από το πόσο σκοπεύεις να ασχοληθείς γενικώς. Αν δεν σκοπεύεις να εντρυφήσεις, τότε πιθανότατα η C89/90 είναι μια χαρά (άλλωστε υπάρχει πάρα πολύς κώδικας γραμμένος σε C89 και πολλοί την θεωρούν ακόμα ως τον ελάχιστο κοινό παρανομαστή).

 

Από την άλλη μεριά, αν σκοπεύεις να ασχοληθείς πιο σοβαρά, η C99 σου παρέχει σημαντικές διευκολύνσεις (π.χ. wide-characters, fixed-length types, μιγαδικούς αριθμούς, snprintf, vscanf & variadic macros, και διάφορα άλλα).

 

Να μια λίστα με μαζεμένες τις προσθήκες της C99, που βρήκα με ένα πρόχειρο γκουγλάρισμα:

 

 

 

http://cboard.cprogramming.com/c-programming/136047-difference-between-c89-c99.html#post1013204

 

— restricted character set support in <iso646.h> (originally specifed in AMD1)

— wide-character library support in <wchar.h> and <wctype.h> (originally specifed in AMD1)

— restricted pointers

— variable-length arrays

— fexible array members

— complex (and imaginary) support in <complex.h>

— type-generic math macros in <tgmath.h>

— the long long int type and library functions

— increased translation limits

— remove implicit int

— the vscanf family of functions

— reliable integer division

— universal character names

— extended identifers

— binary foating-point literals and printf/scanf conversion specifers

— compound literals

— designated initializers

— // comments

— extended integer types in <inttypes.h> and <stdint.h>

— remove implicit function declaration

— preprocessor arithmetic done in intmax_t/uintmax_t

— mixed declarations and code

— integer constant type rules

— integer promotion rules

— vararg macros

— additional math library functions in <math.h>

— foating-point environment access in <fenv.h>

— IEC 60559 (also known as IEC 559 or IEEE arithmetic) support

— trailing comma allowed in enum declaration

— %lf conversion specifer allowed in printf

— inline functions

— the snprintf family of functions

— boolean type in <stdbool.h>

— idempotent type qualifers

— empty macro arguments

— new struct type compatibility rules (tag compatibility)

— _Prama preprocessing operator

— standard pragmas

— __func__ predefned identifer

— VA_COPY macro

— additional strftime conversion specifers

— LIA compatibility annex

— deprecate ungetc at the beginning of a binary file

— remove deprecation of aliased array parameters

 

 

Κάποιες από αυτές, όπως για παράδειγμα η "remove implicit int" (που έθιξα στο προηγούμενο ποστ) η "integer promotion rules", η "deprecate ungetc at the beginning of a binary file" ενδέχεται να σου δημιουργήσουν πρόβλημα σε σύγχρονους compilers (αν και σε όλους τους δημοφιλείς compilers μπορείς να ορίζεις σε ποιο στάνταρ της γλώσσας θέλεις να κάνεις τόσο το preprocessing όσο και το compilation).

 

Το καλό με το K&R είναι η λιτότητά του και οι ωραίες ασκήσεις του που σε ρίχνουν στα βαθειά από νωρίς. Δυστυχώς όμως αρκετές φορές (ιδιαίτερα σε πιο προχωρημένα πράγματα) αυτά τα 2 χαρακτηριστικά αντί να λειτουργούν υποστηρικτικά λειτουργούν το ένα εις βάρος του άλλου. Για αυτό και σου είπα στην αρχή πως είναι πολύ καλό βιβλίο για reference, αλλά όχι για αυτοδίδακτη εκμάθηση (βασικά θα μπορούσαμε να το χαρακτηρίσουμε ως βιβλίο γραμμένο από προγραμματιστές για προγραμματιστές).

 

Το βιβλίο του King, πέρα από το ότι καλύπτει και C89/90 και C99, είναι βιβλίο γραμμένο ειδικά για την εκμάθηση αρχαρίων. Χωρίς αυτό να σημαίνει πως δεν καλύπτει προχωρημένα πράγματα, το αντίθετο. Σε ξεκινάει από την... αμμουδιά και σε πάει πολύ πιο μετά από τις... σημαδούρες :lol: Όμως, κατά την άποψή μου, οι ασκήσεις των K&R παραμένουν πιο ρεαλιστικές από αυτές του King.

 

Ιδανικά θα πρότεινα να διαβάσεις τον King (εννοείται με τις ασκήσεις του) αλλά μετά να κάνεις και τις ασκήσεις των K&R (χωρίς να περιορίσεις τον εαυτό σου μονάχα στην διδακτέα ύλη της άσκησης).

 

Εξαρτάται όμως όπως είπαμε κι από το τι στόχους έχεις.

!!! 

 

Είσαι εξαιρετικός! Ευχαριστώ!

 

Όσον αφορά το βιβλίο, είδα αυτό περί C89/99 στο βιβλίο του King. Bασικά, αυτές τις ημέρες δοκίμασα να το ψάξω στο Amazon με βάση διαφορετικά κριτήρια (διασημότητα, κριτικές, κ.λπ.) και κατέληξα (πέραν του K & R) σε μια "σταθερή" αναφορά: το μόνο βιβλίο που έπαιζε πάντα στις τρεις πρώτες επιλογές (άσχετα από κριτήρια) ήταν το αυτό του Kochan (3η έκδοση -υπάρχει και 2η με το C(20)11).

 

Γενικά τρεις ήταν οι πιό "σοβαρές" (τονίζω τα εισαγωγικά) επιλογές:

α) αυτό του King

β) αυτό των Perry & Miller (αν και κάπου διάβασα ότι δεν έχει ασκήσεις για εξάσκηση -κάτι κακό για την περίπτωσή μου)

γ) αυτό του Kochan (3η/4η έκδοση)

 

Σχετικώς με το εύλογο ερώτημα του "που θέλω να καταλήξω". Ειλικρινά και ευθαρσώς δεν έχω ιδέα. Όλο αυτό είναι ένα πείραμα που το κάνω για εμένα και θα το τραβήξω για όσο αντέχω και μου επιτρέπουν οι διάφορες συνθήκες.

 

YΓ. σε ένα σημείο με μπέρδεψες:

 

"Κάποιες από αυτές, όπως για παράδειγμα η "remove implicit int" (που έθιξα στο προηγούμενο ποστ) η "integer promotion rules", η "deprecate ungetc at the beginning of a binary file" ενδέχεται να σου δημιουργήσουν πρόβλημα σε σύγχρονους compilers (αν και σε όλους τους δημοφιλείς compilers μπορείς να ορίζεις σε ποιο στάνταρ της γλώσσας θέλεις να κάνεις τόσο το preprocessing όσο και το compilation)."

 

Αν μιλάς για την C99, γιατί ένας νέος compiler (π.χ. gcc/llvm) να δημιουργεί πρόβλημα (λογικά θα έπρεπε να καλύπτουν μέχρι και την C11); Εκτός αν κατάλαβα κάτι λάθος.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...