Θέλετε ποιοτικό κώδικα; Βρείτε έναν προγραμματιστή που… βρίζει!

Όχι, δεν είναι τρολ! Μια πτυχιακή εργασία που ξεκίνησε με χιούμορ κατέληξε στο ότι η ποιότητα του λογισμικού ανοιχτού κώδικα γλώσσας C τείνει να είναι καλύτερη όταν χρησιμοποιούνται βωμολοχίες.

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

Υπάρχουν διαφορετικές προσεγγίσεις για την ποιότητα του κώδικα, με τις πιο δημοφιλείς να βασίζονται στις οδηγίες που δίνει ο Robert Cecile Martin, γνωστός και ως “Uncle Bob”, στο βιβλίο του με τίτλο:“Clean Code”. Εκεί ο αμερικανός επιστήμονας αφιερώνει ένα ολόκληρο κεφάλαιο στην ονομασία μεταβλητών, συναρτήσεων, κλάσεων κ.λπ.. Οι κανόνες του αναφέρουν, μεταξύ άλλων, ότι «ως προγραμματιστής δεν πρέπει να είσαι χαριτωμένος ή να χρησιμοποιείς λογοπαίγνια κατά την ονοματοδοσία».

Αυτός ο κανόνας παραξένεψε τον ερευνητή Jan Strehmel στο Ινστιτούτο Θεωρητικής Επιστήμης Υπολογιστών του Ινστιτούτου Τεχνολογίας της Καρλσρούης, KIT (Karlsruher Institute of Technology) και τον ώθησε να στηρίξει την πτυχιακή του διατριβή στο ερώτημα: «Επηρεάζει η χρήση υβριστικού λεξιλογίου στον κώδικα και στα σχόλιά του τη συνολική ποιότητα του κώδικα;».

O Strehmel για να διερευνήσει αυτό το θέμα, υπό την επίβλεψη του Έλληνα καθηγητή Αλέξανδρου Σταματάκη, εξέτασε χιλιάδες αποθετήρια στο Github με ανοιχτό κώδικα γραμμένο στη γλώσσα προγραμματισμού C και τα σύγκρινε με μια ηλεκτρονική λίστα με περισσότερες από 300 βωμολοχίες στην αγγλική γλώσσα. Ο ερευνητής κατέληξε να χρησιμοποιήσει πάνω από 3800 ανοιχτούς κώδικες C που περιείχαν αγγλικές βωμολοχίες στα σχόλια, στον ίδιο τον κώδικα (ως ονόματα μεταβλητών, για παράδειγμα) ή και στα δύο και πάνω από 7600 που δεν περιείχαν κανένα από τα παραπάνω στοιχεία, τα οποία λειτούργησαν ως ομάδα ελέγχου.

Unsplash

Ποιος είναι ο καλύτερος κώδικας;

Το ποιος είναι ο «καλύτερος» κώδικας σε πολλές περιπτώσεις μπορεί να αποτελεί θέμα άποψης. Για αυτήν την πτυχιακή εργασία, ο Strehmel βασίστηκε στη συμμόρφωση με τα γενικά πρότυπα καλού προγραμματισμού ως δείκτη. Ανέλυσε τις δέσμες κώδικα με και χωρίς υβριστικό περιεχόμενο χρησιμοποιώντας ένα λογισμικό (με την ονομασία SoftWipe), το οποίο ελέγχει την ποιότητα ενός κώδικα γραμμένου σε C ή C++ χρησιμοποιώντας τεχνικές ανάλυσης στατικού και δυναμικού κώδικα, συμπεριλαμβανομένων των Clang Address Sanitiser και Lizard. Αυτό το λογισμικό ελέγχει εάν ο κώδικας ενός προγράμματος συμμορφώνεται με τα γενικά πρότυπα ποιότητας και, στη συνέχεια, τον αξιολογεί από 0 (χαμηλή συμμόρφωση) έως 10 (καλή συμμόρφωση).

«Προσδιορίσαμε ποσοτικά τη συμμόρφωση αυτών των δύο διακριτών συνόλων πηγαίου κώδικα σε πρότυπα κωδικοποίησης, τα οποία αναπτύσσουμε ως έμμεση ένδειξη για την ποιότητα του πηγαίου κώδικα μέσω του εργαλείου SoftWipe που αναπτύχθηκε από την ομάδα μας», διευκρινίζει ο Δρ. Αλέξης Σταματάκης, ο οποίος ηγείται της ερευνητικής ομάδας Exelixis Lab στο Ινστιτούτο Θεωρητικών Σπουδών της Χαϊδελβέργης (HITS) και στο Τεχνολογικό Ινστιτούτο της Καρλσρούης (KIT), της μοναδικής στη Γερμανία που ασχολείται με την ανάπτυξη προγραμμάτων και μεθόδων για τον υπολογισμό εξελικτικών δέντρων. Αξίζει να σημειωθεί ότι ο Δρ. Σταματάκης συγκαταλέγεται στους ελάχιστους Έλληνες ειδήμονες στους σχετικούς αλγόριθμους, στους παράλληλους υπολογιστές, στις παράλληλες αρχιτεκτονικές και στην εξελικτική Βιοπληροφορική σε ολόκληρη την Ευρώπη.

O Strehmel χρησιμοποιώντας διάφορες κατάλληλες στατιστικές δοκιμές, διαπίστωσε ότι ο ανοιχτός κώδικας που περιέχει υβριστικό λεξιλόγιο (όπως bullshit, damn, clusterfuck, hell, ass, κ.ά) εμφανίζει σημαντικά καλύτερη ποιότητα από εκείνους που δεν περιέχουν.

Το αποτέλεσμα της έρευνας έδειξε ότι τα 7.600 αποθετήρια που δεν περιέχουν καμία από τις 300 περίπου βρισιές που αναφέρονται έλαβαν μέση τιμή 5,41 βαθμούς (διάστημα εμπιστοσύνης 5,38-5,45 σε επίπεδο εμπιστοσύνης 99%). Αντίστοιχα, τα 3.800 αποθετήρια με αγγλικές βρισιές σημείωσαν 5,87 (5,81-5,93). Η συσσώρευση κωδίκων με βρισιές με υψηλή βαθμολογία από 7 έως 8 βαθμούς είναι ιδιαίτερα εντυπωσιακή!

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

Ωστόσο, οι βρισιές από μόνες τους δεν μπορούν να μετατρέψουν τα «σκουπίδια» σε χρυσό! Ο συγγραφέας της μελέτης προειδοποιεί ότι το αποτέλεσμα δεν μπορεί να αντιστραφεί. Η χρήση υποτιμητικών εκφράσεων και βωμολοχίας δεν οδηγεί αυτόματα σε καλύτερη ποιότητα κώδικα.

Μια ψυχολογική μελέτη που δημοσιεύτηκε το 2017 υποστηρίζει ότι οι βρισιές στο χώρο εργασίας μειώνουν το άγχος. Λιγότερο άγχος θα μπορούσε να σημαίνει καλύτερη συγκέντρωση, η οποία με τη σειρά της θα μπορούσε να οδηγήσει σε καλύτερο κώδικα.

#ΥΠΟΛΟΓΙΣΤΕΣ #ΚΩΔΙΚΑΣ
Keywords
Τυχαία Θέματα