Dinos_12345 Δημοσ. 4 Ιουλίου 2019 Δημοσ. 4 Ιουλίου 2019 Αν γράψεις τον ίδιο κώδικα σε C++, Java και Python, η C++ θα τρέξει εγγυημένα πιο γρήγορα. Όλα με core βιβλιοθήκες και χωρίς 3rd parties, σκέτη γλώσσα. Όσο πιο υψηλό το level τόσο πιο αργή η γλώσσα. Η C++ τρέχει και σε γιογιό και κάνει κυριολεκτικά τα πάντα.
Salecon Δημοσ. 4 Ιουλίου 2019 Δημοσ. 4 Ιουλίου 2019 (επεξεργασμένο) 5 λεπτά πριν, Dinos_12345 είπε Αν γράψεις τον ίδιο κώδικα σε C++, Java και Python, η C++ θα τρέξει εγγυημένα πιο γρήγορα. Όλα με core βιβλιοθήκες και χωρίς 3rd parties, σκέτη γλώσσα. Όσο πιο υψηλό το level τόσο πιο αργή η γλώσσα. Η C++ τρέχει και σε γιογιό και κάνει κυριολεκτικά τα πάντα. Γενικολογίες, χωρίς κανένα πρακτικό αντίκρισμα, χρησιμότητα, και ορθότητα. Επειδή αυτά είναι συνηθισμένα **λάθος** επιχειρήματα, κυρίως όσων δεν γνωρίζουν και είναι προγραμματιστές, αντιγράφω εδώ την ωραία απάντηση από το SO. Αναφορά σε κείμενο Generally, C# and Java can be just as fast or faster because the JIT compiler -- a compiler that compiles your IL the first time it's executed -- can make optimizations that a C++ compiled program cannot because it can query the machine. It can determine if the machine is Intel or AMD; Pentium 4, Core Solo, or Core Duo; or if supports SSE4, etc. A C++ program has to be compiled beforehand usually with mixed optimizations so that it runs decently well on all machines, but is not optimized as much as it could be for a single configuration (i.e. processor, instruction set, other hardware). Additionally certain language features allow the compiler in C# and Java to make assumptions about your code that allows it to optimize certain parts away that just aren't safe for the C/C++ compiler to do. When you have access to pointers there's a lot of optimizations that just aren't safe. Also Java and C# can do heap allocations more efficiently than C++ because the layer of abstraction between the garbage collector and your code allows it to do all of its heap compression at once (a fairly expensive operation). Now I can't speak for Java on this next point, but I know that C# for example will actually remove methods and method calls when it knows the body of the method is empty. And it will use this kind of logic throughout your code. So as you can see, there are lots of reasons why certain C# or Java implementations will be faster. Επαναλαμβάνω, θα ήταν καλό να μην γράφονται τέτοιες ανακρίβειες. Πιο ξεκάθαρα: Αναφορά σε κείμενο So as you can see, there are lots of reasons why certain C# or Java implementations will be faster. Επεξ/σία 4 Ιουλίου 2019 από Salecon
Dinos_12345 Δημοσ. 4 Ιουλίου 2019 Δημοσ. 4 Ιουλίου 2019 8 λεπτά πριν, Salecon είπε Γενικολογίες, χωρίς κανένα πρακτικό αντίκρισμα, χρησιμότητα, και ορθότητα. Επειδή αυτά είναι συνηθισμένα **λάθος** επιχειρήματα, κυρίως όσων δεν γνωρίζουν και είναι προγραμματιστές, αντιγράφω εδώ την ωραία απάντηση από το SO. Επαναλαμβάνω, θα ήταν καλό να μην γράφονται τέτοιες ανακρίβειες. Πιο ξεκάθαρα: CERTAIN C# OR JAVA IMPLEMENTATIONS. CERTAIN, όχι όλες, όχι οι περισσότερες, όχι κανόνας. Την διάβασα την απάντηση στο SO. Είναι σαν να λέμε ότι αν βάλουμε μια μαϊμού να γράψει C++ και έναν άνθρωπο Java, τότε θα έχουμε πιο γρήγορο κώδικα Java. No shit, πέφτει και αυτό στην κατηγορία certain Java implementations. Σε λίγο θα διαβάσουμε ότι η Assembly είναι πιο αργή από Java. Καλή χρυσή η Java και η C#, έχουν τους σκοπούς τους, αλλά η C++ είναι πιο γρήγορη, αντικειμενικά.
Salecon Δημοσ. 4 Ιουλίου 2019 Δημοσ. 4 Ιουλίου 2019 7 λεπτά πριν, Dinos_12345 είπε CERTAIN C# OR JAVA IMPLEMENTATIONS. CERTAIN, όχι όλες, όχι οι περισσότερες, όχι κανόνας. Την διάβασα την απάντηση στο SO. Είναι σαν να λέμε ότι αν βάλουμε μια μαϊμού να γράψει C++ και έναν άνθρωπο Java, τότε θα έχουμε πιο γρήγορο κώδικα Java. No shit, πέφτει και αυτό στην κατηγορία certain Java implementations. Την διάβασες αλλά δεν κατάλαβες. Η απάντηση λέει πολύ απλά ότι λόγω του JITC(θα ήταν χρήσιμο να googlάρεις τι είναι, πώς λειτουργεί και τι κάνει... θα σε βοηθήσει από το να μην λες ανακρίβειες όπως αυτές που λες) συγκεκριμένος κώδικας σε Java ή C# και σε C++ θα τρέξει πιο γρήγορα στις Java και C# επειδή συμβαίνουν δυναμικές βελτιστοποιήσεις. Αυτές οι βελτιστοποιήσεις μπορούν να γίνουν ακριβώς επειδή υπάρχει ο JITC και να εκμεταλλευτούν όλες τις δυνατότητες του **συγκεκριμένου** μηχανήματος. Κάτι που **δεν μπορεί** να συμβεί στην C++. Όταν κάποιος κάνει claim ότι 13 ώρες πριν, leonidas_fs είπε Η C++ είναι πιο γρήγορη απο Java, τότε προφανώς δεν έχει γνώση του τι γίνεται κάτω από το καπό και πως λειτουργούν τα πράγματα. Τέλος, η καραμέλα "ο ίδος κώδικας" είναι εντελώς παραπληροφόρηση. Φυσικά ο ίδιος κώδικας, optimized για την γλώσσα Χ θα τρέξει πιο γρήγορα στην γλώσσα Χ. Ο κώδικας που είναι optimized για την γλώσσα Υ, δεν θα έχει την ίδια συμπεριφορά. 13 λεπτά πριν, Dinos_12345 είπε Σε λίγο θα διαβάσουμε ότι η Assembly είναι πιο αργή από Java. αυτό είναι logical fallacy. Συγκεκριμένα είναι το: https://en.wikipedia.org/wiki/Reductio_ad_absurdum Γενικά είναι καθόλου σωστή πρακτική να χρησιμοποιεί κανείς logical fallacies σε μία συζήτηση. Δείχνει έλλειψη επιχειρημάτων, έλλειψη γνώσεων, έλλειψη παιδείας, και καθόλου κριτική σκέψη. Τέλος: 15 λεπτά πριν, Dinos_12345 είπε Καλή χρυσή η Java και η C#, έχουν τους σκοπούς τους, αλλά η C++ είναι πιο γρήγορη, αντικειμενικά. Αυτό είναι ανακρίβεια. Δεν είνια "πιο γρήγορη" έτσι γενικά. Είναι πιο γρήγορη στις περιπτώσεις που οι διεργασίες από τον JITC δεν επηρεάζουν σημαντικά την ταχύτητα. Μπορεί εσύ (και διάφοροι άλλοι προγραμματιστές) να μην καταλαβαίνεις τι σημαίνει αυτό το statement και ποια η διαφορά, αλλά σε αυτό δεν σου φταίνε οι άλλοι, ούτε και γίνεται σωστή η ανακρίβειά σου. 1
vadou Δημοσ. 4 Ιουλίου 2019 Δημοσ. 4 Ιουλίου 2019 (επεξεργασμένο) @Salecon Mate, συγγνώμη αλλά γράφεις μπαρούφες. Διάβασε και τις υπόλοιπες απαντήσεις στο SO. Το approved answer δεν είναι πάντα το πιο σωστό. Επίσης, σχετικά με το "Δεν υπάρχει χαρακτηριστικό "ολοκληρωμένη" σε μία γλώσσα": Μια χαρά υπάρχει με την έννοια ότι έχει περισσότερες δυνατότητες - δίνει μεγαλύτερο έλεγχο στον προγραμματιστή. Επεξ/σία 4 Ιουλίου 2019 από vadou 1
tsofras Δημοσ. 4 Ιουλίου 2019 Δημοσ. 4 Ιουλίου 2019 (επεξεργασμένο) Στις 3/7/2019 στις 2:56 ΜΜ, GeneralHarobi είπε Καλησπέρα, είμαι πρώτο έτος ΤΕΙ Κρήτης, έχω μάθει Python και C. Σκέφτομαι να αρχίσω να χτίζω portofolio αυτούς τους 2 μήνες και δεν έχω ιδέα από που να αρχίσω. Σκεφτόμουν να άρχιζα C++ και ίσως με λίγο Game Development. Καμιά ιδέα; Επειδή αρκετοί το κάνουν λάθος είναι portfolio και όχι portofolio Επίσης δεν νομίζω σε τόσο μικρό διάστημα να "έμαθες" python ή C . Εγώ γράφω 16 χρόνια Java και λέω ότι κουτσοξέρω. Το να μάθεις να γράφεις μεθόδους και το συντακτικό δεν σημαίνει ότι ξέρεις μία γλώσσα. Οπότε αφού έχει δεί ήδη python και λές δεν σου αρέσει η C , εγώ θα πρότεινα να συνεχίσεις με αυτήν και να διαβάσεις αντίστοιχα Design Patterns που θα προσπαθήσεις να τα εφαρμόσεις στην γλώσσα που σου αρέσει. Το να μεταπηδάς απο γλώσσα σε γλώσσα θα σου προσφέρει μόνο μία σφαιρική άποψη που πιστεύω ότι δεν αξίζει σε σχέση με το να βρεις μία γλώσσα και να γίνει expert σε αυτήν . Οπότε σκέψου τι θέλεις να κάνεις (π.χ. game development όπως είπες) , δες ποιες γλώσσες είναι καλύτερες για αυτό το κομμάτι , διάλεξε μία και μάθε την. Προσωπική άποψη πάντα , γράφω κώδικα απο τα 14 και δουλεύω 16 χρόνια ( Αυτό δεν σημαίνει ότι λέω σωστά πράγματα ή ότι είμαι Guru απλά είναι η δική μου εμπειρική γνώμη) Φιλικά πάντα Επεξ/σία 4 Ιουλίου 2019 από tsofras 4
masteripper Δημοσ. 4 Ιουλίου 2019 Δημοσ. 4 Ιουλίου 2019 Πάντως αυτό με την σύγκριση Java vs C++ είναι τουλάχιστον αστείο....όταν βρεθεί εφαρμογή (για να μην πάμε σε παιχνίδια εκεί θα γίνει σφαγή) - όχι μερικά loopακια που έτυχε και του "έκατσε" του JIT - που η ταχύτητα της Java θα είναι καλύτερη της C++ το συζητάμε...εδώ ειδικά με Oracle που έκανε το "λάθος" και εξαγόρασε την Java και έπρεπε να σπρώξει την κατάσταση με Java-based εργαλεία έγινε πανικός και ο κοσμάκης έψαχνε τα παλιά εργαλεία γιατί τα καινούργια σερνόντουσαν... Αν συζητάγαμε για C# vs Java ...τότε ναι θα συμφωνήσω...η Java είναι ταχύτερη ...και αν ήμουν αφεντικό στην MS θα είχα στήσει όλη την ομάδα του .NET στον τοίχο και θα "πυροβολούσα"...εκεί μιλάμε για την αποθέωση της "ντροπής"...δηλαδή έχεις ΔΙΚΙΑ ΣΟΥ γλώσσα που τρέχει στο ΔΙΚΟ σου Λειτουργικό και τρώει σφαλιάρες απο τον Open Source.....δεν το συζητάμε...απο το 2003 θα είχε γίνει η σφαγή. 1
Salecon Δημοσ. 4 Ιουλίου 2019 Δημοσ. 4 Ιουλίου 2019 (επεξεργασμένο) 2 ώρες πριν, vadou είπε @Salecon Mate, συγγνώμη αλλά γράφεις μπαρούφες. Διάβασε και τις υπόλοιπες απαντήσεις στο SO. Το approved answer δεν είναι πάντα το πιο σωστό. Επίσης, σχετικά με το "Δεν υπάρχει χαρακτηριστικό "ολοκληρωμένη" σε μία γλώσσα": Μια χαρά υπάρχει με την έννοια ότι έχει περισσότερες δυνατότητες - δίνει μεγαλύτερο έλεγχο στον προγραμματιστή. Μπαρούφες επειδή σου κάπνισε; Μπααα Εάν διαβάσεις και τα άλλα, θα δεις το ίδιο μοτίβο. Εν τέλη όμως, μπαρούφες λες ο ίδιος mate, λέγοντας για ολοκληρωμένες γλώσσες. Καταρχάς, το «με την έννοια ότι ...» είναι δικό σου κατασκεύασμα. Εσύ εστιάζεις στον «έλεγχο» (φαντάζομαι ότι εννοείς ότι βρίσκεσαι πιο κοντά στο υλικό) και άλλοι εστιάζουν στις δυνατότητες για μαθηματικές πράξεις (π.χ., FORTRAN, ακόμα την BLAS χρησιμοποιούν οι περισσότεροι). Άλλοι εστιάζουν στις δυνατότητες για ασφαλή συγχρονισμό και άλλοι στο dispatching vs binding. Το ότι εσύ νομίζεις πως μόνο το «πιο κοντά στο υλικό» είναι το σημαντικό (με πιο πιθανό ποτέ να μην έχεις ασχοληθεί με τα άλλα) και κάνει μία γλώσσα ολοκληρωμένη, δεν σημαίνει ότι είναι και σωστό. Υ.Γ. Ένα ακόμα παράδειγμα ενός προγραμματιστή. Υ.Γ. 2 Ύπαρξη περιπτώσεων με «Undefined behavior» και μερικοί σκέφτονται να το πουν αυτό «ολοκληρωμένο»; OMG και 3 LOL Υ.Γ. 3 Επειδή μερικοί παίζει να μην καταλάβουν, το claim μου είναι πως (για τις περισσότερες common γλώσσες) δεν υπάρχει «πιο δυνατή» ή «πιο ολοκληρωμένη» γλώσσα. Αυτό που υπάρχει είναι «πιο εύχρηστο εργαλείο» αναλόγως το task. Όσοι λένε για «πιο», παραπληροφορούν και δεν έχουν δει άλλα tasks πέρα από τον εξαιρετικά μικρό μικρόκοσμό τους. Προγραμματιστές γαρ. Επεξ/σία 4 Ιουλίου 2019 από Salecon
Moderators Kercyn Δημοσ. 4 Ιουλίου 2019 Moderators Δημοσ. 4 Ιουλίου 2019 Η C++ δεν είναι πιο δύσκολη από τη Logo γιατί δεν υπάρχει επιστημονικό metric που μετράει τη δυσκολία σε μια γλώσσα. Έλα ρε συ τώρα...
jimmy213 Δημοσ. 4 Ιουλίου 2019 Δημοσ. 4 Ιουλίου 2019 31 λεπτά πριν, Kercyn είπε Η C++ δεν είναι πιο δύσκολη από τη Logo γιατί δεν υπάρχει επιστημονικό metric που μετράει τη δυσκολία σε μια γλώσσα. Έλα ρε συ τώρα... Άσε, η C++ είναι παιχνιδάκι μπροστά στο παλούκι τη Logo (επιστημονικώς τεκμηριωμένο από 'μένα). Ακόμα βλέπω εφιάλτες με την κωλοχελώνα 😛
Salecon Δημοσ. 5 Ιουλίου 2019 Δημοσ. 5 Ιουλίου 2019 3 ώρες πριν, Kercyn είπε Η C++ δεν είναι πιο δύσκολη από τη Logo γιατί δεν υπάρχει επιστημονικό metric που μετράει τη δυσκολία σε μια γλώσσα. Έλα ρε συ τώρα... Οπότε «δυσκολία = ολοκληρωμένη». Γενικά, βλέπω ότι όταν δεν μπορεί ένας να στηρίξει αυτά που θέλει, καταφεύγει σε logical fallacies άμεσα. Εάν θες να μιλήσουμε για δυσκολία, είναι άλλο θέμα. Εάν έχεις κάτι να πεις για το «πιο ολοκληρωμένη γλώσσα» τότε πες το. Αλλά μην πας πάλι σε logical fallacies. Έλα ρε συ τώρα...
marios28 Δημοσ. 5 Ιουλίου 2019 Δημοσ. 5 Ιουλίου 2019 Στις 3/7/2019 στις 2:56 ΜΜ, GeneralHarobi είπε Καλησπέρα, είμαι πρώτο έτος …. Καμιά ιδέα; Δε σου αρέσει η C, χλωμό να σου αρέσει η C++. Προτείνω Java, ίσως η καταλληλότερη, για να μπεις στο νόημα του αντικειμενοστραφούς προγραμματισμού, ενώ αν δεις κάποια στιγμή στο μέλλον τη C#, η μετάβαση θα σου είναι πιο «εύκολη». Αν είσαι σε τμήμα πληροφορικής, πιθανό (η Java) να χρειαστεί και σε κάποιο μεταγενέστερο μάθημα. Επιπλέον μπορείς να τη συνδυάσεις και με android. Όπως και να 'χει, (αφού ρίξεις τις ματιές σου) προτείνω να λάβεις υπόψιν αυτά που σου γράφει ο @tsofras. 1
masteripper Δημοσ. 5 Ιουλίου 2019 Δημοσ. 5 Ιουλίου 2019 Νομίζω ότι οι safe επιλογές είναι : C# η Ms αυτή την στιγμή έχει αντιληφθεί ότι είναι η τελευταία ευκαρία να επικρατήσει στον χώρο του προγραμματισμού και την σπρώχνει παντού.... Python...τώρα που η Jana πνέει τα λοίσθια (εντάξει σαν Νο1 γλώσσα αυτό θα κρατήσει δεκαετίες ...βλέπε Cobol) το καινούργιο αγαπημένο παιδί του Open Source ξυρίζει JavaScript ο κόσμος τώρα πια είναι Web οπότε η εγγενής γλώσσα για ανάπτυξη είναι η JS...σε οποιαδήποτε μορφή και κάτω απο οποιαδήποτε υλοποίηση.....προσοχή αρκετοί την μπερδεύουν με την Java και νομίζουν ότι είναι υποσύνολο.
Moderators Kercyn Δημοσ. 5 Ιουλίου 2019 Moderators Δημοσ. 5 Ιουλίου 2019 15 ώρες πριν, Salecon είπε Οπότε «δυσκολία = ολοκληρωμένη». Γενικά, βλέπω ότι όταν δεν μπορεί ένας να στηρίξει αυτά που θέλει, καταφεύγει σε logical fallacies άμεσα. Εάν θες να μιλήσουμε για δυσκολία, είναι άλλο θέμα. Εάν έχεις κάτι να πεις για το «πιο ολοκληρωμένη γλώσσα» τότε πες το. Αλλά μην πας πάλι σε logical fallacies. Έλα ρε συ τώρα... Δεν είπα πουθενά ότι "δυσκολία = ολοκληρωμένη". Δεν ανέφερα καν τον όρο "πιο ολοκληρωμένη γλώσσα" ούτε ασχολήθηκα καθόλου με αυτό. Μπορείς να μαντέψεις σε ποιο fallacy υπέπεσες μ' αυτό σου το post; Τέλος πάντων, εγώ ρώτησα για να δω αν θεωρείς ότι και η δυσκολία είναι κάτι μετρήσιμο, αλλά μάλλον πιο πολύ σ' ενδιαφέρει να κυνηγάς φαντάσματα. 1
najinblue3 Δημοσ. 5 Ιουλίου 2019 Δημοσ. 5 Ιουλίου 2019 Ο ανθρωπος μπηκε να ρωτησει κατι και απο κατω σφαζεστε ποια γλωσσα την εχει μεγαλυτερη. @GeneralHarobi για να ασχοληθεις με game dev απαιτουνται γνωσεις που δε θεωρω τις εχεις αποκτησει μετα απο ενα χρονο. Data structures, διακριτα μαθηματικα και αλγοριθμους σε βαθος. Εγω θα προτεινα να ασχοληθεις με απλες εφαρμογες ωστε να μαθεις βιβλιοθηκες. Θα προτεινα να φτιαξεις μια εφαρμογη που συνδεεται με βαση δεδομενων και χτιζει queries και κανει retrieve data η κατι παρομοιο. Παρομοια projectaκια μπορεις να βρεις στο reddit να σου δωσουν ιδεες. Το https://www.reddit.com/r/learnprogramming/ ειναι γεματο απο πρωτοετεις φοιτητες και οχι μονο και συζητανε παρομοια θεματα. 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα