Δημοσιεύτηκε: 30 Μαρ 2009, 21:01
από Dimitris
Αρχικά υπήρχαν μόνο γλώσσες μηχανής, όπως οι διάλεκτοι της 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: