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

Debate: C/C++ VS Fortran


V.I.Smirnov

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

το Mathematica είναι πολύ δύσκολο και σε καμία περίπτωση δε μπορεί να συγκριθεί με το matlab, απο την άλλη όμως : ο πιο σύντομος δρόμος είναι αυτός που ξέρεις όπως λέω πάντα :P

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

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

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

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

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

Δημοσ. (επεξεργασμένο)
το Mathematica είναι πολύ δύσκολο και σε καμία περίπτωση δε μπορεί να συγκριθεί με το matlab, απο την άλλη όμως :

ο πιο σύντομος δρόμος είναι αυτός που ξέρεις όπως λέω πάντα :P

 

 

Nαι, στην ευχρηστία και φιλικότητα δεν συγκρίνοται,το matlab είναι πολύ ανώτερο.

Το matlab είναι άριστο για πράγματα που αφορούν κυρίως επεξεργασία δεδομένων μέσω

πινάκων, εξ ου και το όνομά του : mat (-rix) lab (-aratory).

 

To Mathematica έχει προσανατολισμό κύρια για συμβολικές πράξεις και είναι δύσκολο και δύσχρηστο.

Η φιλοσοφία του είναι για να αντιμετωπίζει (και) θεωρητικά προβλήματα των μαθηματικών και της

μαθηματικής φυσικής και σ' αυτά είναι ασυναγώνιστο.

Και μόνον το συναρτησιακό στυλ γραφής που απαιτεί για να χρησιμοποιείται αποτελεσματικά, το

καθιστά δυσπρόσιτο στους χρήστες που έχουν τον κοινό διαδικαστικό τρόπο σκέψης.

Αλλά για κάποιον που ασχολείται με μαθηματική φυσική και ξέρει να το χειρίζεται, δεν παίζεται.

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

Με fortran δεν έχω παίξει ποτέ μου, ξέρω οτι είναι πολύ παλιά, συνήθως ασχολούμαι με επεξεργασία εικόνων, κάτι που στο matlab μπορώ να κάνω πολύ εύκολα, Αξίζει να δοκιμάσω την fortran?

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

Δημοσ. (επεξεργασμένο)
Με fortran δεν έχω παίξει ποτέ μου, ξέρω οτι είναι πολύ παλιά, συνήθως ασχολούμαι με επεξεργασία εικόνων, κάτι που στο matlab μπορώ να κάνω πολύ εύκολα, Αξίζει να δοκιμάσω την fortran?

 

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

To θέμα στο thread άνοιξε επειδή πολλοί όπως κι εσύ έχουν την τελείως εσφαλμένη εντύπωση

ότι η fortran είναι απαρχαιωμένη και πεθαμένη.

 

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

Στην δική μου περίπτωση ( BEM/FEM στο παρελθόν και μέθοδος FDTD τώρα ) δεν ήταν.

 

Η fortran 95/2003 (όχι η 77, προς Θεού) είναι πρώτη επιλογή για αριθμητικές μεθόδους, προσομοιώσεις κλπ όταν θέλεις να

χρησιμοποιήσεις κλασσικό προγραμματισμό και δεν χρειάζεσαι την αντικειμενοστρεφή προσέγγιση, δηλ. αντί της C++,

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

 

Τα πακέτα όπως το matlab και το Mathematica είναι για να λύνονται προβλήματα και να επεξεργάζονται δεδομένα

όταν δεν αξίζει ή δεν δικαιολογείται ο χρόνος/κόπος/κόστος ανάπτυξης του κώδικα στις παραδοσιακές γλώσσες.

 

Υ.Γ. Η υπογραφή σου είναι μια αλήθεια. Αρκεί να μην μας καθιστά δύσκαμπτους και κακόπιστους.

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

Μου κάνει εντύπωση γιατί δεν σε βόλεψε στις μεθόδους που αναφέρεις. Όταν έχεις χρόνο κατέβασε τον κώδικα (~25 γραμμές) και ρίξε μια ματιά http://www.mathworks.com/matlabcentral/fileexchange/21000-tiny-fdtd-v1-0.

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

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

Δεν λέω ότι δεν θα μπορούσε να γίνει.

 

Το πρόγραμμα που έγραψα (έχει σχεδόν τελειώσει) ήταν αρκετά σύνθετο, ασύγκριτα πιο περίπλοκο από αυτό το απλό demo.

Είναι στην πραγματικότητα συνδυασμός FDTD και μεθόδου ροπών (MOM). Ο βασικός κώδικας είναι περίπου 11000 γραμμές.

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

 

Δεν είμαι εξοικοιωμένος με το matlab για να γράψω σ' αυτό κάτι τόσο εκτεταμένο (όσο μικρότερο κι' αν προέκυπτε τελικά λόγω

των αυτοματισμών που διατίθενται εκεί). Θέλαμε ένα δικό μας πρόγραμμα, ξεκάθαρο και συμπαγές (robust) και όσο το δυνατόν γενικό

και ευέλικτο. Ο χρήστης δεν θα έπρεπε να έχει καμιά επαφή με προγραμματιστικό περιβάλλον παρά μόνον με το exe και να το τρέχει

εύκολα παντού. Να ρυθμίζει εύκολα και διαισθητικά τις παραμέτρους και τα δεδομένα εισόδου και να παίρνει τα αποτελέσματα σε κατανοητή

και εύχρηστη μορφή, όπως κάνουν τα εμπορικά προγράμματα (FEKO, XFDTD, SEMCAD κλπ).

Kρίναμε ότι η fortran ήταν καταλληλότερη και το έγραψα εκεί.

 

Προεπεξεργασία των δεδομένων (γεωμετρικά μοντέλα σκεδαστών και κεραιών) έκαναν άλλοι με άλλο λογιμικό όπως

τo COMSOL και, ναι, και το matlab. Στο matlab θα γίνει επίσης η μετα-επεξεργασία των αποτελεσμάτων (γραφικά κλπ).

 

Αν επρόκειτο για ένα demo ή μια μικρότερη εφαρμογή-μελέτη ενός συγκεκριμένου πράγματος το matlab είναι σαφώς καλύτερο.

Αλλά κανένα εμπορικό γενικό πρόγραμμα δεν είναι γραμμένο σε τέτοιες πλατφόρμες. Κι εμείς θέλαμε κάτι σε τέτοιο στυλ.

Θα διαλέγαμε λοπόν ή C++ ή fortran.

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

ΟΚ καταλαβαίνω.

Καθαρά ενημερωτικά γιατί αξίζει να το δεις στο μέλλον, 1) στο MATLAB όπως είπες όντως θα ήταν αρκετά μικρότερος ο κώδικας, 2) η γλώσσα MATLAB σου δίνει δυνατότητα για GUI (διαθέτει και GUI editor) εύκολα και ευέλικτα, 3) μπορείς να κάνεις εύκολα integrate κομμάτια Fortran, C/C++ και Java (code reusability), 4) όπως προείπα δίνει τη δυνατότητα να κάνεις build standalone (.exe) εφαρμογή (και με installer αν θες!) και server side εφαρμογές, 5) υπάρχουν αρκετές εμπορικές εφαρμογές που έχουν γραφεί σε MATLAB. Γενικά είναι ένα ολοκληρωμένο περιβάλλον και γλώσσα ανάπτυξης που μπορεί να χρησιμοποιηθεί άνετα για την υλοποίηση ολοκληρωμένων υπολογιστικών εφαρμογών σε ερευνητικό και εμπορικό επίπεδο.

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

 

Φυσικά σε όλα τα παραπάνω θα μπορούσε να μπει και το Simulink συμπληρωματικά, αλλά ας μην το μπλέξουμε προς το παρόν.

 

:-)

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

Η διαμάχη σχετικά με την FORTRAN, την C/C++ και το MATLAB μου θυμίζει ανάλογες παλαιότερες διαμάχες σχετικά με τον CA CLIPPER, την VISUAL-FOX PRO και την C/C++ ή VB. Για όσους δεν γνωρίζουν, το CLIPPER και η VISUAL-FOX PRO ήταν δυο πολύ ισχυρά εργαλεία προγραμματισμού βάσεων δεδομένων, αυτό που λέγαμε κάποτε «Γλώσσες 4ης Γενιάς». Κάθετες δηλαδή γλώσσες οι οποίες είχαν σχεδιαστεί για να εξυπηρετούν κατά κύριο λόγο πολύ συγκεκριμένες ανάγκες (ανάπτυξη λογισμικού ΒΔ). Καθώς αμφότερες CLIPPER και VISUAL-FOX PRO ήταν Turing-complete μπορούσαν να χρησιμοποιηθούν για την σχεδίαση οποιοδήποτε τύπου λογισμικού, όμως εκ φύσεως ήταν βελτιστοποιημένες για την ανάπτυξη ΒΔ εφαρμογών. Τελικά και οι δυο γλώσσες οδηγήθηκαν στο περιθώριο, όχι διότι δεν ήταν ισχυρές αλλά διότι υπερκαλύφθηκαν από τις βιβλιοθήκες άλλων γενικής χρήσεως γλωσσών προγραμματισμού (3ης γενιάς) ακόμα και αν οι βιβλιοθήκες αυτές δεν μπορούν να κοντράρουν 1:1 όλα τα προτερήματα και τις δυνατότητες των δυο αυτών παλιών αλλά πανίσχυρων (στις ΒΔ) εργαλείων (φυσικά σήμερα η ανάπτυξη τους έχει πια διακοπεί για να γίνουν δικαιότερες συγκρίσεις).

 

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

 

Όσον αφορά τον προγραμματισμό, είναι λογικό η FORTRAN να μην έχει καθόλου καλή φήμη γενικά στους προγραμματιστές του σήμερα καθώς το εργαλείο έχει γίνει deprecate όσον αφορά την ανάπτυξη γενικού (και πιο συνηθισμένου) λογισμικού εδώ και τουλάχιστον 3 δεκαετίες. Όσον αφορά την ανάπτυξη ειδικού λογισμικού, το οποίο γίνεται τις περισσότερες φορές από εξειδικευμένους επιστήμονες εκεί τα πράματα αλλάζουν και η FORTRAN χρησιμοποιείται κανονικά. Ποίος δουλεύει σήμερα FORTRAN; Ο καθηγητής βιολογίας μου στο Λύκειο την F77 (πριν πολλά χρόνια) :-P, ο Smirnoff που είναι Ηλεκτρολόγος Μηχανολόγος (αν θυμάμαι καλά –no offence) και εραστής των Μαθηματικών (αυτό είναι σίγουρο) και άλλοι παρόμοιοι οι οποίοι γενικά τα πάνε πολύ καλά και αγαπούν τα μαθηματικά οπότε εξ ορισμού λατρεύουν την FORTRAN (αφού σχεδιάστηκε εξ αρχής για μαθηματικούς και άλλες παρόμοιες ειδικότητες που ασχολούνται «με επιστημονικούς υπολογισμούς»!) και εκείνη με την σειρά της τους εξυπηρετεί αφάνταστα στην δουλειά τους.

:-)

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

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

@DirectX

 

To clipper το θυμάμαι που ακουγόταν πολύ κάποτε, πολλά χρόνια πριν.

Το visual fox είναι μεταγενέστερο.

 

Η fortran είναι απλώς μια εναλλακτική λύση, για κάποιες περιπτώσεις - κυρίως αριθμητική ανάλυση κλπ - πολύ καλή.

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

Σε κάθε περίπτωση πρέπει να σταθμίζεις αν, τι και πόσο πρέπει να χρησιμοποιήσεις κάτι και εσύ ως επαγγελματίας

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

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

δυστυχώς έχουν ατονήσει επειδή δεν τα χρησιμοποιώ.)

Τα μαθηματικά είναι η μεγάλη αναλλοίωτη αξία και η κορωνίδα των θετικών επιστημών από κάθε άποψη.

 

Και μια που το έφερε η κουβέντα, το nick name μου "V.I.Smirnov" δεν είναι τυχαίο. Είναι το όνομα ενός σπουδαίου

ρώσσου μαθηματικού (1887-1974) που ανάμεσα στα άλλα έγραψε το σύγγραμμα "A course on Higher Mathematics"

το οποίο δέσποζε (και ακόμα δεσπόζει παρότι παλιό) στην βιβλιογραφία των γενικών μαθηματικών για δεκαετίες.

Πέντε μεγάλοι τόμοι από τους οποίους κάποτε μελέτησα προσεκτικά τους ΙΙΙ και IV και επηρέασαν σημαντικά τον τρόπο σκέψης μου.

 

@Dr Fuzzy

 

Nαι έτσι είναι.

Για το 4) είχα ακούσει κάτι αλλά τίποτε βέβαιο.

Για το 5) που ανάφερες δεν το ήξερα.

 

Eλπίζω να βρω τον χρόνο και την αφορμή να ασχοληθώ στο μέλλον.

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

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

Και μια που το έφερε η κουβέντα, το nick name μου "V.I.Smirnov" δεν είναι τυχαίο. Είναι το όνομα ενός σπουδαίου

ρώσσου μαθηματικού (1887-1974) που ανάμεσα στα άλλα έγραψε το σύγγραμμα "A course on Higher Mathematics"

το οποίο δέσποζε (και ακόμα δεσπόζει παρότι παλιό) στην βιβλιογραφία των γενικών μαθηματικών για δεκαετίες.

Πέντε μεγάλοι τόμοι από τους οποίους κάποτε μελέτησα προσεκτικά τους ΙΙΙ και IV και επηρέασαν σημαντικά τον τρόπο σκέψης μου.

 

Το γνωρίζω V.I.Smirnov - δεν γράφω ποτέ τίποτα τυχαία: [..](και εραστής των Μαθηματικών (αυτό είναι σίγουρο)[..] ;), βλέπεις.. μπορείς να μάθεις πολλά από τα usernames των συνομιλητών σου :-)

 

Γενικά, οι Ρώσοι υπήρξαν πράγματι μεγάλοι διανοητές, επιστήμονες σε διάφορους τομείς (πχ. διαστημική - αστροναυτική, λογοτεχνία κτλ) με τα συγγράμματα τους να ασκούν πάντα πνευματική επιρροή στους αναγνώστες τους.

 

 

Όσον αφορά τα υπόλοιπα (που όμως δεν παραθέτω για οικονομία χώρου), συμφωνώ - βλέπεις, κάποτε ήμουν της άποψης ότι όλα μπορούν να γίνουν με την C/C++ σήμερα χρησιμοποιώ οτιδήποτε με εξυπηρετεί καλύτερα (C/C++, C#, Java, Python) αρκεί να βγαίνει γρήγορα και ποιοτικά (πάνω από όλα) το project.

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

  • 7 μήνες μετά...

Mάλλον δεν εκφράστηκες σωστά αλλά ναι, έτσι είναι.

 

Η fotran είναι εξαιρετική σε αριθμητικές εφαρμογές για πολλούς λόγους (και πάντως πολύ βολικότερη από τη C++).

 

Και έχει σχεδόν τα πάντα (και δείκτες και αντικείμενα και κληρονομικότητα...)

 

Όσοι δεν γνωρίζουν την υποτιμούν και την θεωρούν "πεθαμένη". Δεν εκπλήσσομαι, είναι φυσικό διότι οι περισσότεροι δεν

 

κάνουν scientific programming ώστε να έχουν από πρώτο χέρι εικόνα των δυνατοτήτων της.

 

To γελοίο είναι όμως να το λένε αυτό απόφοιτοι πληροφορικής που θα έπρεπε να είναι ενημερωμένοι...

 

Είναι όντως πολύ βολική. Για αυτόν τον λόγο άλλωστε φτιάχτηκε. Η C++ είναι μια αντικειμενοσταφής γλώσσα και δεν έχει σχέση με μαθηματικο-τέτοια...ανάλογα με τι θέλεις να κάνεις επιλέγει και την κατάληλη γλώσσα! Αρκεί να ξέρεις να προγραμματίζει σε αυτή βέβαια...χεχε

 

Επίσης θέλω να επισημάνω οτι δεν συμφωνώ με αυτό: "To γελοίο είναι όμως να το λένε αυτό απόφοιτοι πληροφορικής που θα έπρεπε να είναι ενημερωμένοι..." Γιατί, δεν μαθαίνουμε όλες τις γλώσσες. Μαθαίνουμε σχεδόν όλα τα είδη(συναρτησιακός , λογικος κτλ προγραμματισμός). Απο κει και πέρα είναι στο χέρι του καθενός το τι θα ακολουθήσει. Εξάλου απο ποιόν να είμαστε ενημερωμένοι? Μόνοι μας τα μαθαίνουμε και αν κάποιος θέλει να δώσει βάση στα μαθήματα της σχολής και όχι σε εξωτερικά δικά του δεν έχει χρόνο για την σχολή! Δεν ξέρω τι έχεις τελειώσει και σπουδάσει αλλα σε αυτόν το κλάδο έστι έχουν τα πράγματα δυστυχώς η ευτυχώς.... Αλλα όπως και να χει όλες οι γλώσσες καλές είναι δεν υποτιμώ καμιά προσωπικά...

 

φιλικά...billys19

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

  • 8 μήνες μετά...

Προφανώς οι προγραμματιστές όλου του κόσμου είναι ηλίθιοι που χρησιμοποιούν περισσότερο C και όχι fortran....

Lololol....

 

Προφανως οι προγαμματιστες ανα τον κοσμο εχουν το ιδιο αντικειμενο. (NOT)

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

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

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

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

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

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

Σύνδεση

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

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

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