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

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

Δημοσ.

Επίσης διδάσκονται και γίνονται projects πάνω σε αυτές σε όλα τα CS-related πανεπιστήμια, πράγμα που κρατάει σταθερό το popularity τους. Έτσι, πολλοί απ' τους φοιτητές/απόφοιτους συνεχίζουν με projects πάνω σε αυτές τις γλώσσες.

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

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

Δημοσ.

Η C ακόμη και σήμερα θεωρείται πολύ καλή σε αυτό που κάνει και θα συνεχίσει να θεωρείται, αν χάσει μερίδιο αγοράς θα ναι υποθετω απ' τη Rust που ακόμη είναι σε εμβρυικό στάδιο.

 

H C++ είναι άλλη περίπτωση απλά γεμίζει ένα κενό το οποίο σιγά σιγά κλείνει από πιο μοντέρνες γλώσσες.

Δημοσ.

Γιατι c c++ ;;;..................Υπαρχουν τοσες συγχρονες και μη, καλες γλωσσες προγραμματισμου...........ποιος ο λογος που υπαρχει ακομη και μαλιστα πρωτοστατει στον προγραμματισμο.............τι ειναι αυτο που δεν εχει η java python perl ruby κλπ..........η ακομη και delphi..........; ; ;

Για την ακριβεια......τι μπορω να κανω με c c++ που δεν μπορω να κανω με αλλες γλωσσες η και τι αλλα πλεονεκτηματα εχει ; ; ;

 

 

Η ερώτησή σου είναι πολύ μπερδεμένη και πιθανότατα ενδεικτική του μπερδέματος που έχεις στο μυαλό. Γι' αυτό είναι δύσκολο να απαντηθεί με κάποιο τρόπο που να είναι πειστικός και να τον "νιώθεις" ταυτόχρονα.

 

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

 

Θα σου κάνω κάποιες αντερωτήσεις για να σε βάλω να σκεφτείς κάποια πράγματα που θα βοηθούσαν για να καταλάβεις την κατάσταση...

  1. Τι πάει να πει "υπάρχουν τόσες καλές γλώσσες"; Δηλαδή η C και η C++ δεν είναι καλές; Πώς ακριβώς ορίζεις το "καλές" σ' αυτή την περίπτωση; "Καλός" δε σημαίνει απολύτως τίποτα σε τεχνικό επίπεδο, αν θέλεις τεχνική απάντηση φρόντισε να διατυπώσεις και τεχνική ερώτηση.
  2. "Ποιός ο λόγος που υπάρχει" -- τι είδους απάντηση περιμένεις; Υπάρχουν πάρα πολλοί λόγοι. Ο λόγος δεν είναι ο ίδιος για τον καθένα που χρησιμοποιεί αυτές τις γλώσσες.
  3. "Τι είναι αυτό που δεν έχει η γλώσσα Χ" -- υπάρχουν πάρα πολλά πράγματα που δεν έχει η γλώσσα Χ, όπως και πολλές γλώσσες Χ που έχουν πράγματα που δεν έχει η C και η C++. Αλλά τι ερώτηση είναι αυτή; Πιστεύεις ότι λόγο ύπαρξης έχουν μόνο γλώσσες οι οποίες έχουν "κάτι" που δεν έχει καμία άλλη; Δεν είναι προφανώς λάθος αυτό;

 

Οι C και C++ έχουν μια σειρά από χαρακτηριστικά -- ενδεικτικά αναφέρω: προβλεψιμότητα (αν είσαι έμπειρος, μπορείς να καταλάβεις πώς θα πηγαίνει η ταχύτητα εκτέλεσης του προγράμματός σου με μεγάλη σιγουριά και θα ισχύει το ίδιο κάθε φορά που το τρέχεις), τεράστια υποστήριξη σε πλατφόρμες, τεράστιο όγκο ήδη γραμμένου κώδικα, παράγουν πολύ γρήγορα προγράμματα, είναι statically and strongly typed, οι compilers είναι οι πλέον εξελιγμένοι που υπάρχουν σήμερα.

 

Αν αυτά έχουν σημασία για σένα, τις χρησιμοποιείς για παραγωγική εργασία. Αν όχι, δεν τις χρησιμοποιείς.

 

 

Επίσης διδάσκονται και γίνονται projects πάνω σε αυτές σε όλα τα CS-related πανεπιστήμια, πράγμα που κρατάει σταθερό το popularity τους. Έτσι, πολλοί απ' τους φοιτητές/απόφοιτους συνεχίζουν με projects πάνω σε αυτές τις γλώσσες.

 

Νομίζω ότι δεν έχει καμία σχέση με την πραγματικότητα αυτό. Πάει ο άλλος και κάνει μια βλακεία σε C επειδή είναι αναγκασμένος για να περάσει το μάθημα, και αυτός είναι ο λόγος που θα χρησιμοποιήσει μετά σε σοβαρά production συστήματα τη γλώσσα για την οποία δεν ξέρει παρά μόνο μέχρι το hello world?

 

Επίσης, πώς δικαιολογείται τότε η ασύγκριτα μεγαλύτερη δημοτικότητα άλλων γλωσσών εδώ και δεκαετίες; Όταν έπαιρνε φωτιά η PHP και η Ruby σε ποιά πανεπιστήμια τις δίδασκαν;

 

 

H C++ είναι άλλη περίπτωση απλά γεμίζει ένα κενό το οποίο σιγά σιγά κλείνει από πιο μοντέρνες γλώσσες.

 

Όπως από ποιές γλώσσες;

 

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

Δημοσ.

Νομίζω ότι δεν έχει καμία σχέση με την πραγματικότητα αυτό. Πάει ο άλλος και κάνει μια βλακεία σε C επειδή είναι αναγκασμένος για να περάσει το μάθημα, και αυτός είναι ο λόγος που θα χρησιμοποιήσει μετά σε σοβαρά production συστήματα τη γλώσσα για την οποία δεν ξέρει παρά μόνο μέχρι το hello world?

 

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

Δημοσ.

Πραγματι οι ερωτησεις μου δειχνουν καποιο μπερδεμα......γιατι οντως εχω μπερδεμα στο μυαλο μου............συζητω το θεμα συγχρονως με παρα πολλα ατομα και σε διαφορετικα forum και λογω των πολλων και διαφορετικων απαντησεων δεν βγαζω συμπερασματα η βγαζω λανθασμενα.............εκει που καποιος λεει κατι...του το ανερει ενας αλλος με κατι αλλο..........δεν εχω που δεν εχω υποβαθρο πανω στη c c++ και παθαινω blackout..............βλεπω ολοι να μιλουν για java python perl ruby go και πολλες αλλες....να προγραμματιζουν και να κανουν εργα σε αυτες και νιωθω οτι η c c++ σταματησε να υπαρχει και δεν εχει καμια αξια

Δημοσ.

Άνθρωπε μου, οι ............ Δεν είναι ούτε λέξεις ούτε σημείο στίξης. Γράφε σαν άνθρωπος γιατί και τον ένα που θέλει να σε βοηθήσει τον στράβωσες

  • Like 1
Δημοσ.

Άνθρωπε μου, οι ............ Δεν είναι ούτε λέξεις ούτε σημείο στίξης. Γράφε σαν άνθρωπος γιατί και τον ένα που θέλει να σε βοηθήσει τον στράβωσες

Χαλ........αρα........χαλλλλλλαρρρραααααα

  • Like 1
Δημοσ.

βλεπω ολοι να μιλουν για java python perl ruby go και πολλες αλλες....να προγραμματιζουν και να κανουν εργα σε αυτες και νιωθω οτι η c c++ σταματησε να υπαρχει και δεν εχει καμια αξια

 

Α τότε είναι πάρα πολύ εύκολο.

 

Έχεις εντρυφήσει σε αυτές τις γλώσσες; Όχι. Άρα ο,τι "νιώθεις" είναι λάθος. Το ξεχνάς, πάμε παρακάτω και όλα καλά.

Δημοσ.

Α τότε είναι πάρα πολύ εύκολο.

 

Έχεις εντρυφήσει σε αυτές τις γλώσσες; Όχι. Άρα ο,τι "νιώθεις" είναι λάθος. Το ξεχνάς, πάμε παρακάτω και όλα καλά.

Εσυ ποια γλωσσα προγραμματισμου χρησιμοποιεις  ?

Δημοσ.

 

Γεια χαρα σε ολους !!!

 

 

Γιατι c c++ ;;;..................Υπαρχουν τοσες συγχρονες και μη, καλες γλωσσες προγραμματισμου...........ποιος ο λογος που υπαρχει ακομη και μαλιστα πρωτοστατει στον προγραμματισμο.............τι ειναι αυτο που δεν εχει η java python perl ruby κλπ..........η ακομη και delphi..........; ; ;

Για την ακριβεια......τι μπορω να κανω με c c++ που δεν μπορω να κανω με αλλες γλωσσες η και τι αλλα πλεονεκτηματα εχει ; ; ;

 

 

Ένας λόγος μπορεί να είναι ότι δε χρειάζονται JIT ή Interpreter, σε συνδυασμό με άλλα στοιχεία όπως χειροκίνητη διαχείριση μνήμης, που τις κάνει καταλληλότερες για κάποιες συγκεκριμένες υποθέσεις...

 

Όλες οι άλλες γλώσσες που ανέφερες, έχουν ένα πρόγραμμα το οποίο τρέχει κατά τη διάρκεια της εκτέλεσής και παίρνει τις εντολές και τις μεταφράζει σε κώδικα που καταλαβαίνει το μηχάνημα. Πόσες φορές όταν πήγες να εγκαταστήσεις κάποιο πρόγραμμα, δε σου ζήτησε να εγκαταστήσεις τη "Java" πρώτα ? Όλα τα προγράμματα Python όταν τα ανοίγεις για μια στιγμή εμφανίζεται μια κονσόλα η οποία μετά από λίγο ή γίνεται αόρατη ή παραμένει ορατή πίσω απ' το κεντρικό παράθυρο.

 

Αλλά ποτέ δε παρατήρησες κάτι τέτοιο για ένα πρόγραμμα γραμμένο σε C.  ;)

 

Σε τι χρησιμεύουν αυτά τα "μικροπρογράμματα" των άλλων γλωσσών ? Κυρίως στο ότι ελέγχουν τα χαρακτηριστικά της πλατφόρμας, και μεταφράζουν το κώδικα με το καταλληλότερο τρόπο on the fly, προκειμένου να επιτευχθεί μεγαλύτερη συμβατότητα.

 

Τα προγράμματα χωρίς τέτοια μικροπρογράμματα όμως όπως είναι συνηθισμένο στις C, C++ μεταφράζονται πριν κάποιος πάει να τα τρέξει. Έτσι επειδή δε λαμβάνει χώρα η μεταγλώττιση κατά τη διάρκεια της εκτέλεσης, το ίδιο το πρόγραμμα διαθέτει περισσότερους hardware πόρους, μιας και δεν υπάρχει μικροπρόγραμμα να 'κλέβει' πόρους..

 

Άρα δίνεται η επιλογή με τις διάφορες γλώσσες στο προγραμματιστή να επιλέξει τι είναι καταλληλότερο για τη περίπτωση, αν είναι πιο σημαντικό το πρόγραμμα να μπορεί να τρέξει σε περισσότερα συστήματα ή να εκμεταλλευτεί στο έπακρο τους πόρους των συστημάτων.

 

Για αυτό και για παράδειγμα ο κώδικας που γράφεται για να επικοινωνεί με το hardware με ένα πιο άμεσο τρόπο (πχ αυτός στον εγκέφαλο του ψυγείου σου) τυπικά γράφεται σε C, C++. Το να χρησιμοποιούταν μια γλώσσα όπως πχ η Java θα προσέθετε την ανάγκη έστω λίγο ύπαρξης περισσότερης μνήμης και κάτι τις ισχυρότερου επεξεργαστή που θα ανέβαζε το κόστος του... ψυγείου, και το ώφελος ποιο θα ήταν ? Το ψυγείο είναι ψυγείο, δεν είναι υπολογιστής που μπορεί να έχει έναν από 100+ διαφορετικούς επεξεργαστές, ένα σωρό διαφορετικές εκδόσεις λειτουργικού συστήματος κτλπ...

Δημοσ.

βλεπω ολοι να μιλουν για java python perl ruby go και πολλες αλλες....να προγραμματιζουν και να κανουν εργα σε αυτες και νιωθω οτι η c c++ σταματησε να υπαρχει και δεν εχει καμια αξια

 

Ας πούμε αυτό το index του ΤΙΟΒΕ ή αυτό του ΙΕΕΕ Spectrum, λένε ακριβώς το αντίθετο.

 

Άρα γιατί θεωρείς πως αυτό που "νιώθεις" είναι και σωστό, όταν μάλισταα δεν έχεις ασχοληθεί με το αντικείμενο;

 

 

...

 

Σε τι χρησιμεύουν αυτά τα "μικροπρογράμματα" των άλλων γλωσσών ? Κυρίως στο ότι ελέγχουν τα χαρακτηριστικά της πλατφόρμας, και μεταφράζουν το κώδικα με το καταλληλότερο τρόπο on the fly, προκειμένου να επιτευχθεί μεγαλύτερη συμβατότητα.

 

Τα προγράμματα χωρίς τέτοια μικροπρογράμματα όμως όπως είναι συνηθισμένο στις C, C++ μεταφράζονται πριν κάποιος πάει να τα τρέξει. Έτσι επειδή δε λαμβάνει χώρα η μεταγλώττιση κατά τη διάρκεια της εκτέλεσης, το ίδιο το πρόγραμμα διαθέτει περισσότερους hardware πόρους, μιας και δεν υπάρχει μικροπρόγραμμα να 'κλέβει' πόρους..

 

...

 

Ε; Runtime libraries έχεις παντού. Δε σημαίνει ότι επειδή ένα πρόγραμμα είναι σε C ή C++ compiled με gcc μπορεί να τρέξει έτσι αβέρτα παντού.

Δημοσ.

 

 

Όπως από ποιές γλώσσες;

 

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

 

Πλέον με τη δουλειά που έχει πέσει στο jvm ( και στην αντίστοιχη πλατφόρμα του .NET υποθέτω ) και οι άλλες κλασικές βιομηχανικές γλώσσες μπορούν να καλύψουν το κενό. Μετά έρχονται Scala, Swift, Kotlin, Go. Δε ξέρω ποιες από αυτές συγκεκριμένα οκ καμία δεν βρίσκεται στο επίπεδο αφάιρεσης της cpp αλλά απ' ό,τι βλέπω γενικά πλέον υπάρχει λιγότερο αυτή η αντίληψη να λέμε "χμμ αυτό θέλουμε να είναι performant ας χρησιμοποιήσουμε αυτή τη γλώσσα".

 

Αν παρατηρήσει κάποιος το TIOBE index φαίνεται πως σιγά σιγά η c++ πέφτει κι αυτό γιατί πιστεύω πως η ταχύτητά της δεν κάνει πλέον even out τα όποια αρνητικά της. Τώρα η D απ' όσο ξέρω δεν είχε ποτέ πραγματικά momentum  to begin with.

Δημοσ.

Εσυ ποια γλωσσα προγραμματισμου χρησιμοποιεις  ?

 

Μερικές, τι σημασία έχει;

 

Πλέον με τη δουλειά που έχει πέσει στο jvm ( και στην αντίστοιχη πλατφόρμα του .NET υποθέτω ) και οι άλλες κλασικές βιομηχανικές γλώσσες μπορούν να καλύψουν το κενό. Μετά έρχονται Scala, Swift, Kotlin, Go. Δε ξέρω ποιες από αυτές συγκεκριμένα οκ καμία δεν βρίσκεται στο επίπεδο αφάιρεσης της cpp αλλά απ' ό,τι βλέπω γενικά πλέον υπάρχει λιγότερο αυτή η αντίληψη να λέμε "χμμ αυτό θέλουμε να είναι performant ας χρησιμοποιήσουμε αυτή τη γλώσσα".

 

Δε νομίζω ότι έχουν καμία σχέση οι γλώσσες που αναφέρεις με C/C++ στους τομείς που θα σε έκαναν να χρησιμοποιήσεις C/C++. Π.χ.

  • C και C++ τρέχεις μέχρι και σε γιογιό. Όλα αυτά που λες τρέχουν μόνο στις πιο mainstream desktop/server πλατφόρμες.
  • Υπάρχει μεγάλη υπαρκτή ανάγκη να τρέχεις software σε πλατφόρμες που ούτε γι' αστείο δεν έχουν τη δυνατότητα να σηκώνουν .NET/JRE/κλπ.
  • Εκεί που χρειάζεται όχι απλά performance αλλά performance consistency δε μπορείς να έχεις ένα runtime "να κάνει μόνο του πράγματα".
  • Features που είναι διαθέσιμα μόνο σε C/C++ (πχ inline assembly, template metaprogramming).
  • Μπορείς να κάνεις statically link τα πάντα => εκτελέσιμο με μηδεν άγνωστα dependencies.

 

Φυσικά τα παραπάνω δεν έχουν αντίκρισμα σε πολύ μεγάλο ποσοστό πραγματικών projects σήμερα, και γι' αυτό το λόγο C και C++ είναι πολύ κάτω στη λίστα των απαντήσεων στην ερώτηση "σε ποια γλώσσα να κάνω τάδε". But when you need it, you need it.

Δημοσ.

What about Rust?

 

Δεν έχω ρεαλιστική εμπειρία, ο προσανατολισμός της φυσικά είναι τέτοιος που στοχεύει να καλύψει μερικά (όχι όμως όλα) τα σενάρια χρήσης C/C++.

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

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

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

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

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

Σύνδεση

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

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

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