Σελ. 1 από 5 123 ... ΤελευταίαΤελευταία
Εμφάνιση 1-15 από 62
  1. #1
    Εγγραφή
    06-07-2005
    Περιοχή
    Νέα Υόρκη
    Ηλικία
    49
    Μηνύματα
    11.666
    Downloads
    6
    Uploads
    2
    Τύπος
    Cable
    Ταχύτητα
    300 Mbps down/10 Mbps up
    ISP
    Spectrum
    Θέλω να ξεκινήσω ένα καινούριο project και πρέπει να διαλέξω γλώσσα προγραμματισμού. Είμαι ανοιχτός στο να μάθω μία που δεν ξέρω, αλλά μόνο αν κερδίζω πολλά, κυρίως σε απόδοση. Αν μπορείτε προτείνετε ιδέες με βάση το ποια ταιριάζει καλύτερα στο project που περιγράφω παρακάτω, και όχι με βάση ποια γλώσσα προτιμάτε γενικά.

    Θα πρέπει να έχω αρκετά μαθηματικά και αρκετά metadata. Η κύρια δομή θα είναι μικρά objects με λίγα metadata μέσα τους, των οποίων οι τιμές θα μεταβάλλονται με βάση κάποια μαθηματικά (χημική κινητική, γεωμετρία, και λίγη μηχανική ρευστών). Η ιδέα είναι ότι συγκεκριμένες διεργασίες θα πραγματοποιούνται στη μονάδα του χρόνου, και το κάθε object θα πρέπει να ανανεώνει τον εαυτό του, καθώς και τις αλληλεπιδράσεις με το περιβάλλον του. Αναμένεται να παράγονται πολλές χιλιάδες objects κατά τη διάρκεια μίας προσομοίωσης, μπορεί και εκατοντάδες χιλιάδες, τα οποία θα αυξάνονται με το πέρασμα του χρόνου προσομοίωσης.

    Αν βοήθησα καθόλου, πείτε μου τι προτείνετε και γιατί. Η κοινότητα που θα επωφεληθεί με τον κώδικα δουλεύει αρκετά με python (απορρίπτεται λόγω ταχύτητας) και Java (που δεν ξέρω). Λίγοι δουλεύουν με Fortran (που ξέρω πολύ καλά) αλλά με 77 και 90, άρα τα objects δεν υποστηρίζονται σε ικανοποιητικό βαθμό, αν και αυτό δεν με ενδιαφέρει, θα χρησιμοποιήσω 2008 αν το αποφασίσω. Επίσης υπάρχουν λίγοι που δουλεύουν με C++, την οποία ξέρω ελάχιστα, αλλά θα με ενδιέφερε πολύ να εμβαθύνω. Υπάρχει και η julia, αλλά είναι καινούρια και δεν ξέρω αν θα αντέξει στο χρόνο, οπότε είναι ίσως νωρίς να επενδύσω σε κάτι με ορίζοντα δεκαετίας και να πεθάνει η γλώσσα στα μισά. Άλλες γλώσσες;

    Ευχαριστώ πολύ!

  2. #2
    Εγγραφή
    04-03-2011
    Μηνύματα
    579
    Downloads
    0
    Uploads
    0
    Αν χρησιμοποιήσεις ευρέως πίνακες και γενικώς μαθηματικά που μπορούν να εκφραστούν διανυσματικά και μητρωικά και δεν υπάρχει περιορισμός ή σνομπισμός στο είδος της γλώσσας, η Fortran είναι η καλύτερη. Επιπλέον, θα είσαι άμεσα παραγωγικός.

    Η πλήρης αντικειμενοστρέφεια που μπορεί να επιτευχθεί με άλλες γλώσσες όπως C++, C#, Java, συνήθως προσφέρει ελάχιστα στο scientific computing διότι εισάγει επιπλέον πολυπλοκότητα δίχως ουσιαστικό όφελος. Είναι πολύ πιθανόν ότι η αντικειμενοστρέφεια που παρέχει η fortran (η οποία είναι πλέον πολύ υψηλή αλλά όχι όσο στις C++/Java/C#) μπορεί να καλύψει τις ανάγκες σου. Ίσως μπορείς ακόμη και να χρησιμοποιήσεις μόνον κάποια νέα δομή χωρίς να χρειάζονται όλες οι παραδοσιακές λειτουργίες που έχει ένα αντικείμενο (constructors, κληρονομικότητα κλπ).
    Η C++ είναι αρκετά πολύπλοκη στη σύνταξη ακόμη και σε απλά πράγματα και ακόμα κι αν χρησιμοποιήσεις βιβλιοθήκες. Θα σκέπτεσαι διαρκώς περισσότερο τη σύνταξη παρά το καθεαυτό πρόβλημα.
    Αλλά είναι καλύτερη επιλογή αν θέλεις να προσθέσεις κάποιο interface (π.χ. Qt) ή να βάλεις γραφικά. Π.χ. το openGL μπορεί να εσωματωθεί ευκολότερα στη C/C++ παρά στη fortran.
    Για scientific visualization, η απόλυτη λύση, το VTK είναι C++.

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

    Eναλλακτικά, μπορείς να δοκιμάσεις τη C# η οποία έχει πολλές ευκολίες (περισσότερες από τη Java). Ωστόσο, στη C# θα πρέπει να αφήσεις τον κλασσικό διαδικαστικό τρόπο γραφής ή να τον προσομοιώσεις δια της πλαγίας οδού δηλώνοντας τις συναρτήσεις public static. Στη C++, δεν υπάρχει αυτό, μπορείς να γράψεις διαδικαστικά και να χρησιμοποιήσεις αντικείμενα μόνον όπου θελήσεις. Στις java/C# πρέπει παντού να γράφεις με κλάσεις.
    Τελευταία επεξεργασία από το μέλος A.N.T. : 22-09-16 στις 22:26.

  3. #3
    Εγγραφή
    06-07-2005
    Περιοχή
    Νέα Υόρκη
    Ηλικία
    49
    Μηνύματα
    11.666
    Downloads
    6
    Uploads
    2
    Τύπος
    Cable
    Ταχύτητα
    300 Mbps down/10 Mbps up
    ISP
    Spectrum
    Ευχαριστώ πολύ για την αναλυτική απάντηση. Δεν περίμενα η Fortran να είναι η πρώτη γλώσσα που θα προταθεί, αλλά χαίρομαι ιδιαίτερα που έγινε, γιατί πραγματικά θα είμαι παραγωγικός από την πρώτη μέρα. Ανάγκη γραφικών θα υπάρχει, αλλά μόνο σε post-processing level, οπότε οι υπολογισμοί και τα γραφικά μπορούν να διαχειρίζονται από διαφορετικά πακέτα.

  4. #4
    Εγγραφή
    24-04-2006
    Περιοχή
    Χανιά
    Ηλικία
    56
    Μηνύματα
    1.624
    Downloads
    1
    Uploads
    0
    ISP
    None
    Θα βοηθούσε να προσδιορίσεις λεπτομερέστερα τον βαθμό αντικειμενοστρέφειας* που απαιτεί το πρόβλημα (σε συνάρτηση με την ευκολία υλοποίησης) και αν οι δυνατότητες που παρέχει η Fortran είναι επαρκείς*. Αν ναι, δεν βλέπω τον λόγο να ψάξεις για κάτι άλλο, λαμβάνοντας υπόψη και τον διαχωρισμό core λειτουργικότητας και visualization.

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

    Διαφορετικά, πως το λένε οι πιστοί; You can rarely go wrong with C++

    * Αυτό προϋποθέτει ότι γνωρίζεις ήδη σε κάποιο βάθος θεμελιώδη θέματα του αντικειμενοστραφούς προγραμματισμού ώστε να μπορείς να κάνεις τις εκτιμήσεις αυτές. Διαφορετικά βρες κάποιον να το/τα συζητήσεις κατ' ιδίαν πολύ λεπτομερέστερα

  5. #5
    Εγγραφή
    01-04-2007
    Ηλικία
    36
    Μηνύματα
    841
    Downloads
    0
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    11.438 / 1.018
    ISP
    Wind
    DSLAM
    Wind - ΤΟΥΜΠΑ
    Δες και αυτό αν θες: How To Make Python Run As Fast As Julia

  6. #6
    Εγγραφή
    06-07-2005
    Περιοχή
    Νέα Υόρκη
    Ηλικία
    49
    Μηνύματα
    11.666
    Downloads
    6
    Uploads
    2
    Τύπος
    Cable
    Ταχύτητα
    300 Mbps down/10 Mbps up
    ISP
    Spectrum
    Παράθεση Αρχικό μήνυμα από guardianhelm Εμφάνιση μηνυμάτων
    Δες και αυτό αν θες: How To Make Python Run As Fast As Julia
    Αυτό το άρθρο ενισχύει την άποψή μου (της οποίας η συζήτηση δεν ανήκει εδώ) ότι η python είναι μία κουτσουρεμένη γλώσσα που για να κάνεις οτιδήποτε εκτός από κάποια εξωφρενικά βασικά πράγματα χρειάζεσαι addons, είτε αυτά λέγονται numpy είτε cython είτε οτιδήποτε.

  7. #7
    Εγγραφή
    01-04-2007
    Ηλικία
    36
    Μηνύματα
    841
    Downloads
    0
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    11.438 / 1.018
    ISP
    Wind
    DSLAM
    Wind - ΤΟΥΜΠΑ
    Παράθεση Αρχικό μήνυμα από tsigarid Εμφάνιση μηνυμάτων


    Αυτό το άρθρο ενισχύει την άποψή μου (της οποίας η συζήτηση δεν ανήκει εδώ) ότι η python είναι μία κουτσουρεμένη γλώσσα που για να κάνεις οτιδήποτε εκτός από κάποια εξωφρενικά βασικά πράγματα χρειάζεσαι addons, είτε αυτά λέγονται numpy είτε cython είτε οτιδήποτε.
    Χαχα γιατί, στη C γράφεις τα πάντα μόνος σου; Βιβλιοθήκη είναι το numpy, σαν να λέμε boost.

    Το point είναι ότι στα περισσότερα use cases, σύμφωνα και με το άρθρο, η python είναι εξίσου γρήγορη με τη julia εφόσον ξέρεις πώς να τη χρησιμοποιείς.

    Και με τη cython μπορείς να φτιάξεις extensions για έτοιμα, μικρά modules γραμμένα σε C ή fortran και να τα καλέσεις από python όπου και στήνεις το σύστημά σου, χρησιμοποιώντας όμως τις κατάλληλες βιβλιοθήκες.

    Δεν χρειάζεται να το συζητήσουμε περαιτέρω εδώ αν δεν θες. Παρ'όλα αυτά, για το δικό σου πρόβλημα νομίζω πως μια συνδυαστική λύση θα ήταν καλύτερη από το να χρησιμοποιήσεις μόνο fortran, όπως προτάθηκε, γιατί τα επίπεδα του prototyping που μπορείς να πετύχεις στο οικοσύστημα της python (και γενικότερα σε scripting γλώσσες) δεν μπορείς ούτε να τα ονειρευτείς με πιο low-level γλώσσες (τον χρόνο που χάνεις γράφοντας τα extensions, τον κερδίζεις με το παραπάνω συνολικά στο development). Ταυτόχρονα, αν βασιστείς σε μικρές και γρήγορες ρουτίνες γραμμένες σε c/fortran είναι πιθανό να μην παρατηρήσεις αισθητή διαφορά στην ταχύτητα (με μια επιφύλαξη αυτό, αλλά, όπως και να έχει, στη θέση σου θα το εξέταζα σαν ενδεχόμενο).

    Κάθε γλώσσα έχει τα καλά της και τα κακά της, αλλά πλέον το να γράψεις "μεγάλο project" εξ ολοκλήρου σε C ή fortran μου φαίνεται τουλάχιστον μαζοχιστικό

  8. #8
    Εγγραφή
    07-06-2005
    Μηνύματα
    671
    Downloads
    20
    Uploads
    0
    DSLAM
    Cyta Hellas - ΚΑΛΑΜΑΡΙΑ
    Παράθεση Αρχικό μήνυμα από tsigarid Εμφάνιση μηνυμάτων


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

  9. #9
    Το avatar του μέλους turboirc
    turboirc Guest
    Fortran?! Why not matlab?

  10. #10
    Εγγραφή
    06-07-2005
    Περιοχή
    Νέα Υόρκη
    Ηλικία
    49
    Μηνύματα
    11.666
    Downloads
    6
    Uploads
    2
    Τύπος
    Cable
    Ταχύτητα
    300 Mbps down/10 Mbps up
    ISP
    Spectrum
    Η Matlab είναι proprietary. Δεν μπορείς να απαιτήσεις από όλους τους χρήστες να έχουν άδεια.

  11. #11
    Το avatar του μέλους turboirc
    turboirc Guest
    Σε γενικές γραμμές σε όλους τους μαθητές μου αρχίζω με C++ θεωρώντας πρώτον ότι είναι η δυσκολότερη (και άρα, Κατανοώντας αυτή μαθαίνεις οτιδήποτε άλλο πολύ εύκολα) Και δεύτερον και σημαντικότερο ότι τα εργαλεία που έχουμε στα Windows είναι τέλεια (μην κάνεις το λάθος να ασχοληθείς σε nix, είναι τελείως no match ειδικά στο debugging που πρακτικά στα Windows σκίσει τη γάτα).

    Για τη φορτραν δεν θα το έλεγα, είναι αρχαία και δεν έχεις εργαλεία. Το μόνο υπέρ είναι ότι έχει μεγάλη πανεπιστημιακή βιβλιοθήκη Αλλά ότι και να θες σήμερα υπάρχει στη C++ μαζί με ένα τεράστιο όγκο βιβλιοθηκών από εξαιρετικά καταρτισμένους μηχανικούς.
    Τελευταία επεξεργασία από το μέλος turboirc : 14-10-16 στις 22:07.

  12. #12
    Εγγραφή
    06-07-2005
    Περιοχή
    Νέα Υόρκη
    Ηλικία
    49
    Μηνύματα
    11.666
    Downloads
    6
    Uploads
    2
    Τύπος
    Cable
    Ταχύτητα
    300 Mbps down/10 Mbps up
    ISP
    Spectrum
    Και τι έγινε που είναι αρχαία; Έχει εξελιχτεί πολύ από την εποχή της F77 και πλέον δεν υστερεί σε τίποτα. Για μαθηματικά, εξακολουθεί να είναι στην κορυφή, και με τεράστια βάση χρηστών. Όσο για τα εργαλεία, εξαρτάται τι θες. Όλες οι σημαντικές βιβλιοθήκες έχουν fortran binaries και debuggers υπάρχουν άφθονοι.

    Όσο για προγραμματισμό σε windows, λέω να το αφήσω να πέσει, γιατί θα βγούμε πολύ offtopic.

  13. #13
    Το avatar του μέλους turboirc
    turboirc Guest
    Εγώ είπα τη γνώμη μου ως επαγγελματίας... Από εκεί και πέρα κάνεις ότι θες.

  14. #14
    Εγγραφή
    06-07-2005
    Περιοχή
    Νέα Υόρκη
    Ηλικία
    49
    Μηνύματα
    11.666
    Downloads
    6
    Uploads
    2
    Τύπος
    Cable
    Ταχύτητα
    300 Mbps down/10 Mbps up
    ISP
    Spectrum
    Αυτό ακριβώς ζήτησα, γνώμες, και σε ευχαριστώ. Και εγώ επαγγελματικά προγραμματισμό κάνω, συνάδελφε

  15. #15
    Εγγραφή
    04-03-2011
    Μηνύματα
    579
    Downloads
    0
    Uploads
    0
    "H Fortran είναι αρχαία και δεν έχεις εργαλεία".
    Και το ακούσαμε αυτό από επαγγελματία.
    Προφανώς έχεις μείνει 40 χρόνια πίσω, η fortran πάντως όχι. Ζει και βασιλεύει.
    Και έχει πανίσχυρους compilers και περιβάλλοντα όπως το parallel studio της Intel που ανανεώνονται κάθε χρόνο.

    Μην εκφέρεις άποψη για κάτι που δεν ξέρεις, εκτίθεσαι.

Σελ. 1 από 5 123 ... ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Επιλογή οπτικής ίνας για networking
    Από jonhh στο φόρουμ Networking
    Μηνύματα: 3
    Τελευταίο Μήνυμα: 08-09-16, 16:57
  2. Επιλογη CPU COOLER για Ι7 870
    Από manolios στο φόρουμ Κουτιά, τροφοδοτικά και ψύξη
    Μηνύματα: 27
    Τελευταίο Μήνυμα: 19-05-16, 12:51
  3. Επιλογη καρτας γραφικων για 4Κ video και 240fps
    Από Nikos_Mpl στο φόρουμ Κάρτες ήχου, γραφικών, ηχεία και οθόνες
    Μηνύματα: 25
    Τελευταίο Μήνυμα: 19-04-16, 16:11
  4. Σειρά Μαθημάτων Γλώσσας Προγραμματισμού Python & Ρομποτικής
    Από greeklug στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 0
    Τελευταίο Μήνυμα: 24-02-16, 19:32
  5. Επιλογη καρτας γραφικων για video rendering
    Από nikoslykos στο φόρουμ Κάρτες ήχου, γραφικών, ηχεία και οθόνες
    Μηνύματα: 2
    Τελευταίο Μήνυμα: 15-02-16, 09:36

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας