Ο Γιώργος συνδιάζει τις απίστευτες γνώσεις σε εξαιρετικά δύσκολα σημεία του αντικείμενου των υπολογιστών με μια φιλική και πρόσχαρη άνθρωπος προσωπικότητα, πάντα και διαθέσιμος να βοηθήσει τους υπόλοιπους. Έχει έντονη δράση στον χώρο του ανοικτού λογισμικού ενώ αποτελεί core contributor του FreeBSD. Αποτελεί έναν από τους "διάσημους" που είχαμε την τύχη να κάνουν παρουσίαση, και σύμφωνα με μετριοπαθείς υπολογισμούς έκαναν 1023 ανθρώπους που ενδιαφέρονται να μάθουν κάτι παραπάνω μέσα από την παρουσίαση για Unit testing της οποίας το βίντεο μπορείτε να βρείτε εδώ. Αν δεν το έχετε δει ακόμα, μη περιμένετε άλλο, ευκαιρία να στρογγυλοποιήσετε τον παραπάνω αριθμό!
Ποιός είσαι;
Με λένε Γιώργο Κεραμίδα. Ήμουν για κάποιο καιρό φοιτητής στο CEID. Στο CEID γνώρισα το ανοικτό λογισμικό και την Python. Εκεί, επίσης, ήρθα σε επαφή με άλλους προγραμματιστές open & free software.
Τα τελευταία 10 χρόνια είμαι μέλος της ομάδας ανάπτυξης του FreeBSD έχω γνωρίσει τεχνικές και έχω μάθει πράγματα τα οποία με έχουν ευχαριστήσει & βελτιώσει ως άνθρωπο και ως προγραμματιστή. Η συμμετοχή μου στην ομάδα του FreeBSD είναι ένα από τα πράγματα που με κάνουν περήφανο, ιδιαίτερα επειδή έχω προσφέρει με το δικό μου τρόπο τόσο στην ανάπτυξη όσο και την προώθησή του.
Εργάζομαι ως senior software developer σε εταιρείες λογισμικού σε Ελλάδα και εξωτερικό. Η ειδίκευσή μου είναι κυρίως σε θέματα δικτυακών εφαρμογών, release & configuration management, testing και quality assurance.
Τι παρουσίασες;
Παρουσίασα το unit testing, χρησιμοποιώντας παραδείγματα γραμμένα σε σχετικά απλή ANSI C. Οι ίδιες ακριβώς ιδέες εφαρμόζονται και σε Python, C++ ή οποιαδήποτε άλλη γλώσσα.
Έκανα την παρουσίαση με κυριότερο σκοπό τη διάδοση του unit testing ως ιδέα στον κόσμο που ξεκινά τώρα να ασχολείται με τον προγραμματισμό. Είναι ένας από τους λίγους τρόπους να εξασφαλίσουμε την ποιότητα του λογισμικού το οποίο γράφουμε. Τέτοιου είδους τεχνικές και γνώση είναι ακριβώς αυτό που πιστεύω ότι αξίζει να διαδίδεται μέσα από ομάδες όπως η TasPython.
Χρησιμοποιείς την Python για...
Χρησιμοποιώ την Python σχεδόν παντού. Οπουδήποτε χρειάζεται κάτι πιο περίπλοκο από απλό string processing ή απλά shell pipe-lines. Για όλα τα πράγματα που χρειάζονται ωραίες και ευανάγνωστες δομές δεδομένων :-) Η κλασική αντιμετώπιση που έχω σε οποιοδήποτε μέρος της καθημερινής μου δουλειάς έχει σχέση με αυτοματοποίηση είναι: «Αν είναι πάνω από 100 γραμμές ή χρειάζεται οτιδήποτε πιο περίπλοκο από μια απλή λίστα από γραμμές κειμένου, είναι ήδη ώρα να το γράψεις σε Perl ή Python.»
Τι σου αρέσει στην Python;
Προσωπικά μου αρέσουν πολλά χαρακτηριστικά της Python. Είμαι από παλιά φίλος των dynamically typed γλωσσών. Η γλώσσα την οποία προτιμώ για τις εντελώς δικές μου εργασίες είναι π.χ. η Common Lisp, μια κατεξοχήν δυναμική & επεκτάσιμη γλώσσα. Η Python μου αρέσει επειδή:
Τι δεν σου αρέσει;
Οι επιλογές του Guido van Rossum δε με βρίσκουν πάντα σύμφωνο. Π.χ. οι απόψεις του περί lambda function support, macro support και οι αλλαγές που κάνει στην Python στις εκδόσεις 3.0 και τις νεώτερες είναι πολύ σημαντικές, επηρεάζουν ιδιαίτερα το συντακτικό της γλώσσας, αλλά και έτσι ακόμα δεν είναι αρκετές για να φτάσουμε και στην Python την πλήρη αυτονομία του συντατικού από το σημειολογικό επίπεδο του πηγαίου κώδικα ενός προγράμματος --- κάτι που υπάρχει ήδη σε άλλες γλώσσες.
Τι εξελίξεις προβλέπεις;
Οι υπολογιστές παίζουν ήδη σημαντικό ρόλο στη ζωή μας. Έχουμε κάνει τεράστια βήματα μέσα στα τελευταία 50 χρόνια. Από τους υπολογιστές οι οποίοι χρειαζόντουσαν ένα μέτριο κτίριο ο καθένας έχουμε φτάσει σε τέτοιο επίπεδο που ο καθένας από εμάς κυκλοφορεί στο δρόμο με πολλαπλούς μικρούς υπολογιστές πάνω του (τηλέφωνα, bluetooth-enabled devices, PDA, ακόμη και φορητούς μίνι-υπολογιστές γενικής χρήσης). Η πρόοδος της τεχνολογίας είναι εντυπωσιακή και συνεχίζει με ακάθεκτο ρυθμό. Τέτοια είναι η φύση της προόδου: όταν ξεκινήσει προς μιας κατεύθυνση δε μπορεί εύκολα να πισωγυρίσει, τουλάχιστον χωρίς δραματικές και απότομες αλλαγές καταστροφικής φύσης.
Είναι πολλές οι πλευρές της καθημερινής μας ζωής, της δουλειάς μας, της διασκέδασης, της επικοινωνίας, της κοινωνικής και προσωπικής έκφρασης του καθενός από εμάς οι οποίες επηρεάζονται ή βελτιώνονται από τη χρήση της τεχνολογίας. Οι θετικές επιδράσεις της τεχνολογίας είναι σίγουρα χρήσιμες, αλλά χρειάζεται να αναπτύξουμε και το κατάλληλο ηθικό υπόβαθρο για να μπορέσουμε ως ανθρωπότητα να χειριστούμε αποδοτικά, με ασφάλεια και σύνεση τις επιδράσεις αυτής ακριβώς της προόδου. Οι υπολογιστές και η τεχνολογία γενικότερα θα συνεχίσουν στο δρόμο που έχουν ήδη πάρει. Η πρόκληση για όλους μας θα είναι, τόσο ατομικά όσο και ως ανθρωπότητα, στο σύνολο του πληθυσμού:
Πιο συγκεκριμένα, για τον προγραμματισμό και τη γλώσσα Python, θα ήθελα να δω μεγαλύτερη διάδοση μαθημάτων για τη γλώσσα Python σε πρωτοετείς φοιτητές σχολών. Είναι μια πολύ ωραία γλώσσα για εισαγωγικά μαθήματα στον προγραμματισμό -- εύκολη στην εκμάθηση, χωρίς να της λείπει κάτι από άλλες γλώσσες, είναι διαθέσιμη σχεδόν παντού και η χρήση της δεν περιορίζεται στον ακαδημαϊκό χώρο ή μόνο στα στενά όρια ενός και μόνο μαθήματος.
Θα θελα π.χ. να δω σε μαθήματα γλωσσών προγραμματισμού να μαθαίνουν οι νέοι προγραμματιστές τόσο Python όσο και άλλες γλώσσες προγραμματισμού. Ένα πλήρες σετ από γλώσσες, που καλύπτει τόσο στατικές compiled γλώσσες, όσο και δυναμικές ή εξωτικές γλώσσες. Ένας προγραμματιστής πρέπει να έχει επαφή τόσο με statically typed, non-GCed γλώσσες όπως η C/C++ όσο και με δυναμικές γλώσσες όπως η Perl, Python και η Scheme ή η Lisp. Κάτι τέτοιο ας πούμε θα ήθελα να είναι μέσα στα μελλοντικά σχέδια των Πανεπιστημιακών τμημάτων τα οποία έχουν σχέση με τεχνολογία: η έμφαση στη χρήση multi-paradigm γλωσσών ή πολλαπλών γλωσσών με διαφορετικό στυλ προγραμματισμού. Και η Python είναι σίγουρα μέσα στις γλώσσες που θέλω να βλέπει κάθε νέος προγραμματιστής όταν ξεκινά να μαθαίνει τα βασικά στοιχεία του προγραμματισμού.
Εντυπώσεις από την κοινότητα;
Οι παρουσιάσεις της TasPython είναι ωραία ιδέα. Δε μπόρεσα να έρθω σε πολλές, αλλά είμαι κατα-ενθουσιασμένος από τον κόσμο που είδα σε όσες συναντήσεις ήρθα. Κατ' αρχήν να πω ότι πρέπει να τις συνεχίσετε. Με τέτοιες προσπάθειες δημιουργούνται οι τοπικές ομάδες από hackers και με τέτοιο ακριβώς πνεύμα ανταλλαγής ιδέων είναι που προωθείται η ιδέα ότι είναι ενδιαφέρον, χρήσιμο, και πάνω από όλα πολύ διασκεδαστικό να βλέπουμε ο ένας τι κάνει ο άλλος. Συγχαρητήρια σε όλους τους TasPython! :)