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

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

Δημοσ.

Δεν είναι 36 εις την 20η, αλλά 62 εις την 20η. Κι αυτό γιατί τα 26 γράμματα υπολογίζονται επί δύο, μια φορά τα πεζά και μία τα κεφαλαία, συν δέκα αριθμοί μετά. Το αποτέλεσμα είναι ένα εφτά με τριανταπέντε μηδενικά από πίσω. Ακόμα κι αν ο υπολογιστής επιχειρεί ένα εκατομμύριο συνδυασμούς το δευτερόλεπτο θα χρειαζόσουν 22 εξάκις εκατομμύρια χρόνια για να κάνεις όλους τους υπολογισμούς. Ούτε η NSA δεν μπορεί να το σπάσει αυτό.

Δημοσ.

Δεν είναι δύσκολη η C, ο νέος έχει δίκιο*. Αλλά για να κάνεις μια σοβαρή εφαρμογή είναι δύσκολο, όπως και με οποιαδήποτε γλώσσα! H C έχει πολύ μικρό σύνολο εντολών (όπως και η Pascal). Το δύσκολο είναι να αρχίσεις να προγραμματίζεις "μαύρα κουτιά" δηλαδή να παίρνεις βιβλιοθήκες και να τις χρησιμοποιείς. Εκεί θα βρεις δυσκολία σε κάθε γλώσσα. Τα λέω μαύρα κουτιά γιατί πρέπει να δοκιμάσεις για να δεις τι κάνουν!

 

*Ποια εντολή της C θεωρεί κανείς δύσκολη;

 

Σοβαρά τώρα, πλάκα έχει εδώ και κανα 2μηνο που ξεκίνησες αλλά μπορείς κάποια στιγμή να σταματήσεις να τρολλάρεις?

Δημοσ.

Δεν είναι 36 εις την 20η, αλλά 62 εις την 20η. Κι αυτό γιατί τα 26 γράμματα υπολογίζονται επί δύο, μια φορά τα πεζά και μία τα κεφαλαία, συν δέκα αριθμοί μετά. Το αποτέλεσμα είναι ένα εφτά με τριανταπέντε μηδενικά από πίσω. Ακόμα κι αν ο υπολογιστής επιχειρεί ένα εκατομμύριο συνδυασμούς το δευτερόλεπτο θα χρειαζόσουν 22 εξάκις εκατομμύρια χρόνια για να κάνεις όλους τους υπολογισμούς. Ούτε η NSA δεν μπορεί να το σπάσει αυτό.

 

Η NSA προτιμά πιο πλάγιους τρόπους από το να δοκιμάσει κατά μέτωπο να σπάσει κωδικούς.

  • Like 1
Δημοσ.

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

Με λίγα λόγια το να λες την C εύκολη είναι σαν να πας σε ένα forum μουσικής και να πεις "Το βιολί ? Απο τα ευκολότερα όργανα.."

Το να αντιμετωπίσει ενας αρχάριος ένα "segmentation fault (core dumped)" , ειναι κατά την γνώμη μου μια πολύ πιο απαιτητική διαδικασία

...για να μη μιλήσουμε καν για το γεγονός ότι η C σου επιτρέπει να γράφεις λάθος προγράμματα

Εξαρτάται αν μιλάμε θεωρητικά ή πρακτικά. Θεωρητικά, η C είναι όντως από τις πιο εύκολες γλώσσες. Το συντακτικό της και οι τρόποι με τους οποίους μπορείς να δουλέψεις είναι μετρημένα κουκιά σε αντίθεση με άλλες γλώσσες που μπορείς να κάνεις τα κέρατα και το κάθε τι μπορεί να γίνει με 7 τρόπους.

 

c = b + a;
Βλέποντας το παραπάνω σε C ξέρεις αμέσως τι κάνει. Σε C++ (και υποθέτω και σε C#, python, κτλ) ακόμη και αυτό το πολύ απλό δεν είναι και τόσο απλό. Τι τύπο έχουν τα a, b, c ? Μήπως οι τελεστές = και + έχουν γίνει overload και κάνουν κάτι τελείως διαφορετικό ?

 

for (std::vector<int>::const_iterator itr = myvec.cbegin(); itr != myvec.cend(); ++itr)
for (auto& x : myvec)
Ο κώδικας σε C που υλοποιεί την πρώτη γραφή θα ήταν μεν 50 γραμμές αλλά θα ήταν πιο ευκολονόητος σε έναν αρχάριο από ό,τι το συγκεκριμένο. Και ειδικά σε C++11 μπορεί να γραφεί όπως είναι στη 2η γραφή οπότε αν δεν ξέρεις το συγκεκριμένο idiom άντε να καταλάβεις τι κάνει.

 

Ειδικά για κάποιον σαν εμένα που δεν είναι και το πρώτο μυαλό, η C φαίνεται πολύ πιο εύκολη από ό,τι η C++ και λοιπές γλώσσες. Όλα αυτά θεωρητικά βέβαια.

 

Πρακτικά συμφωνώ 100% με όσα είπατε για λάθος πρακτικές, segmentation faults, UB, κτλ.

 

Αμφιβάλλω αν υπάρχει έστω και ένας σ' αυτό το forum που μπορεί να μου εξηγήσει χωρίς να ψάξει εγκυκλοπαίδειες τι είναι το strict aliasing rule και υπό ποιές ακριβώς συνθήκες παραβιάζεται. Κι όμως, η παραβίαση του SAR είναι UB => ζονκ.

[troll]

Θέλω να πιστεύω πως εγώ είμαι ένας που μπορεί :P

[/troll]

 

Η NSA προτιμά πιο πλάγιους τρόπους από το να δοκιμάσει κατά μέτωπο να σπάσει κωδικούς.

Κάτι σαν αυτό ας πούμε; :-D

https://www.explainxkcd.com/wiki/index.php/538:_Security

Ακόμη καλύτερο από το να τον δείρεις με το κλειδί είναι να προσλάβεις ένα μοντέλο πολυτελείας και την βάζεις να τον πετύχει τυχαία σε ένα bar και να του την πέσει. Κάποια στιγμή την ώρα που κάνει ο τύπος ντους ή όποτε κάτσει η φάση, συνδέει ένα διαμορφωμένο flashάκι για αυτή τη δουλειά και mission accomplished.

 

Εγώ αυτό θα έκανα στη θέση τους :P Θα σκάσουν ένα χιλιάρικο ή όποιο μεροκάματο παίρνουν οι κοπέλες σε αυτό το επάγγελμα αλλά το θύμα δεν θα καταλάβει τίποτα σε αντίθεση με το ξύλο με το κλειδί. Άσε που εκτός ότι το χιλιάρικο είναι ψίλουλα για τέτοιους οργανισμούς/εταιρίες, μόνο το GPU που θα έβαζες να σπάσει τους κωδικούς θα έκανε ένα χιλιάρικο.

  • Like 3
Δημοσ.
 
 

 



Ακόμη καλύτερο από το να τον δείρεις με το κλειδί είναι να προσλάβεις ένα μοντέλο πολυτελείας και την βάζεις να τον πετύχει τυχαία σε ένα bar και να του την πέσει. Κάποια στιγμή την ώρα που κάνει ο τύπος ντους ή όποτε κάτσει η φάση, συνδέει ένα διαμορφωμένο flashάκι για αυτή τη δουλειά και mission accomplished.

Εγώ αυτό θα έκανα στη θέση τους :P Θα σκάσουν ένα χιλιάρικο ή όποιο μεροκάματο παίρνουν οι κοπέλες σε αυτό το επάγγελμα αλλά το θύμα δεν θα καταλάβει τίποτα σε αντίθεση με το ξύλο με το κλειδί. Άσε που εκτός ότι το χιλιάρικο είναι ψίλουλα για τέτοιους οργανισμούς/εταιρίες, μόνο το GPU που θα έβαζες να σπάσει τους κωδικούς θα έκανε ένα χιλιάρικο.

 

 

To είχα διαβάσει κάπου αλλά δε θυμάμαι που :

 

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

Τι έκαναν; Παρακολούθησαν ένα στέλεχος που βρέθηκε σε παιδική χαρά με το παιδί του και ο "επιτιθέμενος μπαμπάς" με το άλλο παιδί,ζήτησε να δανειστεί το λαπτοπ για να κατεβάσει τα μέιλ του σε ένα στικάκι γιατί ήταν επείγον.Η ζημιά έγινε όμως.

Ποιός άλλωστε θα υποπτευόταν ένα μπαμπά με ένα παιδί;

Δημοσ.

Ειδικά για κάποιον σαν εμένα που δεν είναι και το πρώτο μυαλό, η C φαίνεται πολύ πιο εύκολη από ό,τι η C++ και λοιπές γλώσσες. Όλα αυτά θεωρητικά βέβαια.

 

Πρακτικά συμφωνώ 100% με όσα είπατε για λάθος πρακτικές, segmentation faults, UB, κτλ.

Σίγουρα υπάρχει δυσκολότερο learning curve για να γράψεις "απλά" προγράμματα σε κάποιες άλλες γλώσσες (τα loops που έδειξες πχ). Το παράδειγμα της C++ βέβαια δε νομίζω ότι ταιριάζει σ' αυτή τη συζήτηση επειδή είναι ακόμα χειρότερη από τη C μ' αυτό τον τρόπο.

 

Πάντως το point μου είναι ότι όσον αφορά τον αρχάριο για τον οποίο μιλάμε, ο compiler αποτελεί το de facto κριτή του "αν το πρόγραμμα είναι εντάξει". Και λόγω του γνωστού σκεπτικού με τον οποίο γράφτηκε το στάνταρ, στη C ο compiler θα σου βγάλει εντάξει ακατονόμαστα πράγματα κλπ κλπ.

 

Θέλω να πιστεύω πως εγώ είμαι ένας που μπορεί :P

Απ' όσο βλέπω και γω πιστεύω πως αν υπάρχει ένας που μπορεί, αυτός είσαι εσύ.  :)

Δημοσ.

Σοβαρά τώρα, πλάκα έχει εδώ και κανα 2μηνο που ξεκίνησες αλλά μπορείς κάποια στιγμή να σταματήσεις να τρολλάρεις?

Έχεις πρόβλημα μεγάλο! Μάλλον εσύ τρολλάρεις!

Αν έχεις κάτι για τη C μπορείς να το γράψεις εδώ και γίνε πιο κόσμιος!

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

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

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

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

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

Σύνδεση

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

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

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