Προς το περιεχόμενο

Η "Κυρίαρχη" γλώσσα


alex2005

Προτεινόμενες αναρτήσεις

@omadeon

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

Αυτό ξαναγράψτο ΠΟΛΛΕΣ ΦΟΡΕΣ ακόμα μήπως και το χωνέψουν αρκετοί που θα το διαβάσουν.

Επειδή τα έζησα αυτά που γράφεις συμφωνώ ΑΠΟΛΥΤΑ.

 

<Αλλά η βλακεία είναι όπως η... Visual Basic>

Αν θες πες μας μερικά παραπάνω να αισθανθώ ωραία, γιατί δεν τα πάω και τόσο καλά με την MS. (Από την Quick Basic σε σχέση με την Turbo basic μου έδινε στα νεύρα η MS.)

 

Και στο θέμα μας, πάντα νόμιζα ότι προγραμματισμός σημαίνει αλγόριθμος.

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 63
  • Δημ.
  • Τελ. απάντηση

Κατ' αρχήν... συγνώμη για την καθυστερημένη απάντηση. Μόλις σήμερα πρόσεξα ότι απαντήθηκε το σχόλιό μου, και χάρηκα πολύ που συμφωνείς.

 

Πραγματικά εμείς οι προγραμματιστές φτιάξαμε (όλοι μαζί βέβαια) ΟΛΟ ΑΥΤΟ ΠΟΥ ΒΛΕΠΕΤΕ, ΚΥΡΙΕΣ ΚΑΙ ΚΥΡΙΟΙ (χεχε...)

 

Εμπεδώστε το. Κολυμπάτε ΗΔΗ μέσα στο μόχθο μας, γεύεστε τα φρούτα από το δέντρο μας, πίνετε το γάλα από τους μαστούς μας (ντάξει... εδώ τα παραλέω λιγάκι -χεχε)

 

Όμως... παραδέχομαι ότι

Η κακομοίρα η Βίζουαλ Μπέησικ δεν φταίει σε τίποτε που... όταν πας να κάνεις ορισμένα σοβαρά πράματα μαζί της, αυτή σου κάνει "μπέεε... μπέεε..."

Μπέησικ είναι, για πρόβατα φτιάχτηκε (που δεν άντεχαν τις άλλες μπέμπες). :)

 

Στην πραγματικότητα, μία γλώσσα υψηλού επιπέδου, υψηλότατου ΚΑΙ object-oriented, κατάλληλη για κάθε είδους εφαρμογή -γενικά- είναι και η Visual Prolog, που γράφει μόνη της μεγάλο μέρος του κώδικα των εφαρμογών που αναπτύσσει κανείς. Είναι μοναδική γλώσσα σε ορισμένες λειτουργίες της και φτιάχτηκε για 100% γενική χρήση, όχι εξειδικευμένη για Τεχν.Νοημοσύνη.

 

Προ ημερών άνοιξα κι ένα νέο blog ειδικά για θέματα Prolog (και δεν νομίζω να το ανέφερα, στο φόρουμ της Αϋπνίας):

http://prologsource.wordpress.com

 

Δεν κρύβω ότι είμαι... πονεμένη ψυχή που ασχολούμαι με Prolog. Είμαι όμως και ευτυχισμένος έτσι. Ακατάπαυστα δημιουργικός και καθόλου περιορισμένος σε αλγορίθμους ή μηχανικές διαδικασίες.

 

Πράγματι λοιπόν, ο προγραμματισμός δεν είναι πάντα ίδιος και σίγουρα δεν είναι μόνο μηχανικός ή μόνο αλγοριθμικός. Γλώσσες όπως η Prolog και η (παρεμφερής αλλά περισσότερο αφηρημένη και "functional") Haskell, δεν στηρίζονται τόσο πολύ σε αλγορίθμους όσο σε "specifications" για αλγορίθμους. Περιγράφεις (ιδανικά) το πρόβλημα με επακριβή τρόπο, και η γλώσσα (υποτίθεται ότι ) το λύνει μόνη της, με βάση τις δικές σου ΛΟΓΙΚΕΣ προδιαγραφές.

 

Πρόσφατα έμαθα κι άλλο ένα απαράδεκτο ανάμεσα σε τόσα που συμβαίνουν στη χώρα μας. Κάποιος μαθηματικός μου είπε ότι "μια φορά κι έναν καιρό διδάσκονταν και Λογική αλλά τελικά αποφασίστηκε να ΜΗ διδάσκονται". Δεν γνωρίζω αν ισχύει πράγματι αυτό, ή αν ισχύει ΤΩΡΑ, αλλά είναι απαράδεκτο.

 

Η βάση όλων των επιστημών ΕΙΝΑΙ η Λογική. Ο προγραμματισμός σε Λογική είναι λοιπόν το πιο φυσικό πράγμα για οποιονδήποτε επιστημονικά σκεπτόμενο (δηλαδή λογικά σκεπτόμενο). Εκ πρώτης όψεως ίσως αυτό να φαίνεται κοινοτοπία, αλλά... "Λογική" ΔΕΝ είναι το να σπάμε το κεφάλι μας να... μπούμε στη θέση του ίδιου του υπολογιστή και να σκαρφιστούμε μηχανικές διεργασίες. (Αυτό αν είναι αναγκαίο το κάνω ΠΙΟ σωστά, μέσω της καθαρής Assembly).

"Λογική" δεν είναι η εφευρετικότητά μας, αλλά μία ΜΕΘΟΔΟΣ για αυτήν, που αν τη γνωρίζουμε καθαρίζει τη σύγχιση.

 

Για λογική υπάρχουν και τα δικά μου bookmarks, αν έχετε όρεξη:

http://del.icio.us/omadeon/logic

 

Πολλά είπα. Ευχαριστώ για την καλή παρέα και την επικοινωνία.

 

Οπαδός των... Faithless ("Insomnia") είμαι κι εγώ, μην ανησυχείτε! :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το έχω ξανά πει και θα το ξανά πω: Κυρίαρχη γλώσσα είναι εκείνη που γνωρίζουμε καλύτερα και μπορούμε να είμαστε αποδοτικοί μαζί της, νιώθεις αποδοτικός με Prolog και Assembly; αν ναι, συνέχισε αν όχι άλλαξε, το ίδιο ισχύει και για όλες τις υπόλοιπες γλώσσες - βρείτε αυτό που σας ταιριάζει και φροντίστε να το μάθετε ΚΑΛΑ, καμία γλώσσα δεν κάνει αυτόματα θαύματα (φοβερές εφαρμογές, παιχνίδια κτλ.) χρειάζεται χρόνος ενασχόλησης μαζί της.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κατ' αρχήν "κυρίαρχη γλώσσα" φέρνει στο νου... πλειοψηφίες, κυριαρχίες, εκλογές... (μπλιαχ, αρκετά όλα αυτά).

 

Φυσικά το υποκειμενικό κριτήριο της προσωπικής αποδοτικότητας είναι πάρα πολύ σημαντικό και πρέπει να ληφθεί υπ' όψη.

 

Όμως τα πράματα αλλάζουν ριζικά αν τα δούμε από την άποψη του

Computational Linguistics.

 

Εκεί δεν υπάρχουν ούτε "κυρίαρχες" γλώσσες, ούτε "αυτές που αποδίδουμε καλύτερα". Υπάρχουν ΜΟΝΟ επακριβώς ορισμένα κριτήρια "εκφραστικότητας".

 

Η εκφραστικότητα μιας γλώσσας ορίζεται ΕΠΑΚΡΙΒΩΣ και ΔΕΝ σηκώνει 'υποκειμενικές αντιρρήσεις" ούτε μπάσταρδες έννοιες "κυριαρχίας" (μπλιαχ).

 

Οταν έγραψα το άρθρο που υποστήριξε ότι "η Prolog είναι (σχεδόν) το ίδιο εκφραστική με την ανθρώπινη γλώσσα" ΔΕΝ ΕΝΝΟΟΥΣΑ ΚΑΤΙ ΥΠΟΚΕΙΜΕΝΙΚΟ.

 

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

 

Το άρθρο αυτό διαβάστηκε από χιλιάδες άτομα, μερικούς κορυφαίους προγραμματιστές, και ΚΑΝΕΝΑΣ δεν εξέφρασε την παραμικρή αντίρρηση, διότι απλούστατα ΔΕΝ ΜΠΟΡΕΙ να υπάρχει (λογικά λανθασμένη αντίρρηση).

 

Λυπάμαι αν αυτό ακούγεται (ίσως) δογματικό, αλλά ΔΕΝ αποφασίζουμε "υποκειμενικά" αν αποδείχτηκε ή δεν αποδείχτηκε ένα μαθηματικό θεώρημα. η απόδειξη ΙΣΧΥΕΙ ή ΔΕΝ ΙΣΧΥΕΙ. Δεν αποφασίζουμε "δημοκρατικά' μία λογική σωστότητα. (Να ένα από τα προβλήματα της δημοκρατίας).

 

Ε, λοιπόν, για να το κάνω ΠΟΛΥ απλό χωρίς ακαταλαβίστικες προεκτάσεις, όταν λέμε πως μία τεχνητή γλώσσα είναι "το ίδιο εκφραστική' με μία άλλη (π.χ. φυσική γλώσσα) εννοούμε ότι

1) Ο,ΤΙΔΗΠΟΤΕ μπορείς να εκφράσεις σε μία γλώσσα, το εκφράζεις ΚΑΙ στην άλλη.

2) Η γραμματική/συντακτική (κλπ) δομή της μίας γλώσσας και εκείνη της άλλης τηρούν κάποια κριτήρια που είναι σε γενικές γραμμές ίδια. Για να μη γίνω πολύπλοκος, π.χ. με λογική μηδενικόύ βαθμού (χωρίς μεταβλητές) ΔΕΝ μπορείς να εκφράσεις προτάσεις όπως "Ολοι οι προγραμματιστές γνωρίζουν ΚΑΠΟΙΑ γλώσσα". Αρα στο παράδειγμα αυτό, ΔΕΝ είναι το ίδιο εκφραστική η Λογική μηδενικού βαθμού με τη λογική πρώτου βαθμού.

3) Επειδή η Prolog EXEI την εκφραστικότητα Λογικής Πρώτου Βαθμού (με μεταβλητές, αλλά... αλγεβρικού ή λογικού τύπου μεταβλητές, ΟΧΙ ψεύτικες που αποτελούν "θέσεις στη μνήμη", ενίοτε λογικά ασυνεπείς)...

ΓΙ'ΑΥΤΟ το λόγο, ισχύει το (1). Διότι κάθε ανθρώπινη γλώσσα ΕΧΕΙ επίσης την εκφραστική δύναμη Λογικής Πρώτου Βαθμού. (τέλος μίνι-απόδειξης).

 

Λυπάμαι, αλλά αν προτιμάτε τα μπρόκολα από τα ψάρια, ΔΕΝ είναι το ίδιο θρεπτικά. Κι αν προτιμάτε τη Basic από τη PROLOG δεν είναι το ίδιο εκφραστικές.

 

Προφανώς, ένας πρωτόγονος άνθρωπος του 50.000 προ χριστού μπορεί να εκφραζόταν καλύτερα με ΜΟΥΓΚΡΙΣΜΑΤΑ. Ε, λοιπόν ΔΕΝ είναι το ίδιο εκφραστικά, τα μουγκρίσματα με την (πλήρως ανεπτυγμένη) γλώσσα.

 

Τι να κάνουμε τώρα? Να... μουγκρίσουμε? Να... τσουγκρίσουμε?

 

"1+1=2" ΔΕΝ είναι θέμα ΟΥΤΕ κυριαρχίας, ΟΥΤΕ άνεσης, ΟΥΤΕ δημοκρατίας.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ανεξάρτητα από το ΤΙ πιστεύει ο καθένας μας, από το ποια φιλοσοφία ή ιδεολογία ή ποδοσφαιρική ομάδα (κλπ) προτιμά, τα μαθηματικά θεωρήματα ΙΣΧΥΟΥΝ και η λογική ΙΣΧΥΕΙ. Ακόμη και όταν "ξεπερνάμε τα όρια της λογικής" αυτό το κάνουμε (πρωτίστως) με το να τα ΣΕΒΟΜΑΣΤΕ (πρώτα). ΔΕΝ καθορίζεται η λογική σωστότητα από τη γνώμη μας ή τα καπρίτσια μιας ή τις "δημοκρατικές αποφάσεις μας".

 

Αυτό το πράγμα έχει απίστευτες ΚΟΙΝΩΝΙΚΕΣ ΠΡΟΕΚΤΑΣΕΙΣ.

 

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

 

Σαν αποτέλεσμα εντείνεται ένα από τα βασικά προβλήματα του πολιτισμού μας. το πρόβλημα είναι ότι ΔΕΝ μπορεί να επικρατεί κάποια άποψη που (αν τη βάλουμε κάτω από μαθηματικά ή λογικά κριτήρια σωστότητας) αποδεικνύεται λανθασμένη.

 

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

 

Σαν αποτέλεσμα, ζούμε σε μία κοινωνία όπου κυριαρχεί το ΠΑΡΑΛΟΓΟ σε διάφορες μορφές του. Και μεταξύ... παράλογων απόψεων πολλές φορές είμαστε υποχρεωμένοι να διαλέξουμε (ή π.χ. να 'ψηφίσουμε').

 

Για να μην πολιτικολογήσω άλλο, το ρίχνω λίγο στην πλάκα. Φανταστείτε πόσο κωμικός είναι ένας κόσμος που το ένα κόμμα πιστεύει ότι κατάρριψε το... Πυθαγόρειο Θεώρημα, ενώ ένα άλλο κόμμα πιστεύει ότι... όχι μόνο το απέδειξε με καινούργιο τρόπο, αλλά ΘΑ ΤΟ αποδείξει τετραγωνίζοντας τον κύκλο.

 

Διαλέχτε και ψηφίστε, ψοφίστε, ψεκάστε, τελειώστε...

 

Μόνο που... ΑΝ μαθαίναμε ΑΠΟ ΤΗΝ ΠΡΩΤΗ ΔΗΜΟΤΙΚΟΥ να σκεφτόμαστε λογικά, τέτοια παράλογα ΔΕΝ ΘΑ ΚΥΡΙΑΡΧΟΥΣΑΝ.

 

Επομένως το να ΜΗ ΔΙΔΑΣΚΕΤΑΙ η Λογική στα Ελληνικά σχολεία συμφέρει τις (παράλογες) εξουσίες στη χώρα μας.

 

Με παρόμοιο τρόπο, λοιπόν, το να ΜΗ διδάσκεται ένας μαθητευόμενος προγραμματιστής τη Λογική και τον (εντελώς φυσικό) Προγραμματισμό σε Λογική, τον μετατρέπει σε... υποχείριο ΠΑΡΑΛΟΓΩΝ ΕΡΓΟΔΟΤΩΝ.

 

Ε, τώρα πιστεύω να καταλάβατε ένα ΣΟΒΑΡΟ λόγο που ΔΕΝ "κυριαρχεί' ο Λογικός Προγραμματισμός (και η Prolog). :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σεβαστή η άποψη σου, όμως επί του θέματος της εκφραστικότητας, όπως την αντιλαμβάνομαι εγώ τουλάχιστον, επέτρεψε μου να παρατηρήσω, πως εντάσσεται κατά την γνώμη μου, αμιγώς σε Υποκειμενικά κριτήρια, διαφορετικά όλοι οι προγραμματιστές θα γράφανε σε Prolog ή σε όποια άλλη "ιδανική γλώσσα" κρίνανε οι ειδικοί.

 

Δηλαδή, κάτι που για εσένα μπορεί να θεωρείται «Εκφραστικό» (και πράγματι μπορεί να είναι!) δεν συνεπάγεται αυτομάτως πως είναι (ή καλύτερα αναγνωρίζεται ως) εκφραστικό ή ιδανικό για όλους τους άλλους ανθρώπους όπερ και υπάρχουν πολλές γλώσσες προγραμματισμού, όπως υπάρχουν και πολλές ανθρώπινες γλώσσες (δεν θα επεκταθώ, αρκούμε να σημειώσω πως η Ανθρώπινη Γλώσσα είναι αποτέλεσμα Κοινωνικής ανάπτυξης και φυσικά εν ολίγοις «Κουλτούρας» έκαστου Πολιτισμού –και οι υπάρχουν πολλοί Πολιτισμού όπερ Κουλτούρες), όλες μπορούν να επιτελέσουν τους σκοπούς τους, η καθεμιά όμως με το δικό της «εκφραστικό» μοντέλο (μορφή σύνταξης και οργάνωσης των εντολών) άλλοτε πιο επιτυχημένο και άλλοτε λιγότερο, παρʼ όλα αυτά η επιτυχία τους κρίνεται τόσο από την εξοικείωση του προγραμματιστή μαζί τους όσο και από το εάν τελικά το «εκφραστικό» μοντέλο τους ταιριάζει στην ιδιοσυγκρασία αυτού του ατόμου.

 

Σκέψου, εσύ γράφεις σε Assembly και την έχεις «ψωμοτύρι» (μαζί με την Prolog) από όσο έχω καταλάβει από τα λεγόμενα σου –γιατί; α) έχεις υψηλή εξοικείωση μαζί της λόγω του ότι β) σου ταιριάζει, εγώ αντίθετα με εσένα έχω εξοικείωση με την C/C++ και λιγότερο με Assembly διότι δεν μου ταιριάζει οπότε δεν μπόρεσα να «εξαναγκάσω» τον εαυτό μου να αποκτήσει μεγαλύτερη εξοικείωση μαζί της -δεν ταιριάζει στην "Φιλοσοφία" μου αν θες (απλά πράγματα, μην μπαίνουμε σε Βυζαντινισμούς).

 

Αυτά και καλή συνέχεια από εμένα..

:)

 

Υ.Γ.

Φυσικά, καταλαβαίνω την αγάπη σου για την Prolog καθώς έχεις αφιερώσει πολλά χρόνια από την ζωή σε αυτήν (21 χρόνια –από το 1986 νομίζω; Συγνώμη αν κάνω λάθος) αλλά συνιστώ Ψυχραιμία, καθώς νιώθω πως έχεις οριστεί -ελπίζω όχι μαζί μου.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μία γλώσσα είναι τόσο δυνατή όσο το σύνολο των προγραμματιστών που απασχολούνται με αυτήν.

 

Με αυτό εννοώ ότι όπως ένας κούκος δεν μπορεί να φέρει την άνοιξη, 100-200 άριστοι προγραμματιστές δεν αρκούν για να αποδείξουν ότι μία γλώσσα κυριαρχεί. Τι να το κάνω αν ο άλλος γράφει τέλεια assembly και δεν μπορώ να την διαβάσω;

 

Και πόσο αξία έχει να δαπανήσω χρόνια ολάκερα για να γράφω κάτι σε Prolog/LISP/Visual Basic/whatever για να αποδειχτεί στο τέλος ότι ο interpreter ή o compiler είναι ανεπαρκείς να μου δώσουν την ταχύτητα που θα έπρεπε να είχα;

 

Δεν υπάρχει κυρίαρχη γλώσσα. Υπάρχουν απλώς γλώσσες που βολεύουν για κάποιους σκοπούς. Και αυτό γιατί αυτό είναι που μας νοιάζει στο κάτω-κάτω. Να κάνουμε εύκολα, γρήγορα και αποδοτικά την δουλειά μας.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Χαίρετε....από περιέργεια και μόνο μου γεννήθηκε η απορία για το ποια είναι η κυρίαρχη γλώσσα προγραμματισμού (κυρίως στον χώρο των web εφαρμογών) και κατά συνέπεια με ποιά αξίζει να ασχοληθείς περισσότερο.

Έτσι απλά θα ήθελα να ρωτήσω αν υπάρχει κάποιο site ή κάποια υπηρεσία με όσο το δυνατόν πιο επίσημα στατιστικά στοιχεία γύρω από αυτό το θέμα.

Ελπίζω αυτό το post να μην γίνει αιτία για να μακρυγορήσουμε με προσωπικές απόψεις γύρω από το ζήτημα,υποστηρίζοντας φανατικά ο καθένας την τεχνολογία που του αρέσει.:?

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

 

Κάθε γλώσσα προσφέρει κάποια ιδιαίτερα χαρακτηριστηκά και δυνατότητες... Ανάλογα με το τι θες να κάνεις, επιλέγεις και το ποια γλώσσα θα χρησιμοποήσεις... Δεν μπορει να πεί κανείς ότι η τάδε γλώσσα προγραμματισμού είναι καλύτερη απο την άλλη, γιατί απλά δεν υπάρχει μέτρο σύγκρισης. Άλλες προσφέρουν καλύτερη συμβατότητα σε διάφορα συστήματα, άλλες δημιουργούν πιο ελαφριά προγράμματα, άλλες προσφέρουν εύκολη ενοποιήση γραφικών και ήχου με τον κώδικα κτλπ...

 

Για μένα η καλύτερη γλώσσα ειναι η GML πάντως, γιατί ταιριάζει στις ανάγκες μου... Όσων αφορά τον τομέα των Web εφαρμογών που σε απασχολεί, σόρρυ, αλλα δεν έχω ιδέα... :mrgreen:

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

επέτρεψε μου να παρατηρήσω, πως εντάσσεται κατά την γνώμη μου, αμιγώς σε Υποκειμενικά κριτήρια, διαφορετικά όλοι οι προγραμματιστές θα γράφανε σε Prolog ή σε όποια άλλη "ιδανική γλώσσα" κρίνανε οι ειδικοί.

 

Δυστυχώς δεν σου επιτρέπεται... ΛΟΓΙΚΑ (sic) η... υποκειμενοποίηση αντικειμενικών κριτηρίων (χεχε).

θα αναγνωρίζω όμως ότι ΝΑΙ, επιτρέπεται 100% η υποκειμενική επιλογή της καλύτερης γλώσσας που βολεύει τον καθένα.

 

Ας μη συγχέουμε ένα μαθηματικό αντικειμενικό κριτήριο με άλλα, υποκειμενικά. Θα το πω αντίστροφα.

 

-ΟΛΕΣ οι "διαδικαστικές γλώσσες" προγραμματισμού, ΔΕΝ έχουν την ίδια "εκφραστική δύναμη" (από καθαρά μαθηματική ή λογική άποψη) με άλλες (λογικές) γλώσσες όπως η Prolog (που ενσωματώνουν "εκφραστικότητα Λογικής Πρώτου Βαθμού" -και άνω).

 

Αυτό δεν σημαίνει ότι είναι κανείς υποχρεωμένος να τις ακολουθήσει. Μπορεί (π.χ.) να είναι πολύ πιο επίπονη η εκμάθησή τους, κι αυτό σίγουρα ισχύει, δηλαδή ΙΔΙΩΣ για προγραμματιστές που ξεκίνησαν από "διαδικαστικές γλώσσες", οι μη-διαδικαστικές ή 'δηλωτικές" ή λογικές γλώσσες φαίνονται ΠΑΝΤΑ πολύ πιο δύσκολες, γιατί απαιτούν διαφορετικό τρόπο σκέψης. (και δύσκολα "ξεμαθαίνει" κανείς το "διαδικαστικό τρόπο σκέψης").

 

Φυσικά, οι εταιρείες που αποφεύγουν τις "εκφραστικότερες γλώσσες" το κάνουν επίσης για σοβαρούς λόγους, π.χ. κόστος επανεκπαίδευσης προσωπικού, ενώ παραδέχομαι ότι ΚΑΙ εγώ καταφεύγω στην Assembly (το άκρον-άωτον της "διαδικαστικότητας") απλούστατα για λόγους ταχύτητας (10 έως 50 φορές πιο γρήγορα, σε αρκετές περιπτώσεις).

Σε θέματα αποδοτικότητας, σαφέστατα άλλες γλώσσες ΠΛΗΝ αυτών που είπα, είναι γρηγορότερες. Π.χ. C#.

 

Ας διακρίνουμε λοιπόν ΤΡΙΑ διαφορετικά πράγματα ή παράγοντες

1) ΕΚΦΡΑΣΤΙΚΟΤΗΤΑ (αντικειμενικό γλωσσολογικό κριτήριο)

2) ΑΠΟΔΟΤΙΚΟΤΗΤΑ (κυρίως σε ταχύτητα, ΜΕΤΡΗΣΙΜΟ κριτήριο)

3) ΕΥΚΟΛΙΑ (κυρίως υποκειμενικό κριτήριο, αλλά όχι μόνο έτσι)

 

Συμβιβάζομαι λοιπόν ότι η επιλογή γλώσσας προγραμματισμού είναι αποτέλεσμα αυτών των τριών κριτηρίων και... απεύχομαι το "δόγμα" του να συγκεντρώνομαι μόνο στο 1ο κριτήριο! :)

 

Πάντως όσα είπα περί Λογικής (γενικά) ισχύουν, και είναι ΕΝΑΣ (ανάμεσα σε πολλούς άλλους λόγους) που αποφεύγουν τη χρήση της Prolog σε εταιρείες.

 

Μία παράλογη κοινωνία δυσκολεύεται να σκεφτεί λογικά, σε ΟΛΟΥΣ τους τομείς.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

Ένας ολόκληρος χρόνος πέρασε και φαίνεται πως το αρχικό μου post ακόμα δεν έγινε κατανοητό!Είσαστε χείμαρος ρε παιδιά :)....πάλι λέμε λέμε προσωπικές απόψεις περί ανέμων και υδάτων!

 

Βλέπω ότι μέχρι και quote έγινε το αρχικό μου post το οποίο τονίζει ότι ΔΕΝ με ενδιαφέρει να ακούσω προσωπικές απόψεις!

 

Τέλος πάντων έκανα και εγώ quote την απάντηση του Jacaranda Bill που είναι και η απάντηση που έψαχνα θέτοντας αυτό το ερώτημα!

 

Δεν θέλω να γίνω αγενής παιδιά προς θεού....καλή συνέχεια!:)

 

Υ.Γ. omadeon όπως θα παρατηρήσεις βάσει στατιστικών στοιχείων η prolog δεν είναι καν μέσα στις πρώτες 20 γλώσσες.

Λογικό συμπέρασμα; Είσαι από τους ελάχιστους που του αρέσει και την χρησιμοποιεί!:)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ωραίο το άρθρο για τις "δημοφιλέστερες γλώσσες", αλλά -λυπάμαι- ανάμεσα σε 'προσωπικές απόψεις" εγώ είπα και ορισμένα ΑΝΤΙΚΕΙΜΕΝΙΚΑ ΚΡΙΤΗΡΙΑ, στα οποία ΔΕΝ μίλησα ΟΥΤΕ ΜΙΛΑΩ ποτέ "περί ανέμων και υδάτων".

 

Αν θέλετε, ΜΗ μάθετε Prolog, δεν σας αναγκάζει κανείς. ΟΥΤΕ είναι η πιο κατάλληλη γλώσσα ή η πιο αποδοτική, ΟΥΤΕ και η πιο εύκολη (αντίθετα είναι από τις πιο δύσκολες).

 

Ομως... ΜΗΝ "πετάτε το μωρό μαζί με το νερό του μπάνιου".

 

Η "εκφραστικότητα μιας γλώσαας" είναι αντικειμενικό κριτήριο και ορίζεται επακριβώς. Παράδειγμα

1) Σχεδόν ΟΛΑ τα πανεπιστήμια, όταν δημοσιεύουν θεωρητικές εργασίες στην Πληροφορική Επιστήμη και αναφέρονται στα πιο συνήθη σοβαρά προβλήματα, ΕΙΤΕ τα εκφράζουν με "Λογική Πρώτου Βαθμού" είτε σε κάποια μορφή Λογικού Προγραμματισμού (Prolog) μαζί με functional extensions (Haskell, κλπ).

 

2) ΚΑΝΕΝΑ σοβαρό πανεπιστημιακό paper δεν ασχολείται με γλώσσες όπως η... Visual Basic (το πολύ-πολύ να έχει "ψευδοκώδικα" αλγορίθμων ή κάποια κομμάτια δευτερεύουσας σημασίας σε άλλες γλώσσες).

 

3) Η Γραμματική του DNA ανακαλύφτηκε το 1993 από τον David Searls και διατυπώθηκε με δομές Prolog (διότι ΔΕΝ ΜΠΟΡΕΙ να εκφραστεί σε λιγότερο εκφραστικές γλώσσες).

 

4) "Λιγότερο εκφραστικές γλώσσες" όπως η 'C', ΔΕΝ ΕΙΝΑΙ ΑΠΑΡΑΙΤΗΤΑ καλύτερες για συγκεκριμένους στόχους (εξήγησα ήδη γιατί), αλλά ΑΠΑΡΑΙΤΗΤΑ δεν μπορούν να χρησιμοποιηθούν για άμεση έκφραση δομών σε εξίσου εκφραστικές γλώσσες.

 

5) Παράδειγμα του (4) είναι η... μετάφραση προτάσεων της Νέας Ελληνικής ή της Αγγλικής σε κώδικα. Μόνο μια γλώσσα με ίδια εκφραστική δύναμη με την ανθρώπινη μπορεί να το κάνει αυτό. Αλλιώς... ουσιαστικά πρέπει να φτιάξεις ΕΙΔΙΚΟ ΚΩΔΙΚΑ που να προσομειώνει τη Λογική Πρώτου Βαθμού ΠΡΙΝ εκφράσεις τις προτάσεις της φυσικής γλώσσας μέσα σε αυτή (σε άλλη γλώσσα, διαδικαστική).

 

Ισως δεν είναι γνωστό ότι η Prolog έχει ΗΔΗ... το αντίστοιχο ΡΗΜΑΤΩΝ, ΟΥΣΙΑΣΤΙΚΩΝ και ΕΠΙΘΕΤΩΝ, μαζί με "λογικές μεταβλητές' που υπακούουν στη Λογική συνέπεια (π.χ. της άλγεβρας) και δεν "καταστρέφονται" (σαν απλές θέσεις στη μνήμη). (Στη μετάφραση φυσικής γλώσσας σε Prolog δουλεύει πολύς κόσμος - και είμαι ένας από αυτούς).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Υ.Γ. omadeon όπως θα παρατηρήσεις βάσει στατιστικών στοιχείων η prolog δεν είναι καν μέσα στις πρώτες 20 γλώσσες.

Λογικό συμπέρασμα; Είσαι από τους ελάχιστους που του αρέσει και την χρησιμοποιεί!

 

Δεν μου λες κάτι καινούργιο. ΑΛΛΟ η βιομηχανία και ΑΛΛΟ η έρευνα.

 

Αν μετρήσεις τις σοβαρές πανεπιστημιακές έρευνες ΤΙ γλώσσες χρησιμοποιούν, θα δεις ΕΝΤΕΛΩΣ ΑΛΛΗ στατιστική (με την Prolog στις πρώτες θέσεις).

 

Κι ας μην ξεχνάμε ότι... ΔΕΝ ΓΛΥΤΩΝΟΥΜΕ από το Λογικό προγραμματισμό, λόγω του εξαπλωνόμενου "Semantic Web" και των δομών "RDF":

 

http://del.icio.us/omadeon/rdf

 

http://del.icio.us/omadeon/SemanticWeb

 

Η βιομηχανία δεν είχε ιδιαίτερη ανάγκη από λογικό προγραμματισμό ΜΕΧΡΙ ΤΩΡΑ, στις περισσότερες εφαρμογές. Η κατάσταση ΤΩΡΑ αλλάζει ραγδαία.

 

Μία ολόκληρη φουρνιά προγραμματιστών (η πλειοψηφία σήμερα) είτε θα πέσει χαμηλά σε ζήτηση είτε θα μάθει τις δομές του Εννοιολογικού Δικτύου, τα επόμενα χρόνια (μαζί με... ΕΙΤΕ Prolog EITE κάποια άλλη -αντίστοιχα εκφραστική- γλώσσα).

 

Υ.Γ. Δεν ξέρω ΤΙ γίνεται στα Ελληνικά πανεπιστήμια, παρά μόνο ότι (1) από τώρα και στο εξής η διδασκαλία της PROLOG έγινε σε ΟΛΟΥΣ ΥΠΟΧΡΕΩΤΙΚΗ (όπως και αλλού στον κόσμο, ΠΡΟ ΠΟΛΛΟΥ), ότι (2) δίδασκα και διδάσκω Prolog σε ιδιαίτερα μαθήματα, σε φοιτητές που ΔΕΝ τη διδάσκονται σωστά, και (3) ότι δεν έχω καμία ανάγκη να την... υποστηρίξω ή να επιλέξω ΑΥΤΗ ειδικά για "προσωπικούς λόγους". Δεν έχει κανείς παρά να ψάξει το... βιογραφικό μου (με τις δέκα περίπου γλώσσες που ξέρω καλά - οπότε ΓΙΑΤΙ να επιλέξω την "πιο δύσκολη"?)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Συγνώμη αλλά έχω την εντύπωση πως μόνο το 1% των προγραμματιστών του κόσμου ενδιαφέρει πως να συντάξουν δομές που να περιγράφουν το ανθρώπινο DNA.Όπως επίσης και να μεταφράσουν προτάσεις της οποιασδήποτε γλώσσας σε κώδικα.Κατ'επέκταση αυτά τα κριτήρια τα οποία ονομάζεις "Αντικειμενικά" είναι πλήρως ΥΠΟΚΕΙΜΕΝΙΚΑ και εξαρτώνται άμεσα με τα προγραμματιστικά σου ενδιαφέροντα.

Για να γίνω κατανοητός...θέλω να μου πεις πόσα χρόνια θα σου πάρει να γράψεις ένα OS σε prolog (αν είναι αυτό δυνατόν)

Πόσο καιρό θα σου πάρει να μηχανογραφήσεις μία επιχείρηση χρησιμοποιώντας prolog (αν είναι πάλι αυτό δυνατόν).

 

Είναι λίγο διαστημικές οι εφαρμογές που αναφέρεις λοιπόν για τους περισότερους από εμας.Και σίγουρα δεν έχουν καμία σχέση με αυτό το post που αναφέρεται σε εφαρμογές web.

 

Οπότε μην είσαι και τόσο δογματικός.

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

επιτρέπεται 100% η υποκειμενική επιλογή της καλύτερης γλώσσας που βολεύει τον καθένα.

 

Να και σε κάτι που συμφωνούμε - η αναγνώριση αυτής της διαπίστωσης μου φτάνει ;)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Συγνώμη αλλά έχω την εντύπωση πως μόνο το 1% των προγραμματιστών του κόσμου ενδιαφέρει πως να συντάξουν δομές που να περιγράφουν το ανθρώπινο DNA.

Φυσικά. Ενδιαφέρει βέβαια τους... βιολόγους (και βιοπληροφορικούς -που είναι νέος τομέας).

 

Όπως επίσης και να μεταφράσουν προτάσεις της οποιασδήποτε γλώσσας σε κώδικα.Κατ' επέκταση αυτά τα κριτήρια τα οποία ονομάζεις "Αντικειμενικά" είναι πλήρως ΥΠΟΚΕΙΜΕΝΙΚΑ και εξαρτώνται άμεσα με τα προγραμματιστικά σου ενδιαφέροντα.

Κοίταξε φίλε μου. ΔΕΝ με ενδιαφέρει τι κάνουν οι (άλλοι) προγραμματιστές, οι περισσότεροι εκ των οποίων δεν είναι ΚΑΝ Computer Scientists, αλλά απλά... γρανάζια σε στυγνή βιομηχανία (που τους εκμεταλλεύεται και τους δίνει ΜΟΝΟ ΟΣΕΣ γνώσεις είναι απαραίτητες για να 'βγάλουν τη δουλειά').

Επίσης ΔΕΝ με ενδιαφέρει τι κάνουν οι πλειοψηφίες (γενικώς), ΟΥΤΕ τις ακολουθώ, διότι είμαι... δημοκρατικός ελιτιστής (χεχε).

 

Οπως είπα και πριν, ΔΕΝ αποφασίζει η πλειοψηφία αν ένα μαθηματικό θεώρημα είναι λογικά σωστό. Μία μειοψηφία που μπορεί να ελέγξει την απόδειξη, είναι η ΜΟΝΗ που (μπορεί να) αποφασίζει.

Η "ανώτερη εκφραστικότητα" οποιασδήποτε γλώσσας που ενσωματώνει Λογική 1ου βαθμού (με μεταβλητές, 1st order predicate calculus) είναι τεκμηριωμένη επιστημονικά, ΠΕΡΑ ΑΠΟ ΑΜΦΙΣΒΗΤΗΣΗ.

 

Για να γίνω κατανοητός...θέλω να μου πεις πόσα χρόνια θα σου πάρει να γράψεις ένα OS σε prolog (αν είναι αυτό δυνατόν)

ΑΠΑΝΤΗΣΗ.

α) Σε λίγες μέρες, μπορείς να έχεις το ΛΟΓΙΚΟ ΜΟΝΤΕΛΟ του λειτουργικού συστήματος, ΠΡΙΝ το υλοποιήσεις σε άλλη γλώσσα (που εγώ θα επέλεγα την Assembler "δαγκωτή").

β) Επίσης με ελάχιστες γραμμές κώδικα Prolog μπορείς να ΕΚΦΡΑΣΕΙΣ τη γραμμτική μίας άλλης γλώσσας (σαν τη 'C' ή την PASCAL) και να παράγεις σαν ΑΜΕΣΗ συνέπεια ένα σωστό compiler της.

γ) Τέλος, ΕΙΔΙΚΗ ΕΡΕΥΝΑ σε προχωρημένα λειτουργικά συστήματα (π.χ. για παράλληλη επεξεργασία) γίνεται ΠΡΩΤΙΣΤΩΣ σε prolog.

 

Πόσο καιρό θα σου πάρει να μηχανογραφήσεις μία επιχείρηση χρησιμοποιώντας prolog (αν είναι πάλι αυτό δυνατόν).

ΠΟΛΥ ελάχιστες μέρες, ΜΕΣΑ ΣΤΟ ΝΕΡΟ. Κάποτε παρά λίγο να... ξαναγράψω ΟΛΟΚΛΗΡΟ σύστημα προγραμματισμού επιχειρήσεων (μεγάλης εταιρείας) σε ελάχιστες μέρες (αλλά αποτράπηκα γιατί... "δεν συνέφερε" να καταλαβαίνω ΜΟΝΟ εγώ τι είχα κάνει).

 

Είναι λίγο διαστημικές οι εφαρμογές που αναφέρεις λοιπόν για τους περισότερους από εμας.

Καθόλου "διαστημικές". Η Visual Prolog είναι ΓΕΝΙΚΗΣ ΧΡΗΣΗΣ γλώσσα προγραμματισμού, με ΠΟΛΥ λιγότερο κώδικα για τα ίδια αποτελέσματα και ΠΟΛΥ λιγότερο κόπο ή ανθρωποώρες, για υλοποίηση οποιασδήποτε εφαρμογής. Πέρασαν ανεπιστρεπτί οι μέρες που ήταν "ακαδημαΪκή γλώσσα".

 

Και σίγουρα δεν έχουν καμία σχέση με αυτό το post που αναφέρεται σε εφαρμογές web.

a) ΠΟΥ το αναφέρει ότι αφορά "μόνο εφαρμογές Web"? H Ταξινόμηση του ποστ είναι

Insomnia.gr > Προγραμματισμός > Προγραμματισμός > Η "Κυρίαρχη" γλώσσα

B) Ακόμη και έτσι, άντε γράψε εφαρμογή για το Εννοιολογικό Δίκτυο (SEMANTIC Web) χωρίς Λογικό προγραμματισμό (κάποιας μορφής). Η εφαρμογή θα αποτύχει οικτρά. Παρόλ' αυτά, ΔΕΝ συνιστώ την Prolog για το σημερινό (εντελώς χαζό και χαώδες) WWW.

 

Οπότε μην είσαι και τόσο δογματικός.

Καθόλου δογματικός. Απλά πεισματάρης σε θέματα ΤΕΛΕΙΩΜΕΝΑ.

 

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

α) Δυστυχώς ή ευτυχώς... ΕΙΜΑΙ (χεχε)

β) Δυστυχώς ή ευτυχώς ΑΛΛΟΙ έχουν αποφασίσει αυτά τα θέματα, αφού μετά το 2004, που ΤΕΛΕΙΩΣΕ η "πρωτοβουλία για το Εννοιολογικό Δίκτυο" (από την w3c.org - ΔΕΙΤΕ ΕΠΕΙΓΟΝΤΩΣ ΑΥΤΟ ΕΔΩ ΤΟ LINK: http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/) η βιομηχανία προβλέπεται ΗΔΗ πως θα χρειαστεί ΕΚΡΗΞΗ έξυπνων εφαρμογών που να εκμεταλλεύονται τις λογικές συνεπαγωγές εννοιών του RDF.

Αν κοιτάξεις ΕΛΑΧΙΣΤΑ τα links που έδωσα θα βρεις συναρπαστικά πράματα, καθώς και νέα δεδομένα.

ΚΑΜΙΑ σημερινή εφαρμογή Web δεν θα "φτουράει" χωρίς Λογικό Προγραμματισμό σε ελάχιστα χρόνια . Αυτός είναι και ο λόγος που το άρθρο μου για την (εκφραστικήδ ύναμη της) Prolog (ΕΔΩ) διαβάστηκε από χιλιάδες συναδέλφους (χωρίς ΟΥΤΕ ΕΝΑΣ να το "δει προσωπικά" ή να εκφράσει αντιρρήσεις).

Δυστυχώς όμως... όχι μόνο "ουδείς προφήτης στη χώρα του" αλλά και "καλύτερα κούλης στην αρχαία Κίνα παρά... προγραμματιστής στην Ελλάδα". :)

 

Υ.Γ. Τέλος, επειδή είναι ασύμφορο να... επανεκπαιδευτούν τόσα εκατομμύρια προγραμματιστές, εκείνο που θα γίνει είναι ότι οι περισσότεροι θα δουλεύουν με RDF, OWL και XML (αλλά θα ξέρουν και "ολίγη Prolog" για να καταλαβαίνουν ΤΙ κάνουν). Ο πυρήνας όμως του νέου διαδικτύου θα απαιτεί ΕΞΙΣΟΥ Prolog και τα προηγούμενα. Δείτε τι γράφει ένας από τους... καλύτερους προγραμματιστές στον πλανήτη (που ΔΕΝ δουλεύει ΣΥΝΗΘΩΣ σε Prolog):

http://www.xml.com/pub/a/2001/04/25/prologrdf/

Και ένας άλλος (ΠΟΛΥ κορυφαίος συνάδελφος, συγγραφέας βιβλίων), ο MArkκ Watson:

http://radio.weblogs.com/0115954/(κάτω μέρος)

"I am a big fan of "using the right tool for the right job". (όπου δεν αρνείται ότι προτιμάει ΑΛΛΕΣ γλώσσες για τα περισσότερα)...

σχολιασμό του προηγούμενου άρθρου (και επεκτάσεις) έκανα κι εδώ:

http://omadeon.wordpress.com/2007/05/25/prolog/

("The ultimate high productivity programming language is PROLOG").

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.


  • Δημιουργία νέου...