Camels & snakes

Dimitrios Kamenopoulos el97146 at mail.ntua.gr
Fri Sep 20 20:45:02 EEST 2002


On Friday 20 September 2002 10:08, Dimitris wrote:

> *** Θέλω να μάθω μια scripting language.
> Πού να δώσω τον πολύτιμο χρόνο μου, σε Perl ή σε python? ***

Αν και η Perl είναι σαφώς πιο ενδιαφέρουσα[#] και πετυχημένη, νομίζω ότι  η 
Python έχει πιο καλό learning curve (μετάφραση: είναι πιο εύκολη στην 
εκμάθηση).

Ενδιαφέρον (τουλάχιστον για έναν αρχάριο) είναι όταν είσαι στον interpreter 
της Python, κάθε γραμμή που πατάς εκτελείται -ή αναλύεται- εκείνη τη στιγμή. 
Αντίθετα η Perl πρώτα αναλύει όλο το πρόγραμμα (δε θα μπορούσε να κάνει και 
διαφορετικά με τόσο πολύπλοκη σύνταξη) και μετά το εκτελεί. Πιστεύω πως ως 
αρχάριος είναι προτιμότερο να πληροφορείσαι αμέσως για το λάθος σου.

Επίσης η Python έχει κάποιους κανόνες με το identing (δεν έχει begin-end ή {} 
όπως οι άλλες γλώσσες) που στην αρχή μοιάζουν σπαστικοί, αλλά οδηγούν σε 
τρομερά καλογραμμένο και ομοιόμορφο κώδικα.

Δεν ξέρω τι παίζει με την Perl από δωρεάν docs (εγώ αγόρασα το "Μάθετε την 
Perl" και δανείστηκα από τη βιβλιοθήκη του ΕΜΠ το "The Perl Programming 
Language" 2-3 φορές, αλλά με τη διανομή της Python παίρνεις PDF για τα πάντα 
(συμπεριλαμβανομένου ενός καταπληκτικού tutorial).

Τέλος η Python είναι τουλάχιστον το ίδιο περιληπτική με την Perl. Πρόσφατα 
μετέτρεψα ένα Java Servlet σε Python Script και η αλλαγή ήταν από 300 γραμμές 
σε 40.

Με όλα αυτά δεν θέλω να μειώσω τη χρησιμότητα της Perl. Η Perl είναι MUST για 
οποινδήποτε χρήστη Unix (και όχι μόνο) και πολλές φορές σκριπτάκια της μιας 
γραμμής θα σε σώσουν. Δε νομίζω ότι οι δύο γλώσσες, πέρα από το ότι είναι 
Interpreted έχουν πολλά άλλα κοινά. Δεν είναι δηλαδή ακριβώς ανταγωνιστικές. 
Η Python, ως πιο δομημένη και αντικειμενοστραφής, προσφέρεται για 
προγραμματισμό «κανονικών» εφαρμογών (π.χ. μεγάλο μέρος του Yast2 είναι 
γραμμένο σε Python). Η Perl προσφέρεται για Web Development και μαζικές quick 
& dirty λύσεις.

Συνεπώς, θα έλεγα: ξεκίνα από Python γιατί είναι πιο εύκολη για τον αρχάριο 
και πιο συγγενική με τις mainstream «κανονικές» γλώσσες προγραμματισμού, όπως 
η C και η Java. Αλλά στο Unix δεν υπάρχει περίπτωση να τη γλιτώσεις χωρίς 
τουλάχιστον στοιχειώδη Perl. 
Ή: μάθε Perl. Ο δρόμος θα είναι πιο δύσκολος, αλλά αξίζει. Και μπορείς πάντα 
να μάθεις Python σε 1-2 εβδομάδες[@] αν τα πας καλά με οποιαδήποτε γλώσσα της 
οικογένειας της C.

[#] Ειπώθηκε στο thread ότι η Perl έχει παρόμοια σύνταξη με τη C. Δε νομίζω. Η 
Perl μοιάζει περισσότερο με μια σχετικά άναρχη φυσική γλώσσα, όπως τα 
Αγγλικά. Οι γλώσσες που μοιάζουν με C (C, Pascal, C++, Java, JavaScript κλπ) 
είναι αυστηρά δομημένες. Τώρα, εντάξει, η Perl χρησιμοποιεί τα {} για τα 
blocks όπως η C, έχει if, έχει +-/*= και τέτοια, αλλά αυτά τα έχει και η 
Python, που κατά τη γνώμη μου είναι συντακτικά ένα είδος Objective C Lite και 
ανήκει στην οικογένεια της C. Από εκεί και πέρα, το ενδιαφέρον της Perl είναι 
ακριβώς αυτή η τεράστια ελευθερία και εκφραστικότητα που της δίνει η 
ομοιότητά της με μια φυσική γλώσσα (και βέβαια τα τρισεκατομμύρια πράγματα 
που μπορεί να κάνει κανείς με αυτήν).
[@] Όταν λέω να μάθεις, εννοώ να γίνεις στοιχειωδώς παραγωγικός.



More information about the Linux-greek-users mailing list