
civil123 έγραψε:Θέλω να μάθω μία γλώσσα προγραμματισμού πέρα από αυτή της μάτλαμπ. Μου προτείνετε κάποια;
Μάθε μία από τις mainstream αντικειμενοστραφείς γλώσσες: καλύτερο support, βιβλιοθήκες, tutorials και αν κολλήσεις και αποφασίσεις να τις χρησιμοποιήσεις στην επαγγελματική σου ζωή (είτε σαν πολμηχ+προγραμματιστής ή σκέτο προγραμματιστής) θα υπάρχουν περισσότερες δουλειές που θα τις ζητάνε. Το κομμάτι των βιβλιοθηκών όταν ξεφύγεις από το Matlab έχει σημασία. Στο Matlab A*B σου πολλαπλασιάζει τα 2 μητρώα, στις υπόλοιπες γλώσσες εγκαθιστάς βιβλιοθήκες που το κάνουν αυτό (και υπάρχει λόγος: διαφορετικές βιβλιοθήκες έχουν διαφορετική υλοποίηση για το πως γίνεται ο πολλαπλασιασμός μητρώων με διαφορετικές ταχύτητες).
C++, Java / C#, Python.
Το Matlab και η Python είναι δυναμικές γλώσσες (static vs dynamic typing) ενώ οι C++, Java & C# στατικές.
Όλες που σου πρότεινα παραπάνω χρησιμοποιούνται ευρέως και όποια και αν διαλέξεις είναι καλή επιλογή.
Γνωρίζοντας Matlab σαν 1η γλώσσα θα πήγαινα προς Java ή C#. Είναι φουλ αντικειμενοστραφείς (τα πάντα είναι αντικείμενα) και αυτό είναι μεγάλο βήμα κατανόησης ερχόμενος από Matlab. Αλλά σου ανοίγει τεράστιους ορίζοντες στον προγραμματισμό. Μόλις πάρεις το κολάι με μια από αυτές τις γλώσσες, τελείωσε, μετά όποια άλλη γλώσσα πας να μάθεις θα είναι πολύυυυυυ ευκολότερο. Αλλά θέλει χρόνο.
Ο λόγος που τις χρησιμοποιώ με κάθετο (Java/C#) είναι ότι μοιάζουν υπερβολικά πολύ στο συντακτικό τους και στον τρόπο λειτουργίας τους (Η Java χρησιμοποιεί το JVMκαι η C# το CLR). Υπάρχουν άπειρες συγκρίσεις στο internet ποια είναι καλύτερη, άκρη δε βγάζεις. Μια χαρά είναι και οι 2. Java--->Oracle και ξεκίνησε πρώτη----> περισσότερο software γραμμένο σε αυτή, C#--->Microsoft με τα πλεονεκτήματα του .Net framework: συνεργάζεται καλά δλδ με άλλα προϊόντα της Microsoft (όπως το LINQ). Η Java είναι by design cross-platform, η C# μέσω του project Mono. (Επίσης Java είναι η "επίσημη" γλώσσα για android development αν θα σε ενδιέφερε κάτι τέτοιο. Όχι ότι δε γίνεται με C# - είπαμε μοιάζουν σε πολλά πράγματα!)
Η Python έχει πολύ μικρότερη καμπύλη μάθησης, αλλά οι ορίζοντες που θα σου ανοίξει είναι πιο περιορισμένοι. Είναι και αυτή δυναμική γλώσσα όπως και το Matlab. Χρησιμοποιείται ευρέως, ιδιαίτερα σε επαγγέλματα όπως το δικό μας που πολλές φορές ο προγραμματισμός είναι μέσον όχι για την ανάπτυξη σοβαρού λογισμικού αλλά για να γίνει η επεξεργασία ενός αρχείου πχ επεξεργασία ενός output για να είναι συμβατό με το input ενός άλλου προγράμματος. Έχει πολλές numerical/scientific βιβλιοθήκες έτοιμες μέσω του Numpy που για σχεδόν τα πάντα του matlab θα βρεις έτοιμες εναλλακτικές εδώ.
Η C++ είναι κάπως βασίλισσα των γλωσσών, αλλά σα σωστή βασίλισσα έχει και κακά (ή έστω περίεργα) χούγια: Με τη C++ μπορείς να κάνεις ίσως τα περισσότερα πράγματα από όλες τις άλλες γλώσσες, αλλά επειδή ακριβώς σου δίνει αυτή την ελευθερία, πολλά πράγματα (όπως το garbage collection) πρέπει να τα κάνεις μόνος σου. Σου δίνει τη δυνατότητα να δουλέψεις πιο κοντά στο hardware από ότι άλλες γλώσσες (με τα αρνητικά που αυτό συνεπάγεται όταν δε θέλεις να ασχοληθείς με αυτό αλλά απλά να κάνεις τη δουλειά σου). Θα πρέπει επίσης να ασχοληθείς με το πως γίνεται το compilation, ειδικά αν θέλεις να δουλέψεις σε διαφορετικά λειτουργικά. Έχει άπειρες βιβλιοθήκες (ως η παλαιότερη όλων των παραπάνω γλωσσών)