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

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

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

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

Δημοσίευσηαπό lucinos » 22 Νοέμ 2011, 17:18

(μια προειδοποίηση, όταν λέω γενική περίπτωση δεν εννοώ όλες τις περιπτώσεις, εννοώ αυτό που χρειάζεται ο περισσότερος κόσμος χωρίς να έχει κάποια ιδιαίτερη ανάγκη)

Ένας τρόπος να χωρίσουμε τις γλώσσες προγραμματισμού είναι σε «χαμηλού επιπέδου» και «υψηλού επιπέδου».
Χαμηλού επιπέδου πρακτικά είναι ο κώδικας μηχανής και η Assembly.
Η Assembly θα μάς ακολουθεί ες αεί ή όσο τουλάχιστον οι υπολογιστές παραμένουν μηχανές που τις προγραμματίζουμε. Έχει πάψει όμως εδώ και καιρό να χρησιμοποιείται για γενική χρήση, ένας σκοπός για τον οποίο έχει σοβαρά μειονεκτήματα. Όλες οι άλλες γλώσσες θεωρούνται «υψηλού επιπέδου».
Τις υψηλού επιπέδου γλώσσες, γνωστές και ως γλώσσες τρίτης γενιάς προσωπικά τις χωρίζω με δύο τρόπους. Ο ένας τρόπος είναι «παλαιές» και «μεταγενέστερες», ο άλλος τρόπος είναι προ-C και μετά-C κάτι σαν να λέμε «προσωκρατικοί φιλόσοφοι» :)

Οι παλαιές είναι πρακτικά οι ακόλουθες τέσσερις
FORTRAN (1957)
LISP (1958)
ALGOL (1958)
COBOL (1959)

Η πολύ κοντινή τους χρονικά εμφάνιση προφανώς δεν είναι τυχαία και έχει σχέση με την εξέλιξη τών υπολογιστών. Οι γλώσσες αυτές είναι πολύ σημαντικές γιατί είναι πρακτικά οι ρίζες όλων τών γλωσσών αλλά και γιατί για κάποιες ειδικές χρήσεις εξακολουθούν να είναι άριστες επιλογές. Για παράδειγμα η FORTRAN εξακολουθεί να είναι ιδανική για επιστημονικούς υπολογισμούς που θέλουμε άριστη απόδοση.

Μεταγενέστερες προ-C γλώσσες υπάρχουν φυσικά αρκετές, αλλά τρεις βλέπω σαν περισσότερο άξιες αναφοράς
BASIC (1964)
LOGO (1967)
Pascal (1970)

Η Basic είναι η αγαπημένη μου γλώσσα. Ως γλώσσα είναι συγγενική με την FORTRAN αλλά περισσότερο κατάλληλη για γενική χρήση από χομπυίστες. Τα χαρακτηριστικά της την έκαναν τεράστια επιτυχία στην δεκαετία τού 80. Είναι μια αδικημένη γλώσσα από την άποψη ότι την ακολουθούσε ένα (κατά την γνώμη μου) αδικαιολόγητο στίγμα «ερασιτεχνισμού» και «κατωτερότητας». Την δεκαετία τού 80 κάθε εταιρεία πρόσφερε την δική της Basic αλλά η επικράτηση τής Microsoft δεν είναι καλό σημάδι για το μέλλον της· έτσι για γενική χρήση δεν είναι παρά σκιά τού παλιού της εαυτού. Δεν συνδέθηκε καθόλου με την κουλτούρα τού Unix και τέλος στον εκπαιδευτικό τομέα έχασε το παιχνίδι από την Logo. Δυστυχώς δεν βλέπω τι άλλο μπορούμε να κάνουμε για αυτήν πέρα από μια καλή κηδεία.

Την Logo δεν την πολυσυμπαθώ κυρίως γιατί δεν μού αρέσει η ιδέα μιας γλώσσας φτιαγμένη με στόχο την ίδια την εκπαίδευση. Ως γλώσσα είναι συγγενική τής Lisp. Σε σχέση πάντως με την Basic βρίσκεται σε πολύ καλύτερη μοίρα.

Η Pascal όταν δημιουργήθηκε ερχόταν να καλύψει τόσο θεωρητικές όσο και πραγματικές ανάγκες. Ως γλώσσα συγγενεύει με την ALGOL. Προσωπικά την «απεχθάνομαι». Ο λόγος που ξεπεράστηκε είναι πολύ απλός και είναι ο συνδυασμός Unix-C. Η τελευταία αναλαμπή της ήταν όταν είχε κεντρικό ρόλο στον υπολογιστή Apple Lisa το 1983. Έκτοτε η μόνη της χρησιμότητα είναι μάλλον να παιδεύει φοιτητές καθώς κάποιοι επιμένουν να πιστεύουν ότι είναι χρήσιμη σε αυτό. Προσωπικά πιστεύω ότι θα έπρεπε να την κηδέψουμε και να την αφήσουμε να αναπαυθεί εν ειρήνη.

Η C επινοήθηκε το 1972. Όπως και η Pascal συγγενεύει με την ALGOL αλλά η C είναι συνυφασμένη με το Unix. Είναι μια σπάνια ιστορική στιγμή που κάποιοι είπαν «ας πετάξουμε την σαβούρα». Το αποτέλεσμα είναι μια μινιμαλιστική γλώσσα που συχνά θεωρείται «χαμηλού επιπέδου» καθώς είναι το χαμηλότερο επίπεδο που μπορείς να κατέβεις πριν την Assembly. Ως γλώσσα είναι ιδανική για λειτουργικά συστήματα και βασικά εργαλεία αλλά είναι ακατάλληλη για γενική χρήση. Η αξία τής C ως γλώσσα είναι αδιαμφισβήτητη και δικαίως συνεχίζει να στέκεται στις δημοφιλέστερες γλώσσες ακόμα και σήμερα και αυτό δεν αναμένεται να αλλάξει.

Η C++ είναι μια «αναβάθμιση» τής C. Δεν λέω σε καμμία περίπτωση ότι είναι «άχρηστη» ως γλώσσα· είναι κατανοητή η επιθυμία μιας «ανώτερης» C· αλλά πιστεύω ότι είναι «υπερτιμημένη». Η ίδια η C++ αντιβαίνει την φιλοσοφία τής C πάνω στην οποία βασίζεται. Ένας διάσημος ανώνυμος χαρακτηρισμός είναι «C++: ένα χταπόδι που φτιάχτηκε από έναν σκύλο καρφώνοντάς του επιπλέον πόδια». Προφανώς αν η επιλογή είναι μόνο μεταξύ C και C++ η δεύτερη είναι ανώτερη από την πρώτη σε πολλές περιπτώσεις (ή ακόμα περισσότερο στην «γενική» περίπτωση) αλλά προσωπικά θεωρώ ότι πάντα υπάρχουν άλλες προτιμότερες επιλογές. Από όσο έχω ασχοληθεί με αυτήν την γλώσσα έχω αποκτήσει (ανεξάρτητα) σχεδόν την ίδια άποψη με το taoup και με τον Λίνους. Η άποψη ότι η C++ είναι η ανώτερη γλώσσα προγραμματισμού την έχει υπερτιμήσει. Από την άλλη αντιστρέφοντας την λογική τού Λίνους πιστεύω η C++ είναι εξαιρετικά χρήσιμη για να κρατά μακρυά από την C άτομα ακατάλληλα για αυτήν.

Οι φλοιοί επίσης μπορούν να χρησιμοποιηθούν ως γλώσσες προγραμματισμού. Υπάρχουν αρκετοί και ο καθένας έχει τα προτερήματά του και ο (δικαίως) δημοφιλέστερος είναι το bash. Προσωπικά πιστεύω ότι κάποια πολύ λίγα πραγματάκια για το bash θα ήταν πολύ ωφέλιμο να γνώριζαν οι πάντες αν είναι δυνατόν. Από την άλλη ένας φλοιός είναι ακατάλληλος για γενική χρήση.

Για την Perl πιστεύω ότι ο χαρακτηρισμός «ντοπαρισμένος φλοιός» (έτσι την χαρακτηρίζει το taoup) πρέπει να είναι μάλλον πετυχημένος. Ως γλώσσα μου φαίνεται μάλλον πολύ καλή ιδέα για αρκετές περιπτώσεις αλλά όχι για την γενική περίπτωση και προσωπικά πιστεύω ότι δεν είναι ούτε υπερτιμημένη, ούτε υποτιμημένη.

Η γλώσσα που μού έχει κεντρίσει περισσότερο το ενδιαφέρον χωρίς να έχω ασχοληθεί ακόμα να την μάθω είναι η Python. Από όσα έχω διαβάσει για αυτήν αλλά και από την εμπειρία μου από άλλες γλώσσες η Python φαίνεται σαν ιδανική για την γενική περίπτωση. Μού φαίνεται δηλαδή σαν η Basic τής δεκαετίας τού 80. Προσωπικά την βρίσκω υποτιμημένη. Δεν έχω συζητήσει το θέμα με κάποιον για να δω αν κουβαλάει αντίστοιχο στίγμα όπως η Basic αλλά όπως και η Basic θεωρείται «αργή». Το θέμα τής ταχύτητας και τής βελτιστοποίησης είναι κάτι που με έχει απασχολήσει αρκετά και βρίσκω την επιλογή τής γλώσσας με βάση αυτό το χαρακτηριστικό μεγάλο λάθος. Εγώ θα το πρόσθετα στο taoup σαν ένα είδος πρόωρης βελτιστοποίησης. Σίγουρα αν κάτσω να μάθω μια (ακόμα) γλώσσα στο κοντινό μέλλον αυτή θα είναι η Python και αυτήν εγώ θα την πρότεινα για τον περισσότερο κόσμο.

Για να συνοψίσω πιστεύω ότι ο περισσότερος κόσμος θα ήταν χρήσιμο να ξέρει κάποια πολύ λίγα από bash και να ασχολείται για τις ανάγκες προγραμματισμού κυρίως με την Python. Άλλες γλώσσες, παλαιές όπως η FORTRAN και η COBOL ή νεώτερες όπως η C++ και η Perl, έχουν την χρησιμότητά τους ανάλογα με τις ιδιαίτερες ανάγκες και τού γούστα τού καθενός· κάποιες άλλες όπως η Basic ή η Pascal καλώς ή κακώς χρειάζονται μια καλή κηδεία ενώ η Logo παραμένει αυτό που ήταν πάντοτε και τέλος η βάση τού συστήματος πρέπει να είναι η 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: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό vasster » 22 Νοέμ 2011, 19:48

Δηλαδή, κατά την άποψη σου, πέρα από την C και την Python, ουσιαστικά δεν χρειάζεται τίποτα άλλο; Την java για παράδειγμα που την βάζεις; Την Html; Την Javascript; Την PL/SQL και γενικά τις sql γλώσσες; Μόνο σε αυτές τις γλώσσες που σου ανέφερα γράφθηκαν και γράφονται σήμερα εκατομμύρια γραμμές κώδικα. Αν θά 'θελες να δουλέψεις ως προγραμματιστής σήμερα, αυτές χρειάζονται.

Πέρα από αυτά όμως, κάθε γλώσσα είναι κατά βάση ένα εργαλείο. Τις χρησιμοποιείς αναλόγως της εργασίας που έχεις να υλοποιήσεις. Π.χ. στο ελεύθερο μου χρόνο ασχολούμαι με embedded συστήματα οπότε καλή γνώση σε assembly και σε C είναι απαραίτητη. Στη δουλειά μου όμως χρησιμοποιώ μια πληθώρα άλλων γλωσσών με κεντρικές τις pl/sql και java. Μέχρι πριν λίγα χρόνια δούλευα με Pascal και RPG ενώ δεν είναι σημαντικό να αναφέρω πολλές άλλες γλώσσες που σε μικρότερο ή μεγαλύτερο βαθμό χρησιμοποιούνται στο χώρο μου. Και παρότι έχω να γράψω σε Fortran πολλά χρόνια, γνωρίζω ότι τη χρησιμοποιούν ακόμα. Οσον αφορά την COBOL, είναι σίγουρο ότι θα βρεις αμέσως δουλειά, αν τη γνωρίζεις, σε μεγάλα μηχανογραφικά κέντρα.

Η Python είναι γλώσσα για την οποία έχουν γραφθεί αρκετά modules πράγμα που την κάνει ιδιαίτερα χρήσιμη αλλά το ίδιο συμβαίνει και με την PHP. Πολύς κόσμος δουλεύει με Ruby ενώ ακόμα πιο πολύς δουλεύει με C# και VB.

Κάθε γλώσσα αποτελεί ένα εργαλείο. Για να δουλεύεις αποτελεσματικά χρειάζεσαι για κάθε εργασία το σωστό εργαλείο. Για να μπορείς να επιλέξεις όμως πρέπει να γνωρίζεις.
Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
Ubuntu 17.04 (Zesty Zapus) 4.10.0-19-generic 64bit (en_US.UTF-8, Unity ubuntu)
Intel Core i5-6500 CPU @ 3.20GHz ‖ RAM 15915 MiB ‖ MSI H170M PRO-VDH (MS-7982) - MSI MS-7982
Intel Sky Lake Integrated Graphics [8086:1912] {i915_bpo}
enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15) ⋮ wlx784476b5edea: 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
vasster
punkTUX
punkTUX
 
Δημοσιεύσεις: 253
Εγγραφή: 23 Μάιος 2010, 09:51
Εκτύπωση

Re

Δημοσίευσηαπό lucinos » 22 Νοέμ 2011, 20:08

όχι! το εξήγησα ότι πολλές γλώσσες είναι πολύ καλές για συγκεκριμένους σκοπούς. και αυτό περιλαμβάνει την Fortran και την COBOL τις οποίες τις ανέφερα ρητά, αλλά και την Html, την Javascript, τις sql, την PHP και άλλες που δεν ανέφερα ρητά. Γενικά το γεγονός ότι δεν ανέφερα πολλές γλώσσες ιδιαίτερα τής μετά-C εποχής δεν σημαίνει κάτι ιδιαίτερο για αυτές, ούτε κακό ούτε καλό. Τώρα η java δεν είναι κακή αλλά νομίζω δεν είναι καθόλου αναντικατάστατη και θεωρώ ότι είναι κακή ένδειξη ότι ποδηγετείται από εταιρεία. Το ίδιο και ακόμα χειρότερο ισχύει για την VB. Επίσης είμαι ίσως προκατειλημμένος κατά τής Ruby (που δεν ανέφερα). Γενικά τις μόνες που «καταδίκασα» είναι η παλιά καλή Basic (για την οποία δεν βρέθηκε σοβαρή κοινότητα να την κρατήσει ζωντανή) και την Pascal. Επίσης «επιτέθηκα» κάπως στην Logo, και την C++ την χαρακτήρισα «υπερτιμημένη» (όχι «άχρηστη»)

Για να το εξηγήσω καλύτερα τι εννοώ για την προτίμησή μου στην ιδέα τής Python αυτό που λέω είναι ότι κάποιον που θέλει να ασχοληθεί με προγραμματισμό χωρίς να έχει κάποιον πολύ συγκεκριμένο στόχο (αν έχει κάποιον πολύ συγκεκριμένο στόχο τότε θα πρέπει να ξέρει και τι χρειάζεται καλύτερα), εγώ με όσες πληροφορίες έχω αυτήν την στιγμή θα τον έστρεφα σήμερα κατευθείαν στην Python. Την δεκαετία τού 80 θα τον έστεφα στην Basic.
Τελευταία επεξεργασία από lucinos και 23 Νοέμ 2011, 03:48, έχει επεξεργασθεί 1 φορά/ες συνολικά
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 » 22 Νοέμ 2011, 22:18

Επειδή λατρεύω τις συζητήσεις για γλώσσες προγραμματισμού δε μπορούσα να αντισταθώ στον πειρασμό να μη συμμετάσχω. Θα πρότεινα μια διαφορετική οπτική γωνία στις γλώσσες προγραμματισμού. Αυτή της lisp. H εξελικτική πορεία των γλωσσών προγραμματισμού, μέσα από το φακό της lisp είναι:
FORTRAN -> C -> perl -> python -> ruby -> lisp
και κάπου ενδιάμεσα βρίσκονται και όλες οι υπόλοιπες. Αυτό σημαίνει ότι η lisp ήδη από το 1958 είχε όλα τα χαρακτηριστικά που έχουν οι σύγχρονες γλώσσες προγραμματισμού. Για παραδείγμα τα closures είναι ένα χαρακτηριστικό που εμφανιστήκε σε άλλες γλώσσες πλην της lisp σχετικά τελευταία. Εγώ προσωπικά δε χρησιμοποιώ lisp στη δουλειά μου, αλλά έχω 1 project στον ελεύθερο χρόνο που τη χρησιμοποιώ. Παρόλ'αυτα είναι ίσως η πιο ισχυρή γλώσσα προγραμματισμου. Δεν πρέπει να μπλέκουμε όμως την ισχύ με τη δημοτικότητα μιας γλώσσας. Για τη δημοτικότητά της ευθύνονται και άλλοι παράγοντες, πχ. αν κρύβεται κάποια εταιρία πίσω από τη γλώσσα, ή το πόσο εύκολη είναι στην εκμάθηση.

Εν τέλει θα πρότεινα τη χρήση όσο το δυνατόν "υψηλότερων" γλωσσών προγραμματισμού, γιατί ακόμη και η επιλογή, πχ. της C εναντι της python λόγω ταχύτητας, είναι πρόωρη βελτιστοποίηση. Και όλοι ξέρουμε πώς η πρόωρη βελτιστοποίηση είναι μια λάθος αποφαση, σωστά; Γενικά οι γλώσσες perl, python, ruby είναι στέρεες αποφάσεις. (Εγώ έχω μια αντιπάθεια προς τη php)
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 22 Νοέμ 2011, 22:20

vasster έγραψε:Δηλαδή, κατά την άποψη σου, πέρα από την C και την Python, ουσιαστικά δεν χρειάζεται τίποτα άλλο; Την java για παράδειγμα που την βάζεις; Την Html; Την Javascript; Την PL/SQL και γενικά τις sql γλώσσες; Μόνο σε αυτές τις γλώσσες που σου ανέφερα γράφθηκαν και γράφονται σήμερα εκατομμύρια γραμμές κώδικα. Αν θά 'θελες να δουλέψεις ως προγραμματιστής σήμερα, αυτές χρειάζονται.

Πέρα από αυτά όμως, κάθε γλώσσα είναι κατά βάση ένα εργαλείο. Τις χρησιμοποιείς αναλόγως της εργασίας που έχεις να υλοποιήσεις. Π.χ. στο ελεύθερο μου χρόνο ασχολούμαι με embedded συστήματα οπότε καλή γνώση σε assembly και σε C είναι απαραίτητη. Στη δουλειά μου όμως χρησιμοποιώ μια πληθώρα άλλων γλωσσών με κεντρικές τις pl/sql και java. Μέχρι πριν λίγα χρόνια δούλευα με Pascal και RPG ενώ δεν είναι σημαντικό να αναφέρω πολλές άλλες γλώσσες που σε μικρότερο ή μεγαλύτερο βαθμό χρησιμοποιούνται στο χώρο μου. Και παρότι έχω να γράψω σε Fortran πολλά χρόνια, γνωρίζω ότι τη χρησιμοποιούν ακόμα. Οσον αφορά την COBOL, είναι σίγουρο ότι θα βρεις αμέσως δουλειά, αν τη γνωρίζεις, σε μεγάλα μηχανογραφικά κέντρα.

Η Python είναι γλώσσα για την οποία έχουν γραφθεί αρκετά modules πράγμα που την κάνει ιδιαίτερα χρήσιμη αλλά το ίδιο συμβαίνει και με την PHP. Πολύς κόσμος δουλεύει με Ruby ενώ ακόμα πιο πολύς δουλεύει με C# και VB.

Κάθε γλώσσα αποτελεί ένα εργαλείο. Για να δουλεύεις αποτελεσματικά χρειάζεσαι για κάθε εργασία το σωστό εργαλείο. Για να μπορείς να επιλέξεις όμως πρέπει να γνωρίζεις.


Αν κατσω και την μάθω σε 1 μήνα έχεις να μου προτείνεις
καποια απο αυτα τα μεγάλα μηχανογραφικά κέντρα? :D
Ονομάστικα και συγκεκριμενα.
Γνώσεις ⇛ 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: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό M.Jackson » 22 Νοέμ 2011, 23:27

Όλες οι γλώσσες χρήσιμες είναι!
Αγαπημένες μου εμένα είναι η Java, C++, C, PHP αν και θέλω να μάθω καλύτερα και την Python.
Τώρα και η Pascal είναι χρήσιμη, αλλά που είναι χρήσιμη; Σε εκπαιδευτικούς και μόνο σκοπούς. Άρα για να υπάρχει κάποια γλώσσα στον κόσμο τούτο σημαίνει κάπου ειναι χρήσιμη, το θέμα αν αυτο το κάπου δεν σε απασχολεί εσένα δεν θα ασχοληθείς και δεν θα την μάθεις.
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

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

Δημοσίευσηαπό Dimitris » 22 Νοέμ 2011, 23:55

M.Jackson έγραψε:Όλες οι γλώσσες χρήσιμες είναι!

Κάποτε ένας φιλόσοφος είχε πει ότι τα όρια της γλώσσας μας είναι τα όρια της σκέψης μας. Το ίδιο ισχύει και για τις γλώσσες προγραμματισμού. Αν δε μπορείς να εκφραστείς σε μια γλώσσα τότε δε μπορείς να σκεφτείς και διαφορετικά. Προσπάθησε να μάθεις τις lisp macro και θα δεις ότι σε καμία γλώσσα που γράφεις ότι ξέρεις, κάτι τέτοιο δεν είναι δυνατό. (Ίσως σε πρωτόγονο μόνο στάδιο στη python). Οι lisp macros σου δίνουν τη δυνατότητα να σκεφτείς διαφορετικά. Και όταν μάθεις να σκέφτεσαι διαφορετικά τα βλέπεις όλα με διαφορετική οπτική γωνία.

Δε θέλω να ξεκινήσω ένα ακόμη flame war, απλά θέλω να κεντρίσω το ενδιαφέρον όσων θέλουν να μάθουν κάτι διαφορετικό. Σίγουρα δεν πρόκειται να βρεις δουλειά γνωρίζοντας lisp. Αλλά σίγουρα θα σε κάνει καλύτερο java/c++/python/etc προγραμματιστή.
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 23 Νοέμ 2011, 00:00

Εγω παντως με μια μινι ερευνα αγορας που εκανα.
Καταληγω στο συμπερασμα οτι πολυ ψωμι εχει το Web.
Οσες αγγελιες εχω δει ζητανε προγραμματιστες PHP / CSS / HTML .

Εμενα μου αρεσει η C και εχω ασχοληθει λιγο με αυτην αλλα πολυ φοβαμαι πως σαν προγραμματιστης
στην C δεν θα βρω δουλεια στην Ελλαδα... εσεις τι πιστευετε? -.-

Να αρχισω να διαβαζω PHP κτλπ? :P :P :geek: :geek:
Γνώσεις ⇛ 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 » 23 Νοέμ 2011, 03:53

Dimitris έγραψε:η επιλογή, πχ. της C εναντι της python λόγω ταχύτητας, είναι πρόωρη βελτιστοποίηση

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

Dimitris έγραψε:FORTRAN -> C -> perl -> python -> ruby -> lisp
Εν τέλει θα πρότεινα τη χρήση όσο το δυνατόν "υψηλότερων" γλωσσών προγραμματισμού,

Βρίσκω την άποψή σου ακραία. Η Lisp δεν είναι απλώς ανώτερη, σε στέλνει στα άστρα. Έχει τεράστιο θεωρητικό ενδιαφέρον, μεγαλύτερο από όλες τις άλλες γλώσσες μαζί αλλά ο περισσότερος κόσμος έχει πιο γήϊνες ανάγκες. Δεν νομίζω ότι είναι καλή για γήϊνη χρήση. Μπορεί να είναι «αρχαία» αλλά εξακολουθεί να είναι μπροστά από την εποχή της.

λίγο xkcd...
Εικόνα
Εικόνα
Εικόνα
Τελευταία επεξεργασία από lucinos και 23 Νοέμ 2011, 05:45, έχει επεξεργασθεί 2 φορά/ες συνολικά
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: Λίγες σκέψεις για τις γλώσσες προγραμματισμού

Δημοσίευσηαπό lucinos » 23 Νοέμ 2011, 04:32

M.Jackson έγραψε:Τώρα και η Pascal είναι χρήσιμη, αλλά που είναι χρήσιμη; Σε εκπαιδευτικούς και μόνο σκοπούς.

Πιστεύω ότι αυτό είναι εκπαιδευτικό λάθος. Το ίδιο περίπου ισχύει και για την Logo αλλά η Logo έχει τουλάχιστον δύο καλές δικαιολογίες. Η μία είναι ότι συγγενεύει με την Lisp (και αυτό ενδεχομένως την κάνει ιδιαίτερη περίπτωση) η δεύτερη είναι ότι στον βαθμό που μπορεί να εμφανιστεί επιτυχώς σαν παιχνίδι κανείς δεν μπορεί να την αρνηθεί. Αυτά δεν ισχύουν για την Pascal. Η Pascal συγγενεύει με την ALGOL όπως και η C και αυτό που κάνει είναι μόνο να παιδεύει φοιτητές ανώτερης εκπαίδευσης. Δεν έχει τις δικαιολογίες τής Logo. Η Pascal για μένα ξεπεράστηκε πολύ απλά την ημέρα που επινοήθηκε το Unix. Αν εγώ είχα την επιλογή θα αντικαθιστούσα αμέσως τα μαθήματα Pascal με μαθήματα Unix. Τόσο απλό.
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
Εκτύπωση

Επόμενο

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

cron