Retromaniac Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 (επεξεργασμένο) Στο πρώτο κιόλας link από τα αποτελέσματα δεν είναι στο top-5 Για κοίτα εδώ που βρίσκεται η c, η c++ και η python όσον αφορά την ζήτηση στην αγορά εργασίας! "The company analyzed more than 60,000 job vacancies during 2012 to produce a chart of the most sought-after technologies:" http://www.sitepoint.com/best-programming-language-of-2013/ Είπες τίποτα; Πάνω σε αυτά που έγραψα στο προηγούμενο ποστ έχεις να πεις τίποτα; Και εν πάση περιπτώσει συμφωνείς ότι η java και η c# είναι καλύτερες γλώσσες να ασχοληθείς κάποιος που θέλει να μάθεις αφού του προσφέρουν την δυνατότητα να μάθει ότι καλύτερο πάνω σε τεχνικές προγραμματισμού αντί για το ξερό και απλό structured-procedural programming της c; Εγώ από την άλλη μεριά έμαθα να προγραμματίζω εδώ και μια εβδομάδα, είμαι "απόφοιτος" δημοτικού και μέχρι στιγμής έχω καταφέρει να φτιάξω ένα "hello world" σε logo, που είναι και η μόνη γλώσσα προγραμματισμού που γνωρίζω κι έχω δουλέψει ποτέ στη ζωή μου, μιας και η κανονική μου δουλειά τα τελευταία 25 χρόνια είναι μανάβης.. Δεν είπα ότι δεν ξέρεις. Έχεις κολήσει με κάποια πράγματα και δεν έχεις πάει στα καινούργια και για αυτό δεν γίνεται να έχεις ολοκληρωμένη εικόνα. Εδώ μόλις πέρισυ ασχολήθηκες με oop! Σε βλέπω στα επόμενα 25 χρόνια να ασχολήσαι ακόμη με την c. Evolve. Επεξ/σία 22 Μαρτίου 2013 από Retromaniac
ZAKKWYLDE Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Στο πρώτο link πάντως είναι πολύ δημοφιλέστερη της C#...και αν βάλεις και την C++ μαζί πλησιάζει και τη Java. Η ουσία πάντως είναι το niche programming. Δες ας πούμε πόσο δημοφιλής είναι η Objective C, μια εξαιρετικά niche γλώσσα με σαφώς λιγότερες θέσεις απο το αντίστοιχο android. Όμως οι iOS developers είναι σαφώς πιο καλοπληρωμένοι απο τους Android. Τι να το κάνω να μάθω μια γλώσσα που τη ξέρει και "η κουτσή Μαρία" και να έχει τόσο μεγάλο ανταγωνισμό που οι μισθοί να έχουν πιάσει πάτο; Όσο για την Ελλάδα ρίξε μια ματιά τις 5 τελευταίες μέρες για Java developers στα Ελληνικά site. Εκτός του ότι πρέπει να γνωρίζεις 15 frameworks (άρα οι Juniors το ξεχνάνε) δεν πρέπει να είναι πάνω απο 5-6 συνολικά. Φυσικά η C/C++ δεν υπάρχει πουθενά, αλλά η κατάσταση είναι τόσο χάλια που δεν καταλαβαίνω για ποιό λόγο βάζουμε την Ελλάδα στη συζήτηση. Κάποιος νέος απόφοιτος προγραμματιστής δεν έχει καμία απολύτως ελπίδα να βρεί δουλειά στην Ελλάδα ότι και να έχει μάθει(εκτός αν έχει βύσμα).
Retromaniac Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Και στο link που έβαλα εγώ είναι στο πάτο. Κοιτάξε ας μάθει ο καθένας ότι τον φωτίσει ο θεός. Γιατί τελικά πόσοι συνεχίζουν να διαβάζουν αυτό το thread για να προσπαθήσουμε να τους καθοδηγήσουμε; Εγώ, εσύ, ο migf1, ο defacer, το παιδί με την απορία και 2-3 άλλοι ακόμη. Δηλαδή όλο αυτός ο διάλογος γίνεται για εσωτερική κατανάλωση. Anyway πραγματικά αυτή την φορά σταματώ εδώ γιατί και βαρέθηκα την ζωή μου και δεν έχει και νόημα αφού δεν έχουμε κάποιο impact σε άλλους ανθρώπους έτσι και αλλιώς.
migf1 Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Στο πρώτο link από τα αποτελέσματα δεν είναι στο top-5 Είναι πάνω από την C# πάντως Δεν είπα ότι δεν ξέρεις. Έχεις κολήσει με κάποια πράγματα και δεν έχεις πάει στα καινούργια και για αυτό δεν γίνεται να έχεις ολοκληρωμένη εικόνα. Σε βλέπω στα επόμενα 25 χρόνια να ασχολήσαι μόνο με την c. Evolve. Αυτά είναι δικά σου συμπεράσματα, τα οποία δεν προκύπτουν από δικά μου γραφόμενα. Το ότι γουστάρω την C και άρα ασχολούμαι με αυτήν στον ελεύθερο χρόνο μου γιατί έτσι κάνω κέφι, δεν σημαίνει σε καμία περίπτωση ούτε ότι δεν έχω πάει στα καινούρια ούτε πως δεν έχω ασχοληθεί κι επαγγελματικά με τα καινούρια (δεν ξέρω κατά πόσο ενδιαφέρει ή κατά πόσο συνεισφέρει κάτι το ουσιαστικό στο νήμα, αλλά σε πληροφορώ πως έχω ασχοληθεί με πολλά και διάφορα και παλιά και καινούρια). Δεν σημαίνει επίσης πως η C είναι εκτός εποχής. Ούτε σημαίνει πως θεωρώ τη C κατάλληλη για mainstream programming και δη για web και application programming. Έχω προσπαθήσει σε όλους τους τόνους να εξηγήσω σε ποιους τομείς και γιατί η C παραμένει επίκαιρη σήμερα, και ότι αποτελεί καθολικής αποδοχής πολύτιμο εργαλείο για έμπειρους σε προχωρημένα πράγματα, που δεν γίνονται ή δεν συμφέρει να γίνουν με mainstream γλώσσες. Και καλώς ή κακώς αυτά τα "πράγματα" όχι μόνο βρίσκονται παντού (και για αυτό όλοι φροντίζουν να εξασφαλίζουν πρόσβαση σε C (ή C++) ειδικά για αυτά τα πράγματα στις όποιες τεχνολογίες τους, όχι μόνο η συντριπτική πλειοψηφία των εργαλείων που χρησιμοποιείς είναι γραμμένα σε C ή σε C++ αλλά και κατά τα φαινόμενα θα εξακολουθήσουν να είναι έτσι για αρκετά χρόνια ακόμα. Έχω βαρεθεί να διαβάζω στα φόρα κάθε 2-3 χρόνια εδώ και καμιά 20ετία πόσο απαρχαιωμένη είναι η C, πόσο προβληματική είναι η C, πόσο ανασφαλής είναι η C, πόσο μετρημένα είναι τα ψωμιά της, πόσο σύντομα όλα θα γίνονται με C++, με Java, με C#, και ότι άλλο wishful thinking μπορείς να φανταστείς. Στην πράξη όμως αυτό που βλέπω, που βιώνω και που επικρατεί είναι πως η C ζει και βασιλεύει και χαίρει ιδιαίτερης εκτίμησης ανάμεσα στην elite που δρομολογεί της εξελίξεις παγκοσμίως. Προφανώς οριοθετημένη σε NICHE (να δω πόσες ακόμα φορές θα χρειαστεί να το αναφέρω) τομείς, αφού αυτό ήταν ανέκαθεν και παραμένει το αδιαμφισβήτητο δυνατό της σημείο. Σε ότι αφορά τώρα τον διαχωρισμό μεταξύ C και C++, η δική μου εμπειρία λέει πως πάνω από το 65% του γραμμένου C++ κώδικα είναι κατά κύριο λόγο ουσιαστικά C με ένα μικρό κομμάτι τους αμιγώς C++ features. Αφενός διότι γράφτηκε εξαρχής πολύς C++ κώδικας από C programmers, που δεν είχαν εντρυφήσει στα C++ specific, αλλά και επειδή έχει επιλεχτεί συνειδητά κατά περιπτώσεις να γίνει έτσι ώστε να μειωθεί το overhead των extra C++ features που στις προκειμένες περιπτώσεις ήταν αχρείαστο ή/και ανεπιθύμητο. Οπότε ο διαχωρισμός μεταξύ C και C++ δεν είναι και τόσο σαφής όσο αφήνεις να εννοηθεί. Είμαι σίγουρος πως το γνωρίζεις ότι η C++ είναι multi-paradigm γλώσσα (ψιλο-χοντρο αχταρμάς είναι, αλλά δεν μας πειράζει αυτό τώρα), που σημαίνει πως αν την ξέρεις καλά έχεις την δυνατότητα να την χρησιμοποιήσεις με περισσότερους του ενός τρόπους, κοντρολάροντας σε πολύ μεγάλο βαθμό ποια features της θα χρησιμοποιήσεις, που και γιατί. Το κύριο πλεονέκτημά της έναντι της C είναι το OOP support, και το κύριο μειονέκτημά της το αυξημένο overhead.
Retromaniac Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Θα σε ρωτήσω κάτι τελευταίο. Είναι δυνατόν να είσαι προγραμματιστής που είναι διατεθιμένος να εξελίσεται, να μαθαίνει καινούργια πράγματα, να είσαι ευέλικτος και να ασχολείσαι μόλις το 2012 με oop; Να μην ξέρεις sql; Να μην ασχολείσαι με web (αν και αυτό δεν είναι τραγικό); Από εκεί πηγάζει περισσότερο το συμπερασμά μου για την στασιμοτητά σου. Είναι σαν μηχανικός αυτοκινήτων που ασχολείται με καρμπυρατέρ (μην πω ατμομηχανές) ακόμη. Δεν στο γυρνάω σε προσωπικό επίπεδο. Αλλά η νοοτροπία ίσως δείχνει και την πηγή της εμμονής μας.
migf1 Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Θα σε ρωτήσω κάτι τελευταίο. Είναι δυνατόν να είσαι προγραμματιστής που είναι διατεθιμένος να εξελίσεται, να μαθαίνει καινούργια πράγματα, να είναι ευέλικτος και να ασχολείται μόλις το 2012 με oop; Να μην ξέρει sql; Από εκεί πηγάζει περισσότερο το συμπερασμά μου για την στασιμοτητά σου. Είναι σαν μηχανικός αυτοκινήτων που ασχολείται με καρμπυρατέρ (μην πω ατμομηχανές) ακόμη. Δεν στο γυρνάω σε προσωπικό επίπεδο. Αλλά η νοοτροπία ίσως δείχνει και την πηγή της εμμονής. Από που έχεις βγάλει το συμπέρασμα ότι με OOP ασχολήθηκα το 2012? Μάλλον θυμάσαι κάποιο περυσινό μήνυμά μου που έγραφα πως έχει περάσει πολύς καιρός από την τελευταία φορά που χρειάστηκε να προγραμματίσω σε OOP και μπερδεύτηκες. Για λόγους που δεν αφορούν το φόρουμ έχω αποσυρθεί εδώ και 5-6 χρόνια. Πρόσφατα έχω ξεκινήσει πάλι όμως (αν και από Web αυτή τη φορά). Όσο για την SQL, απλά δεν χρειάστηκε ποτέ να ασχοληθώ ο ίδιος με το συγκεκριμένο κομμάτι (ασχολιόντουσαν άλλοι ).
Retromaniac Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Από αυτά που ρώταγες στην αρχή δεν φαίνοταν να είχες ασχοληθεί ή αν είχες ασχοληθεί πρέπει να ήταν τέλειως ξώφαλτσα. Anyway....
defacer Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 My two cents. Πρώτον, είναι χρήσιμο σε κάποιο βαθμό αλλά ταυτόχρονα και επικίνδυνο να μπλέκουμε το "με ποιά γλώσσα να ξεκινήσω" με το "με ποιά γλώσσα θα βρω δουλειά". Καλό είναι π.χ. αυτή τη στιγμή να ξέρεις Objective-C γιατί όντως θα βρεις δουλειά, αλλά το ζητούμενο δε νομίζω πως είναι αυτό. Τα ζητούμενα σε επαγγελματικό επίπεδο εγώ τα βλέπω να είναι 2: Αυτοπραγμάτωση (αλλά δεν ισχύει για όλους) Να έχεις δουλειά σε μάκρος χρόνου (και αύριο που δε θα υπάρχει iOS δηλαδή) Επομένως αυτό που θέλεις long term να πάρεις μαθαίνοντας μια γλώσσα προγραμματισμού είναι α) να αυξήσεις την κατανόησή σου σχετικά με το computer science γενικότερα και β) να αποκτήσεις transferable skills (ενδεχομένως εδώ υπάρχει overlap με το (α)) που θα σου χρησιμεύσουν "για πάντα". Αν κάνοντάς το αυτό καταφέρεις και να μαζέψεις και συγκεκριμένα skills για να βρεις δουλειά επιτόπου ακόμα καλύτερα. Εδώ θα διαχωρίσω τους επίδοξους προγραμματιστές σε 2 γκρουπ: αυτούς που το έχουν και που θα μάθουν "τα πάντα" όπως κι αν το αρχίσουν, κι αυτούς που δε θα μάθουν περισσότερα απ' όσα τους είναι απαραίτητα. Οι πρώτοι δε μας απασχολούν νομίζω σ' αυτή την κουβέντα οπότε θα περιοριορίσω την αναφορά μου στους δεύτερους. Οι δεύτεροι λοιπόν ποιό ακριβώς transferable skill πρόκειται να μάθουν με τη C που δε θα το μάθουν με τις άλλες γλώσσες που συζητάμε? Το να γράφουν προγράμματα με UB τα οποία "works for me" άρα όλα εντάξει? Το ότι δεν υπάρχει ένα built-in string type για όνομα του Βάαλ? Το ότι δεν υπάρχει built-in cross-platform υποστήριξη για Unicode? Το ότι γενικότερα όλα μα όλα (memory management και OO έρχονται πρώτα στο μυαλό) πρέπει να τα κάνεις manually? Το ότι, όπως είπε ήδη ο Retromaniac, από paradigms προγραμματισμού μαθαίνεις το απόλυτο μηδέν? Στη C++ (που κάποτε τη θεωρούσα την απόλυτη γλώσσα προγραμματισμού λόγω άγνοιας αλλά τώρα πλέον ποτέ δεν την προτείνω για εκμάθηση) τουλάχιστον αν τη μάθεις θα έχεις μάθει τα πάντα εκτός από functional. Στη Java θα μάθεις design patterns και OO. Τη C# δεν τη βάζω στη σύγκριση γιατί στο μυαλό μου σα γλώσσα εκμάθησης είναι imba. Τι είναι πιο χρήσιμο λοιπόν (και σα γνώση αλλά και για δουλειά), να μάθεις ΟΟ ή να μάθεις πως πρέπει να έχεις πάντα στο μυαλό σου με θρησκευτική ευλάβεια πόσα bytes πιάνει το τάδε πράγμα στη μνήμη? Επίσης, έχει κανείς την ψευδαίσθηση ότι με τη C θα πέσει ο επίδοξος προγραμματιστής ποτέ στο pit of success? Μάλλον στο άλλο γνωστό pit θα πέσει -- εκείνο με τα κωλοδάχτυλα. Αυτά για τον Retro και όποιον άλλο ενδιαφέρεται να δει το θέμα. O migf1 όπως είναι προφανές σε οποιονδήποτε διαβάζει το forum έχει παντρευτεί τη γλώσσα της επιλογής του και δε χρειάζεται να ταράζουμε την οικογενειακή του γαλήνη. Update: Θα σε ρωτήσω κάτι τελευταίο. Είναι δυνατόν να είσαι προγραμματιστής που είναι διατεθιμένος να εξελίσεται, να μαθαίνει καινούργια πράγματα, να είσαι ευέλικτος και να ασχολείσαι μόλις το 2012 με oop; Να μην ξέρεις sql; Να μην ασχολείσαι με web (αν και αυτό δεν είναι τραγικό); Όσο για την SQL, απλά δεν χρειάστηκε ποτέ να ασχοληθώ ο ίδιος με το συγκεκριμένο κομμάτι (ασχολιόντουσαν άλλοι ). Το ίδιο και για τις regular expressions. Και για άλλα πράγματα φαντάζομαι που δεν προέκυψαν στο forum. Εδώ θα διαχωρίσω τους επίδοξους προγραμματιστές σε 2 γκρουπ: αυτούς που το έχουν και που θα μάθουν "τα πάντα" όπως κι αν το αρχίσουν, κι αυτούς που δε θα μάθουν περισσότερα απ' όσα τους είναι απαραίτητα. 1
Timonkaipumpa Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Να έχεις δουλειά σε μάκρος χρόνου (και αύριο που δε θα υπάρχει iOS δηλαδή) Είσαι εγκάθετος του Android και της MS. Άκου εκεί δεν θα υπάρχει αύριο iOS...!!!!
ZAKKWYLDE Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Νομίζω ότι η συζήτηση έχει εκτροχιαστεί λίγο. Δεν είδα κανέναν να αναφέρει ότι πρέπει να μάθεις C και τίποτα άλλο. Αυτό που λέγεται είναι ότι είναι καλό να έχεις μια εμπειρία απο C γιατί θα είναι χρήσιμο να γνωρίζεις πως λειτουργούν κάποια πράγματα σε Higher Level γλώσσες που σήμερα είναι Black Box. H C θα σε βοηθήσει να κατανοήσεις καλύτερα τα Data Structures, πως δουλεύουν οι Garbage Collectors (οι οποιοι είναι γραμμένοι σε C++), πως δουλεύει το Stack και το Heap, θα σε βοηθήσει να καταλάβεις καλύτερα πως δουλεύουν τα διάφορα index στην SQL. Ακόμα και το manual memory management το οποίο είναι σαφώς εκνευριστικό, είναι χρήσιμο. Ο άλλος σου λέει...τι με νοιάζει, εγώ κάνω new ArrayList() γιατί ταιριάζει στο 90% των περιπτώσεων. Ο GC τρέχει απο πίσω και μαζεύει πράγμα, τι μας νοιάζει πως κάνει allocate to heap. Δεκτό, εγώ προσωπικά έχω δει ότι απο τότε που ασχολήθηκα με C έχω μια καλύτερη κατανόηση όσων κάνω στη Java. Απο τη δικη μου εμπειρία εκτιμώ πως αυτή η γνώση σου δίνει ένα τσακ παραπάνω για να μπορείς να ξεχωρίσεις ως καλός programmer. Προφανώς βέβαια και πρέπει να μάθεις πολύ καλά μια OOP και να εξελίσσεσαι συνεχώς, κανείς δεν το αμφισβητεί. Πρέπει να είσαι σε θέση να διεκδικήσεις και mainstream δουλειές, και niche δουλειές. Ας μην τα ισοπεδώνουμε όλα όμως. Προσωπικά και Java συνεχίζω να μελετώ και C και C++ και Android. Ότι έχεις στο οπλοστάσιο καλό είναι.
defacer Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Νομίζω ότι η συζήτηση έχει εκτροχιαστεί λίγο. Δεν είδα κανέναν να αναφέρει ότι πρέπει να μάθεις C και τίποτα άλλο. Αυτό που λέγεται είναι ότι είναι καλό να έχεις μια εμπειρία απο C γιατί θα είναι χρήσιμο να γνωρίζεις πως λειτουργούν κάποια πράγματα σε Higher Level γλώσσες που σήμερα είναι Black Box. Αυτό που λέγεται όπως λες, αν το βάλεις στο παρακάτω πλαίσιο, μήπως είναι από μόνο του εκτροχιασμός; Το θεμα ειναι πως δεν εχω ξανασχοληθει με προγραμματισμο ουτε λιγο , παρολα αυτα εχω παρει αποφαση να κανω το βημα. Τι χρειαζεται να διαβασω , ωστε να παρω τις βασικες γνωσεις ; Θα ρωτούσα λοιπόν ποιές είναι αυτές οι βασικές γνώσεις που είναι καλό να έχεις εμπειρία από C για να πάρεις, αλλά βλέπω ότι ίσως το απαντάς στη συνέχεια. Βέβαια αν θέλεις να δώσεις μια καλύτερη απάντηση στη συνέχεια, ευπρόσδεκτη. C θα σε βοηθήσει να κατανοήσεις καλύτερα τα Data Structures Γιατί; Παράδειγμα; πως δουλεύουν οι Garbage Collectors (οι οποιοι είναι γραμμένοι σε C++) Γιατί; Παράδειγμα; πως δουλεύει το Stack και το Heap, θα σε βοηθήσει να καταλάβεις καλύτερα πως δουλεύουν τα διάφορα index στην SQL. Ακόμα και το manual memory management το οποίο είναι σαφώς εκνευριστικό, είναι χρήσιμο. Επειδή δεν έχει νόημα να συνεχίσω στο ίδιο στυλ, θα το πω μια και καλή: προσωπικά, και με καλή πίστη, σου λέω πως δεν βλέπω πώς ακριβώς θα γίνουν αυτά που λες και πολύ περισσότερο πώς δέν θα γίνουν με μια άλλη γλώσσα. Αν θέλεις λοιπόν δώσε ένα συγκριτικό παράδειγμα, και σε παρακαλώ ας μη μπερδέψουμε το ότι στη C είσαι αναγκασμένος να κάνεις π.χ. το stack μόνος σου ενώ σε άλλες γλώσσες υπάρχει έτοιμο. Σε οποιαδήποτε γλώσσα μπορείς να κάνεις stack μόνος σου αν σκοπός σου είναι να μάθεις πώς γίνεται ένα stack. Η διαφορά είναι πως αν θέλεις να μάθεις πώς να κάνεις DFS σε ένα graph, στη C είσαι πάλι αναγκασμένος να κάνεις το stack μόνος σου ενώ σε κάποια άλλη γλώσσα μπορείς να πάρεις το stack έτοιμο και να ασχοληθείς μόνο με το DFS. Καταλαβαίνεις τη διαφορά. Δεκτό, εγώ προσωπικά έχω δει ότι απο τότε που ασχολήθηκα με C έχω μια καλύτερη κατανόηση όσων κάνω στη Java. Απο τη δικη μου εμπειρία εκτιμώ πως αυτή η γνώση σου δίνει ένα τσακ παραπάνω για να μπορείς να ξεχωρίσεις ως καλός programmer. Και γω από τη C++ τα έμαθα αυτά τα πράγματα. Αλλά αυτό δεν έχει σημασία. Η σωστή ερώτηση είναι: ξέροντάς τα ήδη, αν θέλεις να τα μάθεις σε κάποιον άλλο, θα αναγκαστείς να καταφύγεις στη C ή όχι; Η ανάλογα, αν δεν είχες ασχοληθεί με τη C (που σε ανάγκασε) αλλά σε πλήρωνα για να τα μάθεις, θα μπορούσες να τα μάθεις χρησιμοποιώντας Java ή όχι; Συμφωνώ πως όλα είναι καλά και αν θέλεις πως η C "σε κάνει άντρα". Αλλά δε νομίζω πως επειδή σήμερα έχουμε κομπιουτεράκια αυτό μας εμποδίζει να μάθουμε να κάνουμε πράξεις στο μυαλό μας. Ναι, σε μια πολύ μεγάλη μερίδα του πληθυσμού το αποτέλεσμα θα είναι αυτό. Αλλά όχι επειδή τα κομπιουτεράκια τους εμποδίζουν να μάθουν -- επειδή δεν ενδιαφέρονται να μάθουν, και τα κομπιουτεράκια let them get away with it.
Timonkaipumpa Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Πάντως... ειδικά για Data structures και αλγόριθμους, νομίζω ότι η Python είναι ότι πιο χρήσιμο. Ειδικά αυτά τα dictionaries που έχει, οι λίστες της (και τα sets) αλλά και η απλότητά της την κάνουν ένα πολύ καλό, απλό, γρήγορο και χρήσιμο εργαλείο για να μάθει κανείς data structures και αλγόριθμους. Χώρια η διαχείριση strings και το re module που είναι εξίσου απλά και γρήγορα για σκοπούς εκπαίδευσης και όχι μόνο.
migf1 Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Από αυτά που ρώταγες στην αρχή δεν φαίνοταν να είχες ασχοληθεί ή αν είχες ασχοληθεί πρέπει να ήταν τέλειως ξώφαλτσα. Anyway.... Θα μου επιτρέψεις να σημειώσω πως ακριβώς το ίδιο φαίνεται και από τα δικά σου γραφόμενα και ιδιαίτερα από την αδυναμία που δείχνεις στο να διαχωρίσεις το niche από το mainstream. Να σημειώσω επίσης πως η δική μου πρόταση για ελαφρύ ξεκίνημα όπως ζήτησε ο φίλοςδεν ήταν ούτε η C ούτε η Java ούτε η C#. Ήταν και παραμένει η Python, με την οποία ναι μεν δεν έχω ασχοληθεί ποτέ σοβαρά, πλην όμως τις έχω ρίξει μια ματιά σε επίπεδο συγγραφής κώδικα και έχω επιδιώξει κι έχω διαβάσει πολλά για αυτήν. Την προτείνω διότι διαπίστωσα και μόνος μου πως συμπυκνώνει με φιλικό και άμεσο τρόπο πληθώρα χρήσιμων εννοιών, τεχνικών και πρακτικών, και σε μεγάλο εύρος. Επίσης αν και όταν θελήσεις να πας πιο low level σου δίνει εύκολη πρόσβαση σε πληθώρα low-level interfaces είτε με απευθείας κώδικα σε C είτε με στανταρισμένα modules (π.χ. Low Level Network Interface). Bitstrings, bitarrays, bitstrings, bitfields, τα υποστηρίζει και natively. Πέρα από τη δύναμή της (προφανώς και την δημοφιλία της), το βασικό της πλεονέκτημα για κάποιον που ξεκινάει είναι για μένα η αμεσότητα και η φιλικότητα. Από εκεί και πέρα, για φιλόδοξο επαγγελματία έχω γράψει ποιες γλώσσες και γιατί θεωρώ εγώ ως γερές βάσεις, Σε ότι αφορά τώρα τον defacer, θα μου επιτρέψει το φόρουμ από άνθρωπο που επιμένει στο ότι η C υποστηρίζει OOP, πως ο managed code είναι ταχύτερος από τον native, πoy δεν έχει ακούσει ποτέ στη ζωή του το O(N/2) και πως η C πρέπει να χρησιμοποιείται όπως η C++ (μη γνωρίζοντας βασικές διαφορές ανάμεσα στις 2 γλώσσες) να μην δέχομαι μαθήματα προγραμματισμού και περί πληροφορικής γενικότερα. Το ότι εγώ δεν έχει χρειαστεί να χρησιμοποιήσω ούτε regular expressions ούτε SQL δεν με κάνει ούτε καλύτερο ούτε χειρότερο προγραμματιστή ή/και επαγγελαμτία, ούτε από τον defacer ούτε από τον retromaniac ούτε από τον μέσο επαγγελματία του χώρου. Αν και όταν τα χρειαστώ είμαι παραπάνω από σίγουρος ότι θα τα καταφέρω. Από την άλλη μεριά, το να μη ξέρω τι σημαίνει για παράδειγμα "η τάδε γλώσσα υποστηρίζει OOP" κατά την δική μου άποψη είναι πολύ πιο σοβαρή κατάσταση με πολύ βαθύτερες ελλείψεις. Εν πάσει περιπτώση, θα ήθελα να ενημερώσω τόσο τον defacer όσο και τον retromaniac, πως και στην C υπάρχουν τα λεγόμενα "libraries", "APIs", "Interfaces" ή όπως αλλιώς θέλει να τα ονομάσει κανείς, ώστε να μην είναι αναγκασμένος κανείς να ξαναγράφει τα πάντα από την αρχή. Όμως συνήθως για αυτές τις δουλειές υπάρχουν καταλληλότερες γλώσσες σήμερα και με πιο στανταρισμένες βιβλιοθήκες και τεχνικές. Για αυτό και η C δεν είναι εδώ και πολύ καιρό mainstream γλώσσα. Υπάρχει όμως πλειάδα τομέων και περιπτώσεων που οι άλλες γλώσσες πολύ απλά δεν μπορούν ή δεν μπορούν με αποδεκτό tradeoff. Κλείνοντας θα ήθελα να σoυ ζητσηω φίλε retromaniac να μου υποδείξεις τα posts του νήματος στα οποία προτείνω την C ως γλώσσα πασπαρτού, ως κατάλληλη για mainstream tasks, ως ιδανική για casual ξεκίνημα, που έχω βγάλει ας πούμε άχρηστες τις Java, C#, και ότι άλλο φαίνεται να νομίζεις πως έχω υποστηρίξει κρίνοντας από τις απαντήσεις που μου δίνεις. ΥΓ. Τα σέβη μου στον φίλο ZAKKWYLDE ο οποίος από τα γραφόμενά του δείχνει να έχει πιάσει το νόημα, ή τουλάχιστον το νόημα στο οποίο κινούμαι κι εγώ στο παρόν νήμα.
Timonkaipumpa Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Πάντως έτσι όπως τρώγεστε και "διασπάστε", ούτε κόμματα της αριστεράς να ήσασταν. Chill out dudes.
migf1 Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Πάντως έτσι όπως τρώγεστε και "διασπάστε", ούτε κόμματα της αριστεράς να ήσασταν. Chill out dudes. Αυτό μου θύμισε το... Κουβέλειο δόγμα: "διαφωνώ αλλά στηρίζω"
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα