Η αναζήτηση της τέλειας γλώσσας

...συζητήσεις περί τεχνολογίας για hardware, software, υπηρεσίες, κλπ (για ubuntu ... στο Γενικά)

Συντονιστές: Geochr, ubuderix

Η αναζήτηση της τέλειας γλώσσας

Δημοσίευσηαπό Dimitris » 30 Μαρ 2009, 21:01

Αρχικά υπήρχαν μόνο γλώσσες μηχανής, όπως οι διάλεκτοι της assemply. Μετά ήρθε η πρώτη γλώσσα υψηλού επιπέδου, η FORTRAN, και όλες οι υπόλοιπες γλώσσες υψηλού επιπέδου είναι διάλεκτοι αυτής. Ακολούθησε η COBOL, η ALGOL, και η LISP. Aπό αυτές η πιο αξιόλογη ήταν η LISP (LISt Processing), γιατί ήταν η μόνη γλώσσα που απαιτεί υψηλές μαθηματικές γνώσεις, όπως αυτές της λάμδα ανάλυσης. Κάποτε γεννήθηκε η Β, η οπόια με τη σειρά της γέννησε τη C, η οποία με τη σειρά της γέννησε τη C++, η οποία με τη σειρά της γέννησε την...Μετά ήρθε η SMALLTALK, για να πιάνει κανείς εύκολα κουβεντούλα. Άλλες γλώσσες περιλαμβάνουν Tcl/Tk, perl, python, java, ruby, php, ada, haskell, scheme, pascal, και άλλες πολλές. Και μετά ήρθε και το matlab, το mathematica και με τα αντίστοιχα ελεύθερα octave, scilab, κλπ κλπ. που μόνο μπέρδεψαν παραπάνω την κατάσταση.

Και αναρωτιέμαι εγώ σαν ένας ανίδεος "ποιά γλώσσα είναι καλύτερη;" και "από ποιά γλώσσα να ξεκινήσω;" Γιατί δεν υλοποιήθηκαν όλες αυτές οι ιδέες σαν βιβλιοθήκες/επεκτάσεις της μίας και μοναδικής γλώσσας προγραμματισμού; Γιατί έχουμε οδηγηθεί σε ένα πύργο της Βαβέλ; Αν όλο αυτό το ανθρώπινο δυναμικό είχε χρησιμοποιηθεί για να γραφούν βιβλιοθήκες για μία γλώσσα δε θα είχαν στα χέρια τους οι προγραμματιστές πολλές περισσότερες δυνατότητες; Είναι σίγουρα ένα υποθετικό ερώτημα που δε νομίζω να μπορεί κανείς να απαντήσει. Από την άλλη σήμερα βλέπουμε συνεχώς εργαλεία που συνδέουν την Α γλώσσα με τη Β (στις γλώσσες που μεταγλωττίζονται αυτό γίνεται ακόμη ποιο έυκολα) για να συνδυάσουν τις διάφορες δυνατότητες. Σίγουρα η μία γλώσσα έχει κάτι που η άλλη ζηλεύει αλλά αν είχαν σχεδιαστεί από την αρχή έτσι; Κάτι τέτοιο δεν ήταν φυσικά ευφικτό γιατί δεν υπήρχε η γνώση αλλά τώρα που υπάρχει μήπως πρέπει να αναθεωρήσουμε κάποιες απόψεις;

Γιατί ο κάθε κατασκευαστής δημιουργεί τη δική του γλώσσα; Γιατί δεν υπάρχουν κάποιες τυποποιήσεις που να τηρούνται; Στα μαθηματικά υπάρχουν κάποιοι κανόνες βάση των οποίων δημιουργεί ο κάθε μαθηματικός νέες θεωρίες. Στη μηχανολογία υπάρχουν τυποποιήσεις που τηρούνται---υπάρχει βέβαια το ISO και το ANSI και παλιότερα το DIN κ.α. αλλά τήνουν να υπερκεραστούν από το ISO---και ένας κατασκευαστής καταλαβαίνει το σχέδιο ενός άλλου ακόμη και να μην καταλαβαίνει τη γλώσσα του. Καταλήγω στο συμπέρασμα ότι η πληροφορική είναι ακόμη πολύ νέα επιστήμη, αν θέλει φυσικά να λέγεται επιστήμε, και ότι έχουμε ακόμη πολύ δρόμο μπροστά μας να διανύσουμε προς μία οικουμενική γλώσσα, έστω μετρημένες στα δάχτυλα του ενός χεριού γλώσσες.

Aν θέλετε να διαλέξετε μια γλώσσα προγραμματισμού καλύτερα να ρίξετε πρώτα μια ματιά στην παρακάτω λίστα:
http://en.wikipedia.org/wiki/User:Jquar ... _were_Cars
http://amix.dk/blog/viewEntry/152 ή http://leisureguy.wordpress.com/2006/11 ... ere-women/
Συμφωνα με τον Ε. Raymond: http://www.catb.org/~esr/faqs/hacker-howto.html#skills1 οι απαραίτητες γλώσσες προγραμματισμού είναι python, c/c++, perl, lisp, java. Εγώ συνεχίζω να αντιπαθώ τη java και τη c++.
Ένα επίσης ενδιαφέρον άρθρο είναι http://norvig.com/21-days.html

Υπάρχει μια ιδέα όλα τα προγράμματα java, των οποίων ο κώδικας είναι διαθέσιμος, να ξαναγραφούν σε python :mrgreen:
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Η αναζήτηση της τέλειας γλώσσας

Δημοσίευσηαπό g00fy » 30 Μαρ 2009, 21:38

Πολύ ωραία η δημοσίευσή σου – άρθρο φίλε μου. ;)

Θα απαντήσω στην ερώτησή σου γιατί να υπάρχουν τόσες γλώσσες, με μια άλλη ερώτηση...
Γιατί να υπάρχουν τόσες διανομές Linux; ;)

Προσωπικά πιστεύω, αν και ακόμα δεν έχω μάθει, η καλύτερη γλώσσα αυτή τη στιγμή είναι η Java. Ανοικτή, και εύκολα μεταφέρσιμη σε άλλες πλατφόρμες. Η σημερινή ταχύτητα των μηχανημάτων είναι “κτηνώδεις” για να πούμε πως η γλώσσα, λόγο της VM που χρησιμοποιεί, είναι αργή.
Πολλοί θα πουν “Python Rules!”, ναι αλλά που; Δεν έχω δει (μέχρι τώρα τουλάχιστο) πολλές εταιρίες να ζητούν προγραμματιστές Python και δεν είμαι σίγουρος (σας υπενθυμίζω πως δε γνωρίζω ούτε αυτή τη γλώσσα) αν είναι τόσο στιβαρή για βαριές, critical, εφαρμογές.

Αντίθετα, με την Java έχω δεί προγράμματα σε μεγάλα τυπογραφία να χειρίζονται τεράστιες μηχανές και να επεξεργάζονται για τύπωμα τεράστιους όγκους αρχείων - δεδομένων. Επίσης, για λίγο ακόμη (μέχρι να εξαγοραστεί απο την IBM), απο πίσω της είναι η SUN που την στηρίζει.Ακόμη, έχω διαβάσει, πως ακόμα και αν κρεμάσει η εφαρμογή, δύσκολα θα κάνει ζημιά στο σύστημα μια και αυτή τρέχει σε ένα εικονικό.

Έχω διαβάσει αρκετά πράγματα για την Java και νομίζω πως αυτή είναι η γλώσσα που θα προχωρήσω στον χώρο του αντικειμενοστραφούς προγραμματισμού και πέρα απο την C.
Η/Υ: Intel Pentium DualCore / 2GB RAM / nVidia Geforce 8400GS / Ubuntu 10.04 64bit
Η/Υ: Toshiba Tecra R10-10S / Ubuntu 9.10 64bit

motd: May the source be with you!
g00fy@ubuntu-gr.org:~$ cat /etc/γνώσεις.conf
Linux:kuru (όχι guru) / Προγραμματισμός:Ναί / Αγγλικά:Καλά
Άβαταρ μέλους
g00fy
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 614
Εγγραφή: 12 Σεπ 2008, 18:58
Τοποθεσία: Σε όλη τη Μακεδονία!
Εκτύπωση

Re: Η αναζήτηση της τέλειας γλώσσας

Δημοσίευσηαπό greatst » 30 Μαρ 2009, 21:44

g00fy έγραψε:Πολύ ωραία η δημοσίευσή σου – άρθρο φίλε μου. ;)

Θα απαντήσω στην ερώτησή σου γιατί να υπάρχουν τόσες γλώσσες, με μια άλλη ερώτηση...
Γιατί να υπάρχουν τόσες διανομές Linux; ;)

Προσωπικά πιστεύω, αν και ακόμα δεν έχω μάθει, η καλύτερη γλώσσα αυτή τη στιγμή είναι η Java. Ανοικτή, και εύκολα μεταφέρσιμη σε άλλες πλατφόρμες. Η σημερινή ταχύτητα των μηχανημάτων είναι “κτηνώδεις” για να πούμε πως η γλώσσα, λόγο της VM που χρησιμοποιεί, είναι αργή.
Πολλοί θα πουν “Python Rules!”, ναι αλλά που; Δεν έχω δει (μέχρι τώρα τουλάχιστο) πολλές εταιρίες να ζητούν προγραμματιστές Python και δεν είμαι σίγουρος (σας υπενθυμίζω πως δε γνωρίζω ούτε αυτή τη γλώσσα) αν είναι τόσο στιβαρή για βαριές, critical, εφαρμογές.

Αντίθετα, με την Java έχω δεί προγράμματα σε μεγάλα τυπογραφία να χειρίζονται τεράστιες μηχανές και να επεξεργάζονται για τύπωμα τεράστιους όγκους αρχείων - δεδομένων. Επίσης, για λίγο ακόμη (μέχρι να εξαγοραστεί απο την IBM), απο πίσω της είναι η SUN που την στηρίζει.Ακόμη, έχω διαβάσει, πως ακόμα και αν κρεμάσει η εφαρμογή, δύσκολα θα κάνει ζημιά στο σύστημα μια και αυτή τρέχει σε ένα εικονικό.

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


Ρίξε και μια ματιά στο συνδυασμό C++/Qt ;)
προσωπική ιστοσελίδαgreatst in Launchpad

Γνώσεις ⇛ Linux: Όσο ζω μαθαίνω ┃ Προγραμματισμός: Μια χαρά ┃ Αγγλικά: Εξαιρετικά

Mac mini (late 2009) (8GB RAM) με OS X 10.11.6 [και Ubuntu 16.04 Server amd64 και άλλες GNU/Linux εικονικές μηχανές με 2GB RAM, 128MB VRAM+3D_acceleration η κάθε μία].
Άβαταρ μέλους
greatst
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 639
Εγγραφή: 14 Δεκ 2008, 00:41
Τοποθεσία: Κατερίνη
Launchpad: greatst
IRC: greatst
Εκτύπωση

Re: Η αναζήτηση της τέλειας γλώσσας

Δημοσίευσηαπό g00fy » 30 Μαρ 2009, 21:59

Θα το κοιτάξω, για να το λες κάτι θα ξέρεις ;)
Μπορείς όμως να γράψεις εμπορικό λογισμικό με την Qt; Εννοώ, συμφέρει οικονομικά η αγορά της για όλες τις πλατφόρμες και για π.χ. 2 ή 3 developers; Νομίζω η Java δεν έχει αντίστοιχο οικονομικό πλάνο και περιορισμούς, άν δε κάνω λάθος φυσικά.
Η/Υ: Intel Pentium DualCore / 2GB RAM / nVidia Geforce 8400GS / Ubuntu 10.04 64bit
Η/Υ: Toshiba Tecra R10-10S / Ubuntu 9.10 64bit

motd: May the source be with you!
g00fy@ubuntu-gr.org:~$ cat /etc/γνώσεις.conf
Linux:kuru (όχι guru) / Προγραμματισμός:Ναί / Αγγλικά:Καλά
Άβαταρ μέλους
g00fy
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 614
Εγγραφή: 12 Σεπ 2008, 18:58
Τοποθεσία: Σε όλη τη Μακεδονία!
Εκτύπωση

Re: Η αναζήτηση της τέλειας γλώσσας

Δημοσίευσηαπό Dimitris » 30 Μαρ 2009, 22:30

O κύκλος ανάπτυξης GUI είναι πολύ πιο σύντομος με μία δυναμική γλώσσα απ'ότι με μία μεταγλωττιζόμενη γλώσσα. Η ταχύτητα εδώ δεν παίζει ρόλο. Γι'αυτό μπορεί να χρησιμοποιηθεί η python σε συνδυασμό με τη βιβλιοθήκη qt. Το λεγόμενο prototyping πρέπει να γίνεται σε γλώσσες που επιτρέπουν εύκολη και γρήγορη υλοποίηση. Έπειτα όταν γραφεί το πρόγραμμα γίνεται το profiling και τα μέρη που είναι χρονοβάρα ξαναγράφονται ώστε να γίνει αποδοτικό το πρόγραμμα.

Σχετικά με τη java υπάρχει αυτή η κριτική http://www.stsc.hill.af.mil/CrossTalk/2 ... nberg.html
Αυτό που δε μαθαίνει κανείς χρησιμοποιώντας java ή python είναι η διαχείριση μνήμης που είναι απαραίτητη στη C και σε άλλες γλώσσες.

Η Qt από την επόμενη έκδοση θα βγαίνει ύπο LGPL, οπότε το κόστος είναι μηδενικό.

ΥΓ. Όλα αυτά τα λέω από τα λίγα που έχω διαβάσει, δεν είμαι επαγγελματίας προγραμματιστής.
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Η αναζήτηση της τέλειας γλώσσας

Δημοσίευσηαπό mathpoet » 30 Μαρ 2009, 22:55

Είναι ωραία η σκέψη σου, αλλά θα διαφωνήσω κι εγώ με το τελικό συμπέρασμα. Ο g00fy κάνει έναν ωραίο συσχετισμό με τις διανομές. Το πλήθος των γλωσσών δείχνει ακριβώς ότι η πληροφορική έχει προχωρήσει πολύ και έχει μπει σε πάρα πολλούς τομείς της ζωής μας. Επίσης, η πληροφορική δεν είναι τόσο νέα επιστήμη όσο νομίζεις. Η ιστορία της ξεκινάει με τις απαρχές της μαθηματικής λογικής και τελευταία διάβαζα ότι ο Leibniz (1646-1716) είχε φανταστεί μια μηχανή πολύ κοντινή στους σύγχρονους υπολογιστές.

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

+1 στη java για νέους, κυρίως για τον "αυστηρό" προσανατολισμό της στην αντικειμενοστρεφή σχεδίαση. Φυσικά, δεν έχω ασχοληθεί με όλες όσες αναφέρονται για να έχω πιο αντικειμενική άποψη.
mathpoet
babeTUX
babeTUX
 
Δημοσιεύσεις: 72
Εγγραφή: 27 Νοέμ 2008, 16:27
Εκτύπωση

Re: Η αναζήτηση της τέλειας γλώσσας

Δημοσίευσηαπό greatst » 30 Μαρ 2009, 22:58

Dimitris έγραψε:...

Η Qt από την επόμενη έκδοση θα βγαίνει ύπο LGPL, οπότε το κόστος είναι μηδενικό.

...


Ρε Δημήτρη, εγώ κατέβασα πριν λίγες μέρες την Qt 4.5.0 και -εάν δεν κάνω λάθος- είναι ΗΔΗ υπό την LGPL! ;)

επεξεργασία στις 20090330-2305: περισσότερες πληροφορίες: http://www.qtsoftware.com/about/licensing
Τελευταία επεξεργασία από greatst και 30 Μαρ 2009, 23:06, έχει επεξεργασθεί 1 φορά/ες συνολικά
προσωπική ιστοσελίδαgreatst in Launchpad

Γνώσεις ⇛ Linux: Όσο ζω μαθαίνω ┃ Προγραμματισμός: Μια χαρά ┃ Αγγλικά: Εξαιρετικά

Mac mini (late 2009) (8GB RAM) με OS X 10.11.6 [και Ubuntu 16.04 Server amd64 και άλλες GNU/Linux εικονικές μηχανές με 2GB RAM, 128MB VRAM+3D_acceleration η κάθε μία].
Άβαταρ μέλους
greatst
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 639
Εγγραφή: 14 Δεκ 2008, 00:41
Τοποθεσία: Κατερίνη
Launchpad: greatst
IRC: greatst
Εκτύπωση

Re: Η αναζήτηση της τέλειας γλώσσας

Δημοσίευσηαπό Dimitris » 30 Μαρ 2009, 23:02

Αυτά είναι τότε ευχάριστα νέα!!! Πρέπει να το γιορτάσουμε, αν και προτιμώ τη GTK για παραδοσιακούς λόγους όπως το τσάμικο έναντι του rock :D
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Η αναζήτηση της τέλειας γλώσσας

Δημοσίευσηαπό greatst » 30 Μαρ 2009, 23:03

mathpoet έγραψε:...

+1 στη java για νέους, κυρίως για τον "αυστηρό" προσανατολισμό της στην αντικειμενοστρεφή σχεδίαση. Φυσικά, δεν έχω ασχοληθεί με όλες όσες αναφέρονται για να έχω πιο αντικειμενική άποψη.


Εγώ το ψάχνω αυτό το θέμα από το 1989 (AmigaBASIC, AMOS, C, C++, Java, GWBASIC/QBasic/QuickBasic, VisualBasic, κλπ) και καταλήγω μάλλον στο εξής ως πρόταση για εκμάθηση προγραμματισμού:

1) C++ (με καλή γνώση και του C-subset της C++) ως βασική γλώσσα προγραμματισμού

2) για προγραμματισμό gui
α) C++ με ένα καλό cross-platform framework (πχ: Qt)
β) Java+Swing

Γενικά πιστεύω ότι καλό είναι να μάθει κάποιος ΣΕ ΒΑΘΟΣ την C++ και στη συνέχεια την Java ως δεύτερη γλώσσα.

Αλλά, ξαναλέω, ακόμη το ψάχνω το πράγμα! 8-)
προσωπική ιστοσελίδαgreatst in Launchpad

Γνώσεις ⇛ Linux: Όσο ζω μαθαίνω ┃ Προγραμματισμός: Μια χαρά ┃ Αγγλικά: Εξαιρετικά

Mac mini (late 2009) (8GB RAM) με OS X 10.11.6 [και Ubuntu 16.04 Server amd64 και άλλες GNU/Linux εικονικές μηχανές με 2GB RAM, 128MB VRAM+3D_acceleration η κάθε μία].
Άβαταρ μέλους
greatst
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 639
Εγγραφή: 14 Δεκ 2008, 00:41
Τοποθεσία: Κατερίνη
Launchpad: greatst
IRC: greatst
Εκτύπωση

Re: Η αναζήτηση της τέλειας γλώσσας

Δημοσίευσηαπό greatst » 30 Μαρ 2009, 23:05

Dimitris έγραψε:Αυτά είναι τότε ευχάριστα νέα!!! Πρέπει να το γιορτάσουμε, αν και προτιμώ τη GTK για παραδοσιακούς λόγους όπως το τσάμικο έναντι του rock :D


Εμένα πάλι ο συνδυασμός C/GTK+ μου φάνηκε λίγο "παρωχημένος". Ο συνδυασμός C++/Qt μου φάνηκε πολύ περισσότερο στρωμένος. Βέβαια, υποκειμενικά είναι όλα αυτά!
προσωπική ιστοσελίδαgreatst in Launchpad

Γνώσεις ⇛ Linux: Όσο ζω μαθαίνω ┃ Προγραμματισμός: Μια χαρά ┃ Αγγλικά: Εξαιρετικά

Mac mini (late 2009) (8GB RAM) με OS X 10.11.6 [και Ubuntu 16.04 Server amd64 και άλλες GNU/Linux εικονικές μηχανές με 2GB RAM, 128MB VRAM+3D_acceleration η κάθε μία].
Άβαταρ μέλους
greatst
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 639
Εγγραφή: 14 Δεκ 2008, 00:41
Τοποθεσία: Κατερίνη
Launchpad: greatst
IRC: greatst
Εκτύπωση

Επόμενο

Επιστροφή στο Περί Τεχνολογίας