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

Debate: C/C++ VS Fortran


V.I.Smirnov

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

Τα παραπάνω μηνύματα μεταφέρθηκαν εδώ ως offtopic από το θέμα Πώς να δημιουργείτε στατικούς & δυναμικούς πίνακες. Εδώ μπορείτε να συνεχίσετε το debate ανελέητα και χωρίς περιστολές. ;)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

Δημοσιευμένες Εικόνες

@ΝewProject

Εκτιμώ εξίσου την C++. Απλώς η fotran είναι αδίκως παραγνωρισμένη και παρεξηγημένη ακόμα και από τους απόφοιτους πληροφορικής και μερικές

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

 

οχι , εγω προσωπικα δεν εχω προβλημα ο καθενας να πει τη γνωμη του απλα σε καποια θεματα , οπως αυτο ο σκοπος δεν ηταν τετοιος αλλα να μας θυμισει μερικες συναρτησεις στη C ... αυτο ειναι ολο . Γι'αυτο αλλωστε και τα σχολια μας μεταφερθηκαν εδω , γιατι ειναι offtopic

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

[..]

Η κάθε γλώσσα έχει τις δυνατότητες της και τις ιδιαιτερότητες της...

[..]

+1

 

Σωστός!!

 

@V.I.Smirnov:

[..]Πόσες γραμμές θα απαιτηθούν σε C++;[..]

Πολλές (το λέω εκ πείρας αλλά ο κώδικας τότε έπρεπε να γραφθεί σε C++ :-/).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

:-)

 

Θα τολμήσω να βάλω τα πράγματα στην σωστή τους βάση (με την άδειά σας φυσικά):

 

C/C++ VS Fortran: ο τίτλος έχει το μεγαλύτερο κατά την άποψή μου πρόβλημα:

Η C είναι μια δομημένη γλώσσα ενώ η C++ αντικειμενοστραφής. Η F77 δομημένη ενώ η F2000τόσο (πού έχει φτάσει αλήθεια; ) αντικειμενοστραφής.

Άρα λοιπόν θα διατυπώσω την άποψή μου για ΟΜΟΙΑ πράγματα:

 

Η γλώσσα C και η γλώσσα F77 είναι εξαιρετικές και οι δύο. Κύριες διαφορές τους είναι: η C είναι σαφώς δυσκολότερη στην εκμάθηση αντίθετα από F77. Απ'την άλλη έχει ΆΡΙΣΤΗ υποστήριξη σε θέματα δεικτών και δυναμικής καταχώρισης μνήμης καθώς και διαχείρισης χαρακτήρων. Τέλος αναφέρω ως πρόσθετο το union της C (απέναντι σε όλες τις λοιπές γλώσσες).

Η F77 έχει ΤΕΡΑΣΤΙΑ επιστημονική βιβλιοθήκη ενώ είναι ΠΟΛΥ ΠΙΟ ΕΥΚΟΛΗ στην σύνταξη και εκσφαλμάτωση επιστημονικών εφαρμογών. Είναι δε το ίδιο γρήγορη με την C αν συγκριθούν σε ανάλογης βελτιστοποίησης κώδικα.

 

Η C++ είναι μια αντικειμενοστραφής γλώσσα του τύπου: the sky is the limit (το οποίο το οφείλει στην C φυσικά την μαμά της :-) ). Οι σύγχρονες αντικειμενοστραφείς Fortran έχουν προ πολλού ενσωματώσει πλήρως σχεδόν όλα τα αντικειμενοστραφή χαρακτηριστικά της C++ ενώ ειδικά στον τομέα τους (επιστημονικές εφαρμογές - scientific computing) απλά ΔΕΝ ΥΠΑΡΧΟΥΝ. Δυστυχώς όμως έγιναν και το ίδιο πολύπλοκες στην εκμάθηση (συμβολικές στην αναπαράσταση τεχνικών κ.α.) και άρα η εκπαίδευσή τους δεν είναι το ίδιο απλή (και εφόσον you cannot teach an old dog new tricks δεν θα συναντήσετε πολλούς δασκάλους στις νέες εκδόσεις fortran άρα και ακόμη λιγότερους μαθητές).Έτσι σήμερα την χρησιμοπιοιούν ουσιαστικά σε χώρους όπου πραγματικά την χρειάζονται και σας βεβαιώνω ότι κατατροπώνει χαλαρά όλα τα λοιπά "επιστημονικά" εργαλεία.

 

Ποια γλώσσα προτείνεις σε προπτυχιακό φοιτητή γενικά; Python.

 

Ποια γλώσσα προτείνεις σε προπτυχιακό φοιτητή φυσικομαθηματικών / πολυτεχνείου; όποια θα τον βοηθήσει καλύτερα στην κατανόηση της Αριθμητικής Ανάλυσης :-)

 

Ποια γλώσσα προτείνεις σε μεταπτυχιακό/ερευνητή φυσικομαθηματικών / πολυτεχνείου; C (όχι C++) σε ότι αφορά εφαρμογές ειδικών απαιτήσεων και μεγάλου όγκου δεδομένων (ψηφιακή επεξεργασία εικόνας video κ.α.) και την καλύτερη σύγχρονη fortran για να ακουμπήσει το μέλλον και -αν τα καταφέρει- να τετραγωνίσει τον κύκλο :-)

 

Και η C++; Αυτήν την αφήνω για τους ειδικούς πληροφορικής. Απλά θα πρέπει να συνηδητοποιήσουν ότι δεν υπάρχουν όρια και να ξεκολήσουν από τα φτηνά υποκατάστατα και τις ευκολίες/παρωπίδες τους.

 

Όσο για την F77: απλά έχει περάσει στην ιστορία ως το εργαλείο που μεγάλωσε την παλαιά γενιά :-)

 

Όπως καταλάβατε το θέμα αφορά τον πρώτο παιδικό μου έρωτα, την γυναίκα μου και της κόρη της :-)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

+1

Σωστός!!

 

+1 και από εμένα.

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

Σ' αυτό έγκειται η ένστασή μου. Υποτίμηση λόγω μακάριας άγνοιας. Η Fortran δεν είναι pascal .

 

 

@V.I.Smirnov:

 

Πολλές ( το λέω εκ πείρας αλλά ο κώδικας τότε έπρεπε να γραφθεί σε C++ ).

 

Ναι, πολλές δυστυχώς !!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

..Υποθέτω όμως ότι το ρωτάς υπονοώντας αν μπορούμε να γράψουμε μια συνάρτηση που να επιστρέφει έναν πίνακα και αυτό να γράφεται ρητά...

όχι, αλλα θέλω π.χ. σε ένα εισερχόμενο δεδομένο μέσω δικτύου, ή σε ένα Event handler, χωρίς το loop switch/case (για λόγο ταχύτητας τόσο στο γράψιμο του switch case, όσο και στην εκτέλεση) να καλέσω μια συνάρτηση

>
typedef int (*i_func_i)(int x);
i_func_i menu[] = {
            MenuCall1,
            MenuCall2,
            ...
            MenuCallN
};
int MenuCall1(int data){}
...

Το να επιστρέφει πίνακα είναι εφικτό και στη C++

(π.χ. Matrix MulMatrix(Matrix &a, Matrix & B) {}

 

Πόσες γραμμές θα απαιτηθούν σε C++ για να γραφεί κάτι τόσο απλό ;

Tα συμπεράσματα είναι εύλογα...

περισσότερες αλλά όχι τόσες όσες νομίζεις.

Δες παρακάτω το πέρασμα της παραμέτρου συνάρτησης (func) που θέλουμε να κληθεί σε ολόκληρο τον πίνακα MyMatrix.

 

 

Και θα σου πω και κάτι άλλο σχετικό. Στην Fortran είναι σχετικά εύκολο χρησιμοποώντας μια δομή (type) να ορίσεις "πίνακα" που κάθε

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

Αντίθετα, στην C++ είναι αρκετά πιο δύσκολο.

Δεν ξέρω τον τρόπο που γίνεται στη fortran για να σου πω κάτι αντίστοιχο.

Η υλοποίηση εξαρτάτε απο το μέγεθος του πίνακα και της επιθυμιτής "κίνησης" που θα έχει (ώστε να γίνει ένας αποδοτικός τρόπος σε χρόνο ή χώρο για την υλοποίηση).

 

Tέλος όταν λέω ότι "στην C++ κάθε συνάρτηση πινάκων που ενδιαφέρει πρέπει να ξαναγραφεί" εννοώ ότι αν έχεις φτιάξει μια κλάση πινάκων,όσες

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

αυτόματα η συνάρτηση ενός βαθμωτού στην κλάση ενός πίνακα, δυστυχώς (όπως άλλωστε και οι +,-,*,/). Πχ. τα cos, exp, atan κλπ.

όχι, για δες έναν απλό τρόπο:

>
class MyMatrix : public Matrix {
public:
        ....
        virtual void Run((double *func)(double){...}
                        //για όλα τα στοιχεία του πίνακα, εκτέλεσε την συνάρτηση func
      //η παραπάνω συνάρτηση λειτουργεί για οποιοδήποτε derived απο MyMatrix αντικείμενο.

 

...

Απλώς η fotran είναι αδίκως παραγνωρισμένη και παρεξηγημένη ...

Συμφωνώ.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

Θα τολμήσω να βάλω τα πράγματα στην σωστή τους βάση (με την άδειά σας φυσικά):

 

C/C++ VS Fortran: ο τίτλος έχει το μεγαλύτερο κατά την άποψή μου πρόβλημα:

Η C είναι μια δομημένη γλώσσα ενώ η C++ αντικειμενοστραφής.

Η F77 δομημένη ενώ η F2000 τόσο (πού έχει φτάσει αλήθεια; ) αντικειμενοστραφής.

 

1) Το ότι συγκρίνεις με την F77 είναι λάθος.

Η F77 είναι απαρχαιωμένη.

Η αντικειμενοστρέφεια υφίσταται σε μεγάλο βαθμό ήδη από την F95.

H F2008 είναι πλέον σχεδόν πλήρως αντικειμενοστρεφής.

Αλλά εγώ αν χρειαζόμουν κυρίως αυτό το χαρακτηριστικό δεν θα την προτιμούσα

λόγω έλλειψης έτοιμου υλικού (βιβλιοθήκες με δομές δεδομένων, παραδείγματα κλπ).

 

 

Η γλώσσα C και η γλώσσα F77 είναι εξαιρετικές και οι δύο. Κύριες διαφορές τους είναι:

η C είναι σαφώς δυσκολότερη στην εκμάθηση αντίθετα από F77.

Απ'την άλλη έχει ΆΡΙΣΤΗ υποστήριξη σε θέματα δεικτών και δυναμικής καταχώρισης μνήμης καθώς και διαχείρισης χαρακτήρων.

Τέλος αναφέρω ως πρόσθετο το union της C (απέναντι σε όλες τις λοιπές γλώσσες).

 

Η fortran έχει δείκτες αλλά σε διαφορετική μορφή από την C/C++. Kαι μάλιστα πιο εύκολη και πιο διαισθητική ως προς τη χρήση τους.

Για δείκτες όπως της C/C++ έχει την εντολή loc που όμως δεν είναι standar ακόμα.

Επίσης, για δυναμική καταχώρηση έχει τις εντολές malloc και free που όμως έχουν παραλλαγές στους compilers όπως και η loc.

H δυναμική καταχώρηση μνήμης στη fortran είναι προσανατολισμένη κυρίως στους πίνακες και τέτοιου είδους εντολές χρειάζονται πολύ λιγότερο.

Σε ότι αφορά τα string, έχει ένα πλήθος εντολών διαχείρησης string που επαρκούν για πολλά πράγματα (αλλά βέβαια όχι για επεξεργαστή κειμένου).

Ενδεικτικά αναφέρω ότι εγώ στην fotran κάποτε έφιταξα parser με τις εντολές αυτές.

 

Για το union: φίλε μου το έχει και η fortran από τα μέσα του '60. Είναι η εντολή eqivalence.

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

 

 

Η F77 έχει ΤΕΡΑΣΤΙΑ επιστημονική βιβλιοθήκη ενώ είναι ΠΟΛΥ ΠΙΟ ΕΥΚΟΛΗ στην σύνταξη και εκσφαλμάτωση επιστημονικών εφαρμογών.

Είναι δε το ίδιο γρήγορη με την C αν συγκριθούν σε ανάλογης βελτιστοποίησης κώδικα.

+100 για το πρώτο.

Για το δεύτερο, η F95 και πέρα μπορεί να είναι ακόμη πιο γρήγορη με τα ενσωματωμένες δυνατότητες που έχει

για παραλληλισμό (τις οποίες δυστυχώς οι περισσότεροι compilers δεν υλοποιούν).

Ωστόσο μια διαφορά 5-10% στην ταχύτητα δεν είναι τόσο σημαντική.

Το σπουδαιότερο είναι η ευκολία στην γραφή και συντήρηση του πρόγράμματος.

 

 

Η C++ είναι μια αντικειμενοστραφής γλώσσα του τύπου: the sky is the limit (το οποίο το οφείλει στην C φυσικά την μαμά της :-) ).

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

της C++ ενώ ειδικά στον τομέα τους (επιστημονικές εφαρμογές - scientific computing) απλά ΔΕΝ ΥΠΑΡΧΟΥΝ.

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

δεν είναι το ίδιο απλή (και εφόσον you cannot teach an old dog new tricks δεν θα συναντήσετε πολλούς δασκάλους στις νέες εκδόσεις fortran

άρα και ακόμη λιγότερους μαθητές).Έτσι σήμερα την χρησιμοπιοιούν ουσιαστικά σε χώρους όπου πραγματικά την χρειάζονται και σας βεβαιώνω

ότι κατατροπώνει χαλαρά όλα τα λοιπά "επιστημονικά" εργαλεία.

Συμφωνώ απολύτως με τα τονισμένα. Και προσωπικά δεν θα έγραφα αντικειμενοστρεφώς στην fortran σχεδόν ποτέ.

 

 

Ποια γλώσσα προτείνεις σε προπτυχιακό φοιτητή γενικά; Python.

 

Ποια γλώσσα προτείνεις σε προπτυχιακό φοιτητή φυσικομαθηματικών / πολυτεχνείου; όποια θα τον βοηθήσει καλύτερα στην κατανόηση της Αριθμητικής Ανάλυσης :-)

 

Ποια γλώσσα προτείνεις σε μεταπτυχιακό/ερευνητή φυσικομαθηματικών / πολυτεχνείου;

C (όχι C++) σε ότι αφορά εφαρμογές ειδικών απαιτήσεων και μεγάλου όγκου δεδομένων (ψηφιακή επεξεργασία εικόνας video κ.α.)

και την καλύτερη σύγχρονη fortran για να ακουμπήσει το μέλλον και -αν τα καταφέρει- να τετραγωνίσει τον κύκλο :-)

 

Το "προπτυχιακός φοιτητής γενικά" τι σημαίνει ;

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

Για το δεύτερο, frortran με κλειστά μάτια (F90/95 βέβαια, όχι 77).

Για το τρίτο, μάλλον C++ η/και fortran. Eξαρτάται από το στυλ γραφής (χρήση αντικειμενοστρέφειας ή όχι),

τα εργαλεία που μπορούν να χρησιμοποιηθούν (έτοιμες βιβλιοθήκες κλπ) και το διαθέσιμο περιβάλλον (compiler κλπ).

Επίσης θα μπορούσε να εξεταστεί και κάποια μικτή λύση. Η μίξη των δύο γλωσσών είναι εφικτή εδώ και 15+ χρόνια

και με από την F2003 και πέρα και διευκολύνεται ακόμη περισσότερο.

 

 

Και η C++; Αυτήν την αφήνω για τους ειδικούς πληροφορικής.

Απλά θα πρέπει να συνηδητοποιήσουν ότι δεν υπάρχουν όρια και να ξεκολήσουν από τα φτηνά υποκατάστατα και τις ευκολίες/παρωπίδες τους.

 

Όσο για την F77: απλά έχει περάσει στην ιστορία ως το εργαλείο που μεγάλωσε την παλαιά γενιά :-)

 

Όπως καταλάβατε το θέμα αφορά τον πρώτο παιδικό μου έρωτα, την γυναίκα μου και της κόρη της :-)

+1000.

Αν και μια παρουσίαση των δυνατοτήτων της fortran είναι αδύνατη εδώ, νομίζω ότι τέθηκαν αρκετά ζητήματα στην σωστή τους βάση.

 

@bxenos

H fortran δεν είναι κατάλληλη για system programming, η διασύνδεσή της με το λειτουργικό είναι μικρή.

Σε οτιδήποτε έχει σχέση με αυτό δεν τίθεται σύγκριση με την C/C++.

 

Όσο για τα υπόλοιπα, με συγχωρείς αλλά δεν πείθομαι.

Πχ. το ζήτημα που λέω ότι "πρέπει να ξαναγραφούν οι συναρτήσεις που ενδιαφέρουν" έχει κι άλλα παρελκόμενα.

Ειδικότερα, στη fortran είναι πολύ απλό με τις "στοιχειακές" συναρτήσεις να επιτευχθεί αυτόματη παραλληλία,

κάτι που δεν ξέρω πώς θα μπορούσε να γίνει στην C++ με τον τρόπο που δείχνεις.

 

Φυσικά μπορούν να γίνουν όλα στην C++ αλλά το κόστος πιο είναι ;

Oι έννοιες που εμπλέκονται είναι πιο πολύπλοκες και φλύαρες απ΄ ότι στην στην fortran, δυσκολεύουν κάποιον που

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

Βέβαια και η fortran δεν είναι η απόλυτη πανάκεια για τα αριθμητικά. Απλώς βολεύει περισσότερο από την C++.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@chiossif

 

Επιτέλους, η φωνή της λογικής. Για κάποιον που θέλει να ασχοληθεί με αριθμητική ανάλυση κλπ σε προπτυχιακό επίπεδο και όχι μονο, μια πολύ καλή επιλογή, αν όχι η καλύτερη (κατά την άποψή μου βέβαια), είναι ΟΥΤΕ fortran, ΟΥΤΕ C++, αλλά python. Με τα καταλληλα πακέτα μπορείς να καλείς native κωδικα που εχει γραφεί σε άλλες γλώσσες. Εχεις την ευκολια της Python και πανω-κατω μια πολυ καλή ταχύτητα εκτέλεσης. Δεν είναι αναγκαίο να χρησιμοπιήσει python μονο, προφανώς υπάρχουν και άλλες απλές στη χρήση γλώσσες που μπορούν να το κάνουν αυτό.

 

@Smirnov

 

Πολλές γλώσσες εχουν αδικηθεί κατά καιρούς. Μια απο τις πιο αδικημενες σιγουρα ηταν η Fortran, με πιο αδικημενη κατα τη γνωμη μου την Ada. Και η Cobol μπορει να εχει έκδοση για .NET (aαν δεν εχει ήδη). Ε και; Το ποτάμι δεν γυρίζει πίσω. Η φορτραν απέκτησε μετά το 2000, ότι πολλές γλώσσες το είχαν πολλά χρόνια πριν. Οσοι έγραφαν κώδικα τί έπρεπε να κάνουν; Να περιμένουν πότε θα βγει compiler για F2003 ? Ο κόσμος (επαγγελματίες, καθηγητές κλπ) έχει κάνει τις επιλογές του. Σιγουρα η φορτραν δεν ειναι αυτή που διδάσκεται σε όσες σχολές διδάσκεται ακόμα. Πλέον είναι αργά. Ισως καποτε ήταν μπροστά από την εποχή της.

 

Επίσης επιμένεις πολλές φορές να αναφέρεσαι στον intel compiler και στις δυνατότητές του. Μια εταιρία με 50-60 προγραμματιστές, πόσα λεφτά πρέπει να δίνει στην intel για αυτον τον compiler κάθε χρόνο; Να σκεφτόμαστε και κάποια extra πράγματα μερικές φορές. Η εταιρία δεν ειναι ακαδημαικό ίδρυμα να έχει ότι ...θέλει. Εκτός και αν αγοράσει μόνον ...εναν για το τελικό compilation. Σε AMD μηχανήματα θα πηγαίνει καλά; Ή θα πρέπει ο πελάτης να αγοράσει και intel cpu ? ...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@Smirnov

 

Πολλές γλώσσες εχουν αδικηθεί κατά καιρούς. Μια απο τις πιο αδικημενες σιγουρα ηταν η Fortran, με πιο αδικημενη κατα τη γνωμη μου την Ada. Και η Cobol μπορει να εχει έκδοση για .NET (aαν δεν εχει ήδη). Ε και; Το ποτάμι δεν γυρίζει πίσω. Η φορτραν απέκτησε μετά το 2000, ότι πολλές γλώσσες το είχαν πολλά χρόνια πριν. Οσοι έγραφαν κώδικα τί έπρεπε να κάνουν; Να περιμένουν πότε θα βγει compiler για F2003 ? Ο κόσμος (επαγγελματίες, καθηγητές κλπ) έχει κάνει τις επιλογές του. Σιγουρα η φορτραν δεν ειναι αυτή που διδάσκεται σε όσες σχολές διδάσκεται ακόμα. Πλέον είναι αργά. Ισως καποτε ήταν μπροστά από την εποχή της.

 

Επίσης επιμένεις πολλές φορές να αναφέρεσαι στον intel compiler και στις δυνατότητές του. Μια εταιρία με 50-60 προγραμματιστές, πόσα λεφτά πρέπει να δίνει στην intel για αυτον τον compiler κάθε χρόνο; Να σκεφτόμαστε και κάποια extra πράγματα μερικές φορές. Η εταιρία δεν ειναι ακαδημαικό ίδρυμα να έχει ότι ...θέλει. Εκτός και αν αγοράσει μόνον ...εναν για το τελικό compilation. Σε AMD μηχανήματα θα πηγαίνει καλά; Ή θα πρέπει ο πελάτης να αγοράσει και intel cpu ? ...

 

Γενικά διαφωνώ.

Η fortran ΔΕΝ είναι αδικημένη, το αντίθετο.

Δεν έχει τους ίδιους σκοπούς χρήσης με τις C++, Java κλπ και είναι επόμενο να μην ενδιαφέρει τον

πολύ κόσμο (αν και τόσο πολλά μπορεί να γίνουν με αυτήν).

 

Το ότι δεν προσχώρησε τόσο γρήγορα στο παρελθόν είναι κάπως "ψευδαίσθηση".

Βγήκε στάνταρ το '90, το '95, το 2003 και το 2008, δηλ. πολύ πυκνότερα απ' ότι για άλλες γλώσσες.

( Χώρια τα openMP και ΜPI που την υποστηρίζουν ανελλιπώς μαζί με την C . )

Το γεγονός αυτό δείχνει το δείχνει το ενδιαφέρον που υπάρχει και πόσο ζωντανή είναι.

Αλλά πού είχε μείνει πίσω ; βασικά μόνον στην αντικειμενοτστρέφεια.

Αυτό οφείλεται ακριβώς στο ότι όλα αυτά τα χαρακτηριστικά (αντικείμενα κλπ) ΔΕΝ χρησιμοποιούνται στα

προβλήματα που εφαρμόζεται ενώ και τα προγράμματα-βιβλιοθήκες είναι τόσο πολλά και μεγάλα ώστε είναι

δύσκολο να ξαναγραφούν "εκσυγχρονισμένα".

Με τόσα στάνταρ που βγήκαν δεν τους κόστιζε και πολύ να υποστηρίξουν αντικείμενα.

 

Για το δεύτερο που λες (περί compiler) πάλι διαφωνώ.

Εγώ απλώς χρησιμοποιώ έναν που βρήκα εύκολα και για κάποιους λόγους μού είναι βολικός.

Υπάρχουν και άλλοι με όμοιες δυνατότητες ή καλύτεροι όπως της PGI ή της SUN.

Τέλος, ακόμα και το minGW έχει fortran που είναι μια χαρά και δωρεάν.

 

Για το θέμα των τιμών, δεν ξέρω, ίσως έχεις δίκιο. Εγώ ότι έχω είναι κλεψιμέϊκο.

Αλλά και στις άλλες γλώσσες είναι καλύτερα τα πράγματα ; Πχ. δεν αγοράζεις το VS ;

 

Για τις επιδόσεις του συγκεκριμένου compiler σε επεξεργαστές πέραν της Intel, δεν έχω δοκιμάσει.

Δεν πιστεύω ότι υπάρχει πρόβλημα. Απλώς η Intel έχει κάποιες βελτιστοποιήσεις που δουλεύουν καλύτερα στους δικούς της.

 

Όσο για την εκμάθηση αριθμητικής ανάλυσης με την python, μου φαίνεται απλώς γελοία επιλογή.

Για κάποιον με μηδαμινή τεχνική εκπαίδευση ίσως είναι καλή για αρχή αλλά τότε αυτός δεν θα

ενδιαφέρεται για αριθμητική ανάλυση.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

post-103086-129063100348_thumb.jpg

Για παμε :lol:

 

Μονο στην ελλαδα.. Εκανα search στο google για c++ vs fortran και σε κανενα site δεν ειδα αυτο το πραμα "Η απαυτη γλωσσα ειναι καλυτερη γιατι ετσι", "Οχι οχι κανεις ΛΑΘΟΣ ειναι χειροτερη γιατι ετσι"... Λες και υπαρχερει η τελεια γλωσσα...

Επεξ/σία από Evgenios1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@Evgenios1

 

Μάλλον δεν κατάλαβες αυτά που διάβασες.

Πού γράφουμε ή υπαινισσόμαστε ότι η γλώσσα ΧΧΧΧΧ είναι τέλεια ;

Και ότι η "Η απαυτη γλωσσα ειναι καλυτερη γιατι ετσι" ;

Γράφουμε ότι είναι καλύτερη για τους x,y,z λόγους να κάνει το τάδε συγκεκριμένο πράγμα.

 

Και όσο για το "Οχι οχι κανεις ΛΑΘΟΣ ειναι χειροτερη γιατι ετσι" δείχνει ότι έχεις την τάση να παρεξηγείς.

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

Κάποιοι δεν ξέρουν τις διαφορές οπότε και έχουν λαθεμένη εντύπωση. Ε, τους το επισημαίνουμε.

Το συνολικό ύφος γραφής δεν είναι υποτιμητικό για κανέναν.

 

Όσο για το google, υπάρχουν πολλές εξηγήσεις γιατί, αν και τι βρήκες....

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@smirnov

 

δε διαφωνούμε στις δυνατοτητες που είχε ή έχει η fortran, ούτε στους διάφορους urban legends που έχουν γραφτεί κατα καιρούς γι αυτή. Ο κόσμος έχει στο νου του κυρίως την f77. Τώρα για τους compilers, το visual studio αν θες δεν το αγοράζεις. Τον compiler της m$ μπορείς να τον χρησιμοποιήσεις χωρίς το IDE. Αντίθετα η intel χρεώνει (και πολύ καλά κάνει) τον compiler αρκετά λεφτά. Τώρα για την python νομίζω κανείς μεγάλο λάθος. Υπάρχουν πολλοί ερευνητές σε πεδία fem/bem κλπ που χρησιμοποιούν την python για να καλούν συναρτησεις γραμμένες σε fortran. Αν θέλει κάποιος μια συνάρτηση για επίλυση συστήματος, εννοείται δε θα φτιάξει ξανά από την αρχή μια. Αυτές που ήδη υπάρχουν, μπορείς να τις χρησιμοποιήσεις πλέον από πολλές γλώσσες. Επίσης, έχουν φτιαχτεί και διάφορα packages κατα καιρούς σχετικά. Αν επιμένεις πως η python είναι γελοία επιλογή, τότε και το matlab είναι εξίσου γελοίο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@Evgenios1

 

Μάλλον δεν κατάλαβες αυτά που διάβασες.

Πού γράφουμε ή υπαινισσόμαστε ότι η γλώσσα ΧΧΧΧΧ είναι τέλεια ;

Και ότι η "Η απαυτη γλωσσα ειναι καλυτερη γιατι ετσι" ;

Γράφουμε ότι είναι καλύτερη για τους x,y,z λόγους να κάνει το τάδε συγκεκριμένο πράγμα.

 

Και όσο για το "Οχι οχι κανεις ΛΑΘΟΣ ειναι χειροτερη γιατι ετσι" δείχνει ότι έχεις την τάση να παρεξηγείς.

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

Κάποιοι δεν ξέρουν τις διαφορές οπότε και έχουν λαθεμένη εντύπωση. Ε, τους το επισημαίνουμε.

Το συνολικό ύφος γραφής δεν είναι υποτιμητικό για κανέναν.

 

Όσο για το google, υπάρχουν πολλές εξηγήσεις γιατί, αν και τι βρήκες....

 

Πλακα μου κανεις; Γραφω σε ενα thread το οποιο εχει γινει SPLIT εξετιας του flame ΣΟΥ και μου λες "Μαλλον δε καταλαβες αυτα που διαβασες". Χριστιανε μου, αναγνωριζεις αυτα που γραφεις

Πώς παιδεύεστε με τους πίνακες στη C/C++...

 

H έλλειψη εγγενούς υποστήριξης είναι μεγάλος μπελάς.

Αν πχ. θέλω έναν πίνακα με μιγαδικούς τι κάνω ;

Aν θέλω μια εντολή να δρα σε έναν ολόκληρο πίνακα τι κάνω ( πχ. cos(A) ) ;

Μεγάλη φασαρία...

 

Στην Fortran που υποστηρίζονται ενδογενώς είναι μια-δύο γραμμές.

Ούτε malloc, ούτε κλάσσεις, ούτε δείκτες....

 

Σε λιγο θα ξεπερασεις και τον A CMS Τετιο FLAME/TROLL δεν εχω ξαναδει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
@smirnov

 

δε διαφωνούμε στις δυνατοτητες που είχε ή έχει η fortran, ούτε στους διάφορους urban legends που έχουν γραφτεί κατα καιρούς γι αυτή. Ο κόσμος έχει στο νου του κυρίως την f77.

Τώρα για τους compilers, το visual studio αν θες δεν το αγοράζεις. Τον compiler της m$ μπορείς να τον χρησιμοποιήσεις χωρίς το IDE. Αντίθετα η intel χρεώνει (και πολύ καλά κάνει) τον compiler αρκετά λεφτά.

Τώρα για την python νομίζω κανείς μεγάλο λάθος. Υπάρχουν πολλοί ερευνητές σε πεδία fem/bem κλπ που χρησιμοποιούν την python για να καλούν συναρτησεις γραμμένες σε fortran. Αν θέλει κάποιος μια συνάρτηση για επίλυση συστήματος, εννοείται δε θα φτιάξει ξανά από την αρχή μια. Αυτές που ήδη υπάρχουν, μπορείς να τις χρησιμοποιήσεις πλέον από πολλές γλώσσες. Επίσης, έχουν φτιαχτεί και διάφορα packages κατα καιρούς σχετικά. Αν επιμένεις πως η python είναι γελοία επιλογή, τότε και το matlab είναι εξίσου γελοίο.

 

1) Δυστυχώς ναι, ο κόσμος έχει πράγματι στο νου την F77 , εξ ου και πολλές παρεξηγήσεις. Όμως η F90 υπάρχει ήδη εδώ και 20 χρόνια.

 

2) Για τους compilers, είπα ότι δεν γνωρίζω τις πολιτικές των τιμών αλλά μάλλον ναι, είναι ακριβοί.

Πάντως δεν νομίζω ότι δεν μπορούν να βρεθούν και δωρεάν (όπως το minGW).

 

3) Για την python, πιθανόν κάνω λάθος, εξάλλου δεν την ξέρω. Αλλά και μόνον που είναι interpreted δεν θα την άγγιζα ποτέ.

 

4) Σε ότι αφορά το matlab, νομίζω συγκρίνεις ανόμοια. Το matlab όπως και το mathematica συνδυάζει με αποδοτικό τρόπο αριθμητικούς

υπολογισμούς, συμβολικούς υπολογισμούς και γραφικά.

Η χρήση του σε μεγάλη κλίμακα έχει βάση όταν δεν δικαιολογείται ο χρόνος και ο κόπος ανάπτυξης προσομοιώσεων σε C/C++ ή Fortran.

Aν εννοείς την python με αυτή τη λογική θα συμφωνήσω.

(Εξάλλου το matlab παράγει compiled κώδικα, η python ; )

 

@Εvgenios1

 

Γιατί συμμετέχεις αφού τα πιστεύεις αυτά ; θα έπρεπε απλώς να αγνοήσεις.

 

Δεν υπάρχει καμιά διαμάχη παρά μόνον στο μυαλό σου. Απόψεις εκθέτουμε εδώ.

Σε άλλα συμφωνώ με τους συνομιλητές, σε άλλα διαφωνώ και σε άλλα δεν γνωρίζω.

Το γράφω καθαρά.

 

Και όσο για το split, θα μπορούσα να ανοίξω νέο thread αν το σκεφτόμουν αλλά η αφορμή ήταν καλή στο αρχικό.

Εξάλλου αν δεν ενδιέφερε δεν θα είχαν συμμετάσχει οι άλλοι.

Επιπλέον, σου ξαναλέω ότι εγώ αναφέρθηκα στην υπεροχή ή όχι συγκεκριμένων χαρκτηριστικών (αρχικά στον χειρισμό

πινάκων), όχι καθολικά. Πουθενά δεν λέω αόριστα "η XXXXX είναι καλύτερη" όπως λαθεμένα επιμένεις ότι είπα.

Και μετά μου λες ότι εγώ δεν ξέρω τι γράφω...

 

Για να τελειώνουμε, αν συνεχίσεις τις έριδες δεν θα σου απαντήσω ξανά - δεν έχει νόημα.

Επεξ/σία από V.I.Smirnov
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ποια γλώσσα προτείνεις σε προπτυχιακό φοιτητή γενικά; Python.

 

+1

 

Γενικά, εγώ δεν είχα την Python σε καμία υπόληψη αλλά με έβγαλε ασπροπρόσωπο όταν με την βοήθεια της (PyS60) έγραψα ένα αρκετά μεγάλο λογισμικό για Symbian (S60) το οποίο είχε άμεση σχέση με χρονικούς υπολογισμούς. Από τότε την έχω κατά νου και για τυχόν μελοντικά S60 projects :-)

 

Υ.Γ.

Αν έκανα το ίδιο με την Symbian C++ θα είχα ματώσει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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

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