Λίγες σκέψεις για τις γλώσσες προγραμματισμού

...ασύγχρονα μαθήματα από τους guru της κοινότητας

Συντονιστής: the_eye

Re: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό Dimitris » 04 Δεκ 2011, 00:36

Επείδη η συζητηση καταντάει κουραστική όταν δω το παράδειγμα του κώδικα που να υλοποιεί ακριβώς το παράδειγμα που περιγράφει τότε θα ξανααπαντήσω. Μελέτησε το παράδειγμα και θα δεις ότι δεν είναι μόνο τα closures αλλα και η κατά το runtime δημιουργία συναρτήσεων που το κάνουν διαφορετικό. Κάτι τέτοιο δεν είναι δυνατό στη C.
Συγγνώμη, υπέκυψα στην οργή της στιγμής. Φυσικά και όλες οι γλώσσες είναι ισοδύναμες μεταξύ τους κατά Turing. Δηλαδή σίγουρα κάτι τέτοιο μπορεί να υλοποιηθεί σε όλες τις γλώσσες οι οποίες είναι Turing complete, το θέμα είναι πόσο εύκολα. Πάντως δοκίμασε να υλοποιήσεις αυτή τη συμπεριφορά που περιγράφεται στο παράδειγμα (συνδυασμό closure και δυναμική δημιουργία συναρτήσεων κατά το runtime) σε C. Θα είναι ενδιαφέρον να συγκρίνουμε τα αποτελέσματα για διάφορες γλώσσες.
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό migf1 » 04 Δεκ 2011, 02:07

Δημιουργία συναρτήσεων στο run-time δεν είναι trivial να γίνει σε plain C γιατί σε πλήρη αντίθεση με τη Perl, το run-time της C είναι low-level, δεν πατάει δηλαδή (και άρα δεν προϋποθέτει) πάνω σε κάποιο έτοιμο interpreter, framework, virtual machine, κλπ... πατάει απευθείας στο λειτουργικό με το ένα πόδι και απευθείας στο hardware με το άλλο. Οπότε είναι εξ΄ορισμού άστοχο να συγκρίνουμε το run-time της C με το run-time της Perl.

Μπορεί όμως να γίνει, φτιάχνοντας κι ενσωματώνοντας για παράδειγμα έναν minimal C-intepreter (ή χρησιμοποιώντας κάποιον έτοιμο) χρησιμοποιώντας τον ως minimal HL run-time environment για να δημιουργήσεις και συναρτήσεις και ότι θέλεις.

Ότι δηλαδή είναι η Perl, η Python, η Java, η C# και όλες οι μη directly compiled γλώσσες (interpreted/scripting). Παρεμπιπτόντως, γνωρίζεις φαντάζομαι πως (και) η Perl σε C είναι γραμμένη (και natively είναι procedural, άσχετα αν υποστηρίζει (αν και ολίγον άναρχα) πολλά είδη προγραμματισμού... δλδ και functional και oop ).

Για αυτό και σε προηγούμενα posts μου ανέφερα και frameworks και API's μαζί με τα libraries. Φυσικά μέσω των pointers μπορείς να διαχειριστείς στο run-time τιμές, abstract data objects, κλπ και στη C, απλά οι δείκτες σε συναρτήσεις έχουν συνειδητά επιλεγεί να μπορούν μεν να χρησιμοποιηθούν ως rvalues dereferenced, όχι όμως ως lvalues.... όσες φορές και να τους κάνεις dereference κάνουν αυτόματα drop-back σε referenced, γιατί ουσιαστικά δείχνουν απευθείας σε διεύθυνση που περιέχει κώδικα, στο DATA segment της raw μνήμης και όχι σε κάποιο ενδιάμεσο controlled περιβάλλον (αυτό ισχύει μονάχα για τους δείκτες συναρτήσεων, στους υπόλοιπους δείκτες κάνεις ότι θέλεις).

Μπορείς φυσικά να χρησιμοποιήσεις C++ αντί για C, που έχει στναταρισμένα περισσότερα εργαλεία, αλλά κι εκεί είναι challenging για τους ίδιους πάνω-κάτω λόγους ( btw στην επερχόμενη αναθεώρησή της η C++ θα υποστηρίζει lambda functions).

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

Πάντως μπορείς να πάρεις παραπλήσια αποτελεσματικότητα (και μάλιστα πολύ πιο optimized σε πόρους και ταχύτητα) χρησιμοποιώντας το global namespace της C ή της C++ ... επίσης, η D είναι μια φανταστική directly compiled γλώσσα, με φοβερές δυνατότητες κι επιδόσεις, η οποία όμως δυστυχώς βρίσκεται στο περιθώριο.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό lucinos » 04 Δεκ 2011, 06:22

@migf1
Μάθε να εκτιμάς περισσότερο τον χρόνο τού προγραμματιστή και μάθε να ακούς τι σού λένε κάποιοι που έχουν κάποια εμπειρία σε κάτι. Ο Dimitris μάλιστα έδωσε και συγκεκριμένα παραδείγματα.

Όλες οι γλώσσες είναι ισοδύναμες με την μηχανή Τούρινγκ αλλά υπάρχει τεράστια απόσταση ανάμεσα στην Brainfuck και την Lisp. Η πρώτη είναι η πιο κοντινή γλώσσα στην μηχανή Τούρινγκ και η ευκολότερη να φτιάξεις συμπιλιστή, αλλά κανένας μέχρι την δεκαετία τού 90 δεν σκέφτηκε να την υλοποιήσει όχι γιατί κάτι τέτοιο ήταν δύσκολο (ήταν αναλογικά πανεύκολο) αλλά γιατί ήταν ηλίθιο. Αυτός που την έφτιαξε το έκανε για πλάκα. Οι άνθρωποι προτιμούν να προγραμματίζουν ακόμα και σε Assembly, προτιμούν να προγραμματίζουν ακόμα και με κώδικα μηχανής παρά σε Brainfuck και το μόνο που τούς ενδιαφέρει είναι η θεωρητική ισοδυναμία τών δύο. Αντιθέτως την Lisp προσπάθησαν να την υλοποιήσουν με το που έφτασαν οι υπολογιστές σε ένα τεχνολογικό επίπεδο να μπορεί να γίνει κάτι τέτοιο.

Επίσης δεν έχουν όλες οι γλώσσες το ίδιο επίπεδο επικοινωνίας με τον άνθρωπο. Υπάρχει μια τεράστια απόσταση ανάμεσα στην C και την Bash.

Για να επανέλθω στον τρόπο που βλέπω τα πράγματα, υπάρχουν γλώσσες συστήματος (όπως η C) και φλοιοί (όπως η Bash). Όταν θέλεις να δημιουργήσεις την υποδομή για κάτι χρειάζεσαι μια γλώσσα συστήματος γιατί μια γλώσσα συστήματος επιτρέπει στον υπολογιστή να λειτουργήσει αποδοτικά. Όταν όμως θέλεις να κάνεις δουλειά θέλεις μια διερμηνευόμενη γλώσσα, και ναι υπάρχει τεράστια διαφορά. Ναι θα μπορούσε κάποιος να χρησιμοποιήσει την υποδομή και κατευθείαν από την C αλλά κάτι τέτοιο είναι πολύ λιγότερο παραγωγικό. Και στην ανάπτυξη μιας εφαρμογής υπάρχει μεγάλη διαφορά και ακόμα μεγαλύτερη διαφορά στην μετέπειτα συντήρησή της. Και όχι δεν ανατρέπεται αυτό όσο καλός προγραμματιστής C και να είσαι. Στην πραγματικότητα ακόμα και όταν σού λείπει μια υποδομή είναι συχνότατα αποδοτικότερο πρώτα να φτιάξεις ένα πρωτότυπο που να κάνει την δουλειά και στην συνέχεια να κατέβεις σε μια γλώσσα συστήματος, για τέτοια διαφορά μιλάμε. Φυσικά η Bash είναι ακατάλληλη για τέτοιες δουλειές αλλά για αυτό υπάρχουν οι ενδιάμεσοι κρίκοι όπως η Python.

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

migf1 έγραψε:επίσης, η D είναι μια φανταστική directly compiled γλώσσα, με φοβερές δυνατότητες κι επιδόσεις, η οποία όμως δυστυχώς βρίσκεται στο περιθώριο.

Η άποψή μου για την D είναι ότι σε σχέση με όταν την πρωτοάκουσα (όταν μελετούσα λίγη C++) αρχίζει τώρα να αποκτάει ορμητικότητα. Έχει πιστεύω πολλά δίκια στον σχεδιασμό της και αυτό θα λάμψει. Όποιος επενδύσει τώρα στην D έχει πολύ καλές πιθανότητες να βρεθεί μπροστά από τις εξελίξεις. Δεν είναι καθόλου καταδικασμένη στο περιθώριο.
Spoiler: show
Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
Λειτουργικό → Ubuntu 11.04 natty 64-bit (el_GR.UTF-8)
Προδιαγραφές → CPU: 4x Intel Core i5 CPU 750 2.67GHz ‖ RAM 3953 MiB ‖ ASRock P55DE3
Κάρτες γραφικών: nVidia G92 [GeForce GTS 250] ⎨10de:0615⎬ (rev a2)
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller ⎨10ec:8168⎬ (rev 03)
Άβαταρ μέλους
lucinos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 828
Εγγραφή: 12 Δεκ 2010, 22:04
Εκτύπωση

Re: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό migf1 » 04 Δεκ 2011, 07:40

lucinos έγραψε:@migf1
Μάθε να εκτιμάς περισσότερο τον χρόνο τού προγραμματιστή και μάθε να ακούς τι σού λένε κάποιοι που έχουν κάποια εμπειρία σε κάτι. Ο Dimitris μάλιστα έδωσε και συγκεκριμένα παραδείγματα.


Μου κάνει τρομερά αρνητική εντύπωση το παραπάνω "δασκαλίστικο" σχόλιο σου, ειδικά μετά από όσα έχεις γράψει στο συγκεκριμένο νήμα! Με σπουδές Computer Science στην Αμερική (μερική εξειδίκευση στην τεχνητή νοημοσύνη), 10+ χρόνια επαγγελματικής ενασχόλησης, 5 χρόνια διδασκαλίας, και εν ενεργεία γνωριμίες τόσο στην Ελλάδα όσο και στο εξωτερικό με τις οποίες βρίσκομαι σε συχνή επικοινωνία παρόλο που επαγγελματικά έχω αποσυρθεί από τον χώρο εδώ και 5+ χρόνια, θέλω να πιστεύω πως έχω παραπάνω από αρκετά διαπιστευτήρια αφενός για να θεωρηθώ πως έχω "κάποια εμπειρία σε κάτι" κι αφετέρου για να έχω το δικαίωμα να απαντάω όπως αυτή τη στιγμή, όταν μου απευθύνονται στην προστακτική με υψωμένο το δάχτυλο, προτρέποντάς με να μάθω πράγματα που τα έχω φάει με το κουτάλι εδώ και τουλάχιστον 2 δεκαετίες.

Στο δια ταύτα λοιπόν, όλες οι γλώσσες είναι χρήσιμες και ταυτόχρονα καμία δεν είναι πανάκεια... η καλύτερη γλώσσα είναι τα bindings (με έχεις "αναγκάσει" να το γράψω τουλάχιστον 3 φορές μέχρι στιγμής σε αυτό εδώ το νήμα). Δεν αδικώ, δεν υποτιμώ, δεν χλευάζω ούτε τη C, ούτε την Assembly, ούτε την Perl, ούτε την Python, ούτε καμία άλλη γλώσσα. Όλες οι γλώσσες έχουν λόγους ύπαρξης και συνήθως η κάθε μια τους είναι καλύτερη από όλες τις υπόλοιπες σε τουλάχιστον 1 τομέα.

Τα κολλήματα με μία γλώσσα ή δυο γλώσσες συνήθως χαρακτηρίζει του χομπίστες, τους αδαείς ή/και τους ημιμαθείς (δεν αναφέρομαι σε κανένα συγκεκριμένα, για να μην έχουμε περαιτέρω παρεξηγήσεις). Όλοι έχουν τις προτιμήσεις τους σε 1-2 γλώσσες, οι γνώστες όμως του αντικειμένου ξέρουν πολύ καλά πως οι γλώσσες είναι απλώς εργαλεία... τίποτα περισσότερο και τίποτα λιγότερο.

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

Καλή συνέχεια ...
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό pc_magas » 04 Δεκ 2011, 13:41

Αλήθεια υπάρχουν γλώσσες ανάπτυξης λογισμικού στην Ελλάδα? Αν ναι ποιές είναι? Και ποιές ζητάνε Developers?
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2599
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό Star_Light » 04 Δεκ 2011, 20:54

migf1 έγραψε:

Μου κάνει τρομερά αρνητική εντύπωση το παραπάνω "δασκαλίστικο" σχόλιο σου, ειδικά μετά από όσα έχεις γράψει στο συγκεκριμένο νήμα! Με σπουδές Computer Science στην Αμερική (μερική εξειδίκευση στην τεχνητή νοημοσύνη), 10+ χρόνια επαγγελματικής ενασχόλησης, 5 χρόνια διδασκαλίας, και εν ενεργεία γνωριμίες τόσο στην Ελλάδα όσο και στο εξωτερικό με τις οποίες βρίσκομαι σε συχνή επικοινωνία παρόλο που επαγγελματικά έχω αποσυρθεί από τον χώρο εδώ και 5+ χρόνια, θέλω να πιστεύω πως έχω παραπάνω από αρκετά διαπιστευτήρια αφενός για να θεωρηθώ πως έχω "κάποια εμπειρία σε κάτι" κι αφετέρου για να έχω το δικαίωμα να απαντάω όπως αυτή τη στιγμή, όταν μου απευθύνονται στην προστακτική με υψωμένο το δάχτυλο, προτρέποντάς με να μάθω πράγματα που τα έχω φάει με το κουτάλι εδώ και τουλάχιστον 2 δεκαετίες.

Στο δια ταύτα λοιπόν, όλες οι γλώσσες είναι χρήσιμες και ταυτόχρονα καμία δεν είναι πανάκεια... η καλύτερη γλώσσα είναι τα bindings (με έχεις "αναγκάσει" να το γράψω τουλάχιστον 3 φορές μέχρι στιγμής σε αυτό εδώ το νήμα). Δεν αδικώ, δεν υποτιμώ, δεν χλευάζω ούτε τη C, ούτε την Assembly, ούτε την Perl, ούτε την Python, ούτε καμία άλλη γλώσσα. Όλες οι γλώσσες έχουν λόγους ύπαρξης και συνήθως η κάθε μια τους είναι καλύτερη από όλες τις υπόλοιπες σε τουλάχιστον 1 τομέα.

Τα κολλήματα με μία γλώσσα ή δυο γλώσσες συνήθως χαρακτηρίζει του χομπίστες, τους αδαείς ή/και τους ημιμαθείς (δεν αναφέρομαι σε κανένα συγκεκριμένα, για να μην έχουμε περαιτέρω παρεξηγήσεις). Όλοι έχουν τις προτιμήσεις τους σε 1-2 γλώσσες, οι γνώστες όμως του αντικειμένου ξέρουν πολύ καλά πως οι γλώσσες είναι απλώς εργαλεία... τίποτα περισσότερο και τίποτα λιγότερο.

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

Καλή συνέχεια ...


ΈΕΕΕΕτσι γιατι οταν τα έλεγα εγω αυτα σε ενα τσατ περυσι μου λεγαν οτι λεω τα αυτονοητα!!!
Ειδατε τελικα οτι ημουν μεγαλος γνώστης χωρις καν να το γνωρίζω? :D

lucine προσωπικα αναγνωριζω την μεγαλη σου προσφορα εδω στην κοινοτητα
αλλα αμα δεις και την πρσφορα οπως και την ικανοτητα του migf1
θα καταλαβεις οτι ησουν αδικος οταν του εγραψες σε αυτον τον τονο. Ο ανθρωπος ειναι γνωστης.
Αυτο μονο. Να με συμπαθάτε για την παρέμβαση ηθελα να πω και εγω τα δικα μου :D

P.S migf1 οσο για το γερος μην σε ανησυχει φιλε μου παμε κανα βραδυ καμια βολτα να ριξουμε καμια μικρουλα χαχαχαχαχαχα !!!!
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό lucinos » 05 Δεκ 2011, 19:00

Κανονικά όταν έγραψα το προηγούμενο δεν είχα σκοπό να ξαναπαντήσω αλλά μετά την απάντηση τού migf1 οφείλω κάποιες εξηγήσεις. Κατ αρχήν το ότι γνωρίζει C φαίνεται από τα γραφόμενά του, αλλού είναι το πρόβλημα. Ειδικά το δεύτερο σκέλος στην υπερβολικά θερμή έκφρασή μου εξ αρχής δεν ήταν μπηχτή σε άγνοια, ήταν αναφορά στον τρόπο που αντιμετωπίζει αυτά που λένε οι άλλοι. (οκ πάλι μπηχτή είναι αλλά διαφορετικού είδους). Γράφει ότι η καλύτερη γλώσσα είναι τα bindings και τον ανάγκασα να το γράψει τουλάχιστον τρεις φορές. Μήπως όμως εγώ (και όλος ο κόσμος θα ήθελα να πιστεύω) το βρίσκω εξίσου αυτονόητο; Διαφώνησα σε αυτό; Διαφώνησα ότι οι μια μεγάλη ποικιλία γλωσσών είναι ιδιαιτέρως χρήσιμη και φυσικά σε αυτή περιλαμβάνεται και η C; Πού είναι το πρόβλημά μου; Κάπου όμως αισθάνομαι ότι ζω σε τελείως διαφορετικό κόσμο. Ο τρόπος που το θέτει σε κάνει να πιστεύεις ότι για κάθε τι κάποια γλώσσα είναι καταλληλότερη, και αυτό που πρέπει να κάνεις είναι να χρησιμοποιήσεις την κατάλληλη γλώσσα για τον κατάλληλο σκοπό. Εγώ ζω σε έναν πολύ διαφορετικό κόσμο. Στον δικό μου κόσμο επίσης ανάλογα με τον σκοπό υπάρχουν καλές και κακές επιλογές γλωσσών αλλά αυτό συχνότατα δεν το ξέρω εκ τών προτέρων. Δεν ξέρω εκ τών προτέρων τι γλώσσα πρέπει να χρησιμοποιηθεί και πού. Αυτό το ανακαλύπτω στην πορεία. Και όταν έχεις πράγματα να ανακαλύψεις στην πορεία η C δεν είναι συνήθως τόσο καλή επιλογή. Για αυτό και εγώ επανέλαβα τόσες φορές ότι καλό είναι να κατεβαίνει κάποιος σε μια γλώσσα όπως η C μόνο όταν ξέρει πολύ καλά τι κάνει, αλλιώς μια διερμηνευόμενη γλώσσα θα τον βοηθήσει πολύ περισσότερο. Μπορεί να χρειαστεί να γράψεις και κώδικα σε C αλλά θα ξέρεις γιατί το κάνεις και θα είσαι πολύ καλύτερα προετοιμασμένος για να το κάνεις σωστά και αποτελεσματικά. Το ιδανικό για μένα είναι τα προγράμματα σε C να ακολουθούν αυστηρά τούς κανόνες "compactness" και "orthogonality" όπως εξηγούνται στο taoup. Έριξα μια ματιά στο βιβλίο τού K.N. King και ο πρόλογος και η εισαγωγή του με εντυπωσίασε (εξαιρετικός από κάθε άποψη). Στην εισαγωγή του έχει τα πλεονεκτήματα και τα μειονεκτήματα τής C, με τα οποία όσο περνάει από την αντίληψή μου βρίσκομαι σε απόλυτη συμφωνία με τον συγγραφέα.
Spoiler: show
Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
Λειτουργικό → Ubuntu 11.04 natty 64-bit (el_GR.UTF-8)
Προδιαγραφές → CPU: 4x Intel Core i5 CPU 750 2.67GHz ‖ RAM 3953 MiB ‖ ASRock P55DE3
Κάρτες γραφικών: nVidia G92 [GeForce GTS 250] ⎨10de:0615⎬ (rev a2)
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller ⎨10ec:8168⎬ (rev 03)
Άβαταρ μέλους
lucinos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 828
Εγγραφή: 12 Δεκ 2010, 22:04
Εκτύπωση

Re: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό Dimitris » 05 Δεκ 2011, 21:50

Και μη ξεχνάς τον Greenspun's tenth rule...
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό Star_Light » 06 Δεκ 2011, 15:58

Κατα την ταπεινη μου αποψη αλλη φορα πρεπει εξαρχης να ξεκαθαριζετε
ποιος μιλαει επαγγελματικα και ποιος μιλαει απο χομπιστικη πλευρα. Για να μην χαλατε τις καρδιες σας αμφοτεροι ;)
Ναι μεν μπορει να χεις κανει την δουλεια σου χομπι αλλα καποια πραγματα
που θα σε ενδιεφεραν εσενα προσωπικα να τα ψαξεις δεν θα ενδιαφερουν τους πελατες σου.

Τελος απο οσο εχω δει ως τωρα τουλαχιστον με προσωπικο ψαξιμο στην ελληνικη αγορα η C δεν εχει καμια τυχη. Το Web απο την αλλη
εχει ψωμι. 10 αγγελιες οι 8 για Web η 1 για C++ πχ και η αλλη για C και αν.... + οτι θα σου βγει η πιστη να παραδωσεις ενα προτζεκτ
χωρις λαθη μιας και οπως ειπατε πρεπει να ξερεις 100% τι κανεις.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό migf1 » 06 Δεκ 2011, 17:37

Καλησπέρα, ναι για Ελλάδα μάλλον τη ξεχνάς τη C (και να φανταστείς χώρες σαν την Ινδία κερδίζουν πάρα πολλά από outsourcing, εμείς εδώ την έχουμε δει όλοι αφεντικά και μας ξινίζει το outsourcing, τέσπα). Για Ελλάδα (και όχι μόνο) θα έλεγα να ξεκινήσεις με Java. Επίσης υπάρχει κώδικας που είναι γραμμένος ακόμα σε Delphi (αλλά για πόσο ακόμα; ; ... α, και σε C++ builder) ενώ ανεβαίνει και η C#... αποκλειστικά για web, θα έλεγα να ξεκινήσεις php (υποθέτοντας πως γνωρίζεις ήδη html/css και javascript ) ... προφανώς και html-5.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Το Σχολείο του Φόρουμ - Ασύγχρονα Μαθήματα