Ο Lars Hvam ζει στην Κοπεγχάγη της Δανίας και λατρεύει τη γλώσσα προγραμματισμού ABAP. Αφού στήσαμε το track ABAP στο Exercism, συναντήσαμε τον Lars και κάναμε μια χαλαρή κουβέντα για το πώς κατέληξε στην τεχνολογία.
Jonathan: Γεια σας και καλώς ήρθατε όλοι. Με λένε Jonathan. Είμαι ο οικοδεσπότης του Podcast του Exercism, και σήμερα έχω μαζί μου τον Lars. Πού βρίσκεσαι αυτή τη στιγμή, Lars;
Lars: Είμαι στην Κοπεγχάγη, στη Δανία.
Jonathan: Ωραία. Τέλεια. Λίγο πιο βόρεια από τον ισημερινό, δηλαδή. Εγώ βρίσκομαι πολύ πιο νότια από τον ισημερινό αυτή τη στιγμή. Χαίρομαι πολύ που είσαι στη σημερινή εκπομπή. Χαίρομαι πολύ που τα καταφέραμε να κάνουμε αυτή τη συζήτηση. Και θα μπω κατευθείαν στο θέμα. Στην εκπομπή αυτής της εβδομάδας. Λοιπόν, Lars, πες μας λίγα λόγια για τον εαυτό σου. Πώς μπήκες στην τεχνολογία; Πώς κατέληξες εκεί που είσαι τώρα;
Lars: Ναι, ας δούμε. Πού είμαι τώρα... όπως είπαμε, στην Κοπεγχάγη. Κυρίως όμως δουλεύω ως σύμβουλος στον τομέα του custom code της SAP, του ABAP. Και πώς κατέληξα εκεί; Ναι, όπως συνήθως, μεγάλη ιστορία. Αλλά είναι τεχνολογία. Ας μιλήσουμε λοιπόν για τη διαδρομή στην τεχνολογία. Όταν ήμουν μικρός, ήταν πολλά χρόνια πριν. Εγώ και ο μονοζυγωτικός μου δίδυμος. Έχω τον...
Jonathan: Έχεις μονοζυγωτικό δίδυμο, οπότε πώς ξέρω ότι δεν μιλάει σήμερα ο άλλος σου δίδυμος;
Lars: ...ασχολείται με πράγματα της Microsoft.
Jonathan: Εντάξει. Τρομακτικό.
Lars: ...πράγματα. Οπότε απλώς ρώτησέ τον ό,τι θέλεις για τη SAP. Έτσι δεν μπορεί να με ρωτήσει τίποτα για τη Microsoft. Έτσι δεν μπορώ να απαντήσω.
Jonathan: Ναι.
Lars: Αλλά όταν ήμασταν μικροί, ξεκινήσαμε παίζοντας στο Commodore 64, και θυμάμαι να γράφω αρκετά απλό προγραμματισμό στη BASIC πάνω στο Commodore, σε μια ασπρόμαυρη, πολύ μικρή τηλεόραση. Περνούσα ώρες κάνοντάς το, παίρνοντας νέο υπολογιστή, γράφοντας QBasic στον 386 και στον 486. Αναβαθμίζοντας σε οκτώ megabyte μνήμης, εκείνα ήταν τα χρόνια εδώ. Ναι, αυτά ήταν QBasic, έγραφα προγράμματα σε Pascal. Τελικά πέρασα στα Windows. Και έκανα πολύ Visual Basic. Ναι, μου αρέσει η Visual Basic. Αυτό ήταν εκείνα τα χρόνια, στα ενενήντα κάτι, και τελικά άρχισα να ασχολούμαι λίγο με Linux. . Και ναι. Για όσους θυμούνται τις καλές παλιές μέρες του Linux, υπήρχε η ιστοσελίδα themes.org όπου μπορούσες να κατεβάσεις θέματα για διάφορους διαχειριστές παραθύρων. Πολύ Linux πράγμα. Και νομίζω ότι τότε ήταν η πρώτη φορά που ασχολήθηκα πραγματικά με την κοινότητα, περνώντας χρόνο φτιάχνοντας αυτή την ιστοσελίδα σε php. Ναι,
Jonathan: Εντάξει. Πω.
Lars: Μου έβαλαν τη σφραγίδα τους. Visual Basic, κάνοντας προγραμματισμό για διδακτορικό. Ναι.
Jonathan: Εντάξει. Ωραία. Ωραία. Ναι, καλό.
Lars: Και τελικά πήγα στο πανεπιστήμιο, έκανα μεταπτυχιακό στην επιστήμη υπολογιστών και έκανα ό,τι προγραμματισμό... και τυχαία πήρα μια μικρή δουλειά. Ναι. Χρειαζόμουν χρήματα για το νοίκι μου. Και έκανα άλλο προγραμματισμό. Αυτό με κράτησε για τα τελευταία περίπου 15 χρόνια στην ανάπτυξη custom code σε SAP ABAP. Και, ναι. Επόμενη ερώτηση λοιπόν. Γιατί; Γιατί έμεινε; Επειδή ο ABAP δεν είναι και πολύ σύγχρονη γλώσσα προγραμματισμού. Μοιάζει πολύ με την COBOL, αλλά είναι επίσης μια πολύ ενδιαφέρουσα γλώσσα προγραμματισμού, γιατί είναι πολύ εκτενής, έχει πολλές διαφορετικές εντολές και πολλά διαφορετικά πράγματα μπορούν να πάνε στραβά.
Jonathan: Εντάξει. Υπάρχει λοιπόν πολύ επίλυση προβλημάτων και κάθε λογής debugging. Αυτή είναι η φύση του;
Lars: Ναι. Συνήθως λέω ότι κάνω αυτού του είδους τη δουλειά επειδή μου αρέσει πολύ το debugging και υπάρχει άφθονος παλιός κώδικας για debugging, σωστά; Μόλις την περασμένη εβδομάδα διόρθωνα ένα παλιό πρόγραμμα που ήταν 20 χρονών. Ήμουν σαν, εντάξει, τέλεια. Και πάντα, όταν κοιτάς ένα παλιό πρόγραμμα, αν και το κάνω χρόνια, υπάρχουν κάποια παλιά καινούργια πράγματα να μάθεις, κάποια παλιά χαρακτηριστικά που έχουν χρησιμοποιηθεί και τρέχουν ακόμα καθημερινά, σωστά;
Jonathan: Εντάξει, οπότε ξεκίνησες πριν 15 χρόνια. Στην ίδια εταιρεία, ή απλώς άρχισες να μαθαίνεις ABAP με τη SAP και έχεις αλλάξει διαφορετικές εταιρείες;
Lars: Τώρα που... τώρα έχω τη δική μου εταιρεία και κάνω διασκεδαστικά πράγματα και ορίζω το τι. Και επίσης έχω κάνει πολλή συμβουλευτική για διάφορες συμβουλευτικές εταιρείες και δούλεψα και ως intern. Οπότε τώρα κάνω freelance και βρίσκω κάποιες freelance δουλειές για να πληρώσω ξανά το νοίκι μου. Αυτό είναι σημαντικό.
Jonathan: Ναι. . Ακούγεται σαν ένα κοινό μοτίβο στη ζωή σου, δηλαδή πληρωμή. Να πληρώσεις το νοίκι,
Lars: ναι.
Jonathan: να βρεις τρόπους να πληρώσεις.
Lars: Και ωστόσο περνάω υπερβολικά πολύ χρόνο σε open source project, ξεφεύγοντας σε κάτι προκλητικό.
Jonathan: Ναι. Έχεις λοιπόν μια ομάδα ανθρώπων με τους οποίους συνεργάζεσαι στο πλαίσιο της επιχείρησής σου, ή είσαι αρκετά μόνος σου υπό αυτή την έννοια; Πώς... πώς μοιάζει σε καθημερινή βάση ή μέσα στην εβδομάδα με τη δουλειά σου;
Lars: Είμαι μόνος μου και έχω τη δική μου εταιρεία. Όταν μιλάμε για συνεργασία, συνεργάζομαι με τον πελάτη, σωστά; Και μετά, στον χώρο του open source, έχω επίσης πολλούς καλούς φίλους στην κοινότητα του open source που βοηθούν πού και πού με κάποια πράγματα. Και εγώ τους βοηθώ με κάποια πράγματα πού και πού, οπότε είναι κατάσταση win-win.
Jonathan: Ναι. Είσαι λοιπόν στην πραγματικότητα πλήρως υπεύθυνος, νομίζω, για τη δημιουργία του track του ABAP στο Exercism, αν δεν κάνω λάθος, ή έχεις υψηλό βαθμό εμπλοκής στη δημιουργία του. Μίλησέ μας λίγο γι' αυτό.
Lars: Ναι. Το track του ABAP το έχουν φτιάξει διάφορα μέλη της κοινότητας. Και αυτά είναι κυρίως μέλη της κοινότητας από τα open source project του ABAP git. Φυσικά, είμαστε λίγο ιδιαίτεροι, οπότε πρέπει να φτιάξουμε τον δικό μας git client από το μηδέν, αλλά αυτή είναι άλλη ιστορία για άλλη μέρα.
Jonathan: Ναι. Ναι. Ναι.
Lars: Είναι το σπίτι μας. Έχουμε λοιπόν διάφορους ανθρώπους που συνεισφέρουν στο track του Exercism. . Ωστόσο, το track του ABAP είναι λίγο ιδιαίτερο, σωστά; Επειδή είναι μια γλώσσα προγραμματισμού που στην πραγματικότητα είναι αρκετά δύσκολο να ξεκινήσεις, γιατί δεν μπορείς απλώς να κατεβάσεις ένα runtime JavaScript όπως το Node ή ένα runtime Python. Δεν μπορείς πραγματικά να το κάνεις αυτό πολύ εύκολα στον ABAP. Ο πιο πρόσφατος τρόπος για να το κάνεις ήταν ένα target container με 60 που ήταν 16 gigabyte από όσο θυμάμαι.
Jonathan: 16
Lars: Χρειάζεσαι τουλάχιστον 32 gigabyte μνήμης για να το τρέξεις αυτό. Και δεν υπάρχουν και πολλοί άνθρωποι που έχουν πραγματικά αυτή την υποδομή εύκολα διαθέσιμη. Και επίσης το να τρέχεις σε τέτοιου είδους υποδομή θα ήταν αδύνατο με ex, δεν ξέρω. Την υποδομή πίσω από το ecosystem, αλλά τα track είναι όλα ένα σωρό μικρά Docker containers που ξεκινούν, τρέχουν τον κώδικα, ελέγχουν την άσκηση και μετά κλείνουν ξανά.
Jonathan: Ναι.
Lars: Και το να ξεκινήσεις ένα Docker container τέτοιου μεγέθους μπορεί εύκολα να πάρει 10 λεπτά.
Jonathan: ; Όχι. Όχι. Σίγουρα.
Lars: Χρειαζόμασταν λοιπόν μια διαφορετική προσέγγιση και ευτυχώς δούλευα πάνω στο stuff της στατικής ανάλυσης. Ξεκίνησα πριν κάποια χρόνια και έχει αφηρημένα συντακτικά δέντρα. Οπότε στην πραγματικότητα παίρνουμε αυτόν τον κώδικα και τον μετατρέπουμε σε κώδικα JavaScript και μετά τον τρέχουμε στο Node και δίνουμε το feedback. Οπότε λέμε ότι δεν είναι η επίσημη γλώσσα. Υποστηρίζουμε τον ABAP, και επίσης ο ABAP είναι λίγο ιδιαίτερος, όπως ανέφερα μερικές φορές στο παρελθόν, γιατί δεν υπάρχει πραγματικά μια ωραία επίσημη περιγραφή της ίδιας της γλώσσας ABAP. Όχι όπως άλλες γλώσσες που έχουν σχεδιαστεί. Νομίζω ότι ο ABAP έχει εξελιχθεί κυρίως σε αυτό που είναι από τα εβδομήντα ή από τότε που ξεκίνησε. Οπότε τα φτιάχνουμε στην πορεία.
Jonathan: Τι είδους προκλήσεις δημιουργεί λοιπόν αυτό στην καθημερινή σου δουλειά; Υποθέτω ότι πρέπει να μπορείς να κοιτάς ένα πρόβλημα με φρέσκα μάτια κάθε μέρα και να προσπαθείς να μπεις στο μυαλό του ανθρώπου που το ανέπτυξε, επειδή έχεις πολύ λίγη... Είναι σωστό να πούμε ότι έχεις πολύ λίγη τεκμηρίωση στην οποία μπορείς να ανατρέξεις, οπότε
Lars: υπάρχει πολλή τεκμηρίωση, αλλά δεν είναι, είναι απλώς σε κείμενο και δεν είναι πάντα 100% σωστή.
Jonathan: . . Εντάξει.
Lars: Ο σωστός τρόπος είναι να δοκιμάσεις τον κώδικα και να δεις τι κάνει στην πραγματικότητα, σωστά; Φυσικά υπάρχουν πολλά πράγματα στη γλώσσα που είναι σωστά. Αλλά επίσης, όταν οι άνθρωποι δουλεύουν και φτιάχνουν πράγματα σε ένα σύστημα SAP, συνήθως είμαστε πολλοί προγραμματιστές σε ένα σύστημα, και αυτό το ένα σύστημα έχει πάνω από 200 εκατομμύρια γραμμές κώδικα και πάνω από 80.000 πίνακες βάσης δεδομένων,
Jonathan: Θεέ μου.
Lars: Κάτι που είναι καλό. Μου αρέσει ένα από αυτά. Και ειδικά αν τα φτιάχνεις όλα πολύ κοντά το ένα στο άλλο, παίρνεις πολλή ωραία στατική ανάλυση που μπορεί να συνδέσει τα πράγματα, ενώ αν κάνεις μια αρχιτεκτονική τύπου Microsoft, είναι όλα χαλαρά συνδεδεμένα. Υπάρχουν υπέρ και κατά και στα δύο .
Jonathan: Προτιμάς λοιπόν τη μονολιθική διάταξη από... Θα ήταν δίκαιο σχόλιο αυτό, ή είναι λίγο... ό,τι προτιμάς,
Lars: Ναι. Προτιμώ τον μονόλιθο, ναι. Εντάξει. Λοιπόν, με το BASIC παρελθόν σου, προτιμάς τους μονόλιθους. Ναι. Τέλεια. Αυτό είναι...
Jonathan: Legacy κώδικα. Ναι. Όλα πράγματα που υπάρχουν καιρό, όλα αυτά.
Lars: Ναι. Μου αρέσουν τα παλιά πράγματα. Είναι αρκετά διασκεδαστικά, σωστά; Συνήθως λέω ότι όταν . Όταν γεράσω, θέλω να ασχοληθώ με PL/1 ή APL, μερικές από αυτές τις γλώσσες προγραμματισμού. Δεν ξέρω, μάλλον μπορώ να το κάνω και στο Exercism, σωστά; Κάποια στιγμή
Jonathan: Μάλλον, έχουμε τα πάντα κάτω από την... σε αυτό το σημείο. Ας δούμε τι έχουμε. ABAP, Είπες APL ή ABAP;
Lars: APL, Α, δεν υπάρχει track για APL.
Jonathan: Α, ίσως υπάρχει μια ευκαιρία.
Lars: PL/1. Δεν υπάρχει PL/1. Εντάξει. Εντάξει. Δύο track που κάποιος στην κοινότητα
Jonathan: Α, γράφεσαι τώρα, Αυτό είναι
Lars: όχι. Πώς μοιάζει λοιπόν σε καθημερινή βάση και, λόγου χάρη, το track του ABAP; Το track του ABAP είναι λοιπόν μια προσέγγιση του τι είναι σωστό, και προσπαθούμε πάντα να το φέρουμε ένα βήμα πιο κοντά στο 100%. Έχουμε λοιπόν ανθρώπους με σωστές λύσεις που απλώς δεν δουλεύουν στο Exercism
Jonathan: Εντάξει.
Lars: εξαιτίας αυτής της παράξενης υποδομής που έστησα. Αλλά βήμα βήμα, μέρα μέρα αρχίζει να δουλεύει. Και συνεχώς προσθέτουμε όλο και περισσότερα unit tests στο backend και στον runner του Exercism και τα πάντα. Και ελπίζουμε κάποια μέρα να είναι 100% τέλειο, αλλά
Jonathan: Ποιος ξέρει. Ποιος ξέρει τι θα προκύψει από εκεί και πέρα. Τώρα λοιπόν, με πόσους πελάτες συνεργάζεσαι συνήθως μέσα στην εβδομάδα; Έναν ή δύο ή τρεις, ή μπορεί να φτάσει μέχρι και 10;
Lars: Μόνο έναν ή δύο.
Jonathan: Εντάξει. Και αυτό συνεχίζεται έτσι εδώ και καιρό.
Lars: Ναι. Ναι. Κάνω συμβουλευτική εδώ και πολλά χρόνια.
Jonathan: . Και είναι κυρίως επικεντρωμένο στην Κοπεγχάγη, ή κατά τη διάρκεια της πανδημίας είχες την ευκαιρία να δουλέψεις απομακρυσμένα και πιο μακριά; Ποιο είναι το... ταξιδεύεις πολύ ή,
Lars: Ταξίδευα πολύ στα νεότερα μου χρόνια, αλλά τώρα συνήθως κάθομαι στο σπίτι κάνοντας δουλειά από απόσταση.
Jonathan: Εντάξει.
Lars: Είναι
Jonathan: Ναι. Κρατάς τη μηχανή του καφέ σου ζεστή.
Lars: Ναι.
Jonathan: Κρατάς τα πράγματα σε κίνηση. Τέλος πάντων, είπες ότι μεγάλωσες προγραμματίζοντας από αρκετά μικρή ηλικία και ότι ενδιαφερόσουν γι' αυτό από νεαρή ηλικία. Ο προγραμματισμός είχε νόημα για σένα σε κάποια στιγμή; Υπήρξε μια στιγμή που ένιωσες ότι σου έγινε ξαφνικά κατανοητός, ή ήταν κάτι που απλώς καταλάβαινες φυσικά από μικρή ηλικία; Πώς θα το περιέγραφες;
Lars: Ω, δεν ξέρω. Νομίζω ότι πάντα καταλάβαινα τον προγραμματισμό, σωστά;
Jonathan: Ναι.
Lars: αλλά συνήθως, στα νεότερα μου χρόνια, ήταν πάντα διαδικαστικός προγραμματισμός, . Θυμάμαι λοιπόν κάποια στιγμή στο πανεπιστήμιο ότι υπήρχε αυτή η εισαγωγή στον συναρτησιακό προγραμματισμό και στον λογικό προγραμματισμό. Και είναι δύο, δύο εντελώς διαφορετικά προγραμματιστικά παραδείγματα για να κάνεις στην πραγματικότητα προγραμματισμό. Και υπάρχει το Prolog, από όσο ξέρω. Ναι, υπάρχει track για Prolog. Για όσους δεν έχουν δοκιμάσει λογικό προγραμματισμό, προτείνω να δοκιμάσουν λίγο προγραμματισμό σε Prolog, και το Standard ML είναι επίσης πιθανώς εκεί για να καταλάβεις τι πραγματικά σκεφτόσουν, πέρα από τον διαδικαστικό προγραμματισμό, αλλά υπάρχουν και πολλά άλλα πράγματα που μπορείς να κάνεις. Ναι, μαθαίνω καινούργια πράγματα κάθε μέρα, οπότε δεν μου έχει "κλικαριστεί".
Jonathan: Παλεύεις ακόμα με τα πάντα; Όχι, απλώς είναι ενδιαφέρον γιατί μεγάλο μέρος της εμπειρίας μου ήταν ότι πρέπει να βυθιστώ σε κάτι σαν μια γλώσσα. Και τότε ξαφνικά οι έννοιες, που είναι ξένες, αλλάζουν μέσα σε μια νύχτα. Και είναι σχεδόν... Ω, αυτό βγάζει απόλυτο νόημα. Και μερικοί από τους άλλους με τους οποίους μίλησα στο podcast είπαν, ναι, έχουν παρόμοια εμπειρία. Και έλεγα, πώς το έκανες αυτό; Και έλεγαν, ω... μια κοπέλα είπε, ω, απλώς φαντάζομαι ένα πρόγραμμα σαν μια ιστορία και έχω τις συναρτήσεις ως χαρακτήρες και όλα αυτά. Ήταν λοιπόν πολύ ενδιαφέρον. Αλλά πώς αποφάσισες ότι ο ABAP ήταν αυτό στο οποίο θα επικεντρωνόσουν; Ήταν απλώς, ω, αυτό πληρώνει το νοίκι, ή ήταν, μου αρέσει πολύ αυτό, το προτιμώ από τη JavaScript ή ό,τι άλλο και
Lars: Η ενασχόληση με τον προγραμματισμό πάντα ξεκινά τυχαία, σωστά; Ξεκινάς με κάτι σε BASIC, με Java, τυχαία, και απλώς ξεχώρισε ως ένα είδος πολύ απαιτητικής γλώσσας προγραμματισμού, επειδή είναι τόσο μεγάλη σε διαφορετικές εντολές, ενώ η Java και η JavaScript δεν έχουν πραγματικά και πολλές εντολές. Έχει μια μεγάλη βιβλιοθήκη. Σε σύγκριση με αυτό, στον ABAP έχουμε πολλά πράγματα της βιβλιοθήκης ως μέρος της γλώσσας προγραμματισμού, ενώ στη JavaScript καλείς... χρησιμοποιείς το ίδιο είδος δομής της γλώσσας για να καλέσεις τις βιβλιοθήκες.
Jonathan: Εντάξει.
Lars: Ναι.
Jonathan: Εντάξει. Ήταν λοιπόν σχεδόν σαν να ανακάλυψες σχεδόν τυχαία τον ABAP. Και λοιπόν, κοιτάζοντας μπροστά τώρα στα επόμενα περίπου 10, 10 χρόνια, δεν ξέρω αν θέλεις καν να το σκεφτείς τόσο μακριά, αλλά πώς μοιάζουν τα επόμενα πέντε με 10 χρόνια για σένα σε ό,τι αφορά τον προγραμματισμό και τις επιχειρήσεις; Έχεις κάποια αίσθηση, ω, εδώ θα ήθελα να είμαι, αυτό θα ήθελα να κάνω,
Lars: Α, ποτέ δεν ξέρεις πραγματικά, σωστά; Συνεχίζω τα πράγματα όσο καιρό τα βρίσκω διασκεδαστικά, σωστά; Αν δεν είναι πια διασκεδαστικά, τα αφήνω και κάνω κάτι άλλο.
Jonathan: Εντάξει, αυτό είναι λοιπόν
Lars: το σχέδιο, σωστά; Λέει, πρέπει να είναι διασκεδαστικό για να δουλέψει καθημερινά, κατά τη γνώμη μου. Πιθανότατα θα έχω ακόμα ABAP στο μενού σε 10 χρόνια, νομίζω. Και εν μέρει καταλήγει σε αυτό. Είμαι αρκετά επιλεκτικός όταν πρόκειται για γλώσσες προγραμματισμού και τεχνολογία. Κάνω λοιπόν ABAP και JavaScript/TypeScript, και μετά προσπαθώ να μην μπω σε καμία άλλη γλώσσα.
Jonathan: Ναι. Εντάξει. Αλλά αν σου έλεγα, εντάξει, Lars, πρέπει να αφήσεις τον ABAP και τη JavaScript τώρα και να πάρεις μια άλλη γλώσσα προγραμματισμού. Έχεις ιδέα ποια θα ήθελες; Ναι, θα το έκανα.
Lars: Ναι, μιλήσαμε για την APL,
Jonathan: Εντάξει. Ναι.
Lars: Μια πολύ ωραία, πιθανώς παλαιότερη από εμένα γλώσσα, δεν ξέρω, κοντά. Η APL και η PL/1, νομίζω ότι και οι δύο είναι παλαιότερες από τον ABAP.
Jonathan: . Εντάξει. Πω. Γιατί λοιπόν αυτές, από περιέργεια; Τι σε γοητεύει σε αυτές;
Lars: Την APL δεν την έχω δοκιμάσει πραγματικά, αλλά υπάρχουν μερικοί προσομοιωτές στο διαδίκτυο που μπορείς να δοκιμάσεις. Έχει πολλά ελληνικά γράμματα, όπου τα πάντα είναι πίνακες, πολλαπλασιασμός . Δεν είμαι... Απλώς φαίνεται πολύ παράξενο και ναι, χαζό. Αλλά αυτό είναι επίσης που το κάνει διασκεδαστικό, σωστά; Πρέπει να είναι κάποιου είδους πρόκληση. Και η PL/1 είναι απλώς κάτι διαφορετικό. Δεν είμαι σίγουρος.
Jonathan: Κάτι μυστηριώδες και λίγο
Lars: Ναι. Όχι ακριβώς. Μου αρέσει να πηγαίνω στα παλιά κλασικά πράγματα και όχι στα καινούργια φανταχτερά πράγματα. Οπότε μάλλον θα έλεγα Rust... όχι. Πιθανώς να ασχοληθώ με τη Rust κάποια στιγμή, αλλά όχι επειδή πρέπει, όχι επειδή θέλω.
Jonathan: Ναι. Και παρατηρείς ότι ο αριθμός των ανθρώπων που χρησιμοποιούν ABAP μειώνεται ή αυξάνεται, ή υπήρξε αναζωπύρωση του ενδιαφέροντος για τη γλώσσα τελευταία; Ποια είναι η άποψή σου γι' αυτό;
Lars: Ναι, είναι αρκετά δύσκολο, και καθώς ο ABAP είναι αυτά τα μεγάλα συστήματα που τρέχουν εσωτερικά σε μεγάλες πολυεθνικές συνεργασίες, είναι αρκετά δύσκολο να βρεις πραγματικά δημόσια νούμερα που να είναι σωστά για το ποια είναι στην πραγματικότητα τα νούμερα. Αλλά η φήμη λέει ότι η ηλικία των προγραμματιστών που το ξέρουν απ' έξω αυξάνεται και πλησιάζει όλο και περισσότερο στο να βγουν από την αγορά.
Jonathan: Εντάξει.
Lars: Όπως με την COBOL, σωστά; Είναι παλιά γλώσσα και οι νέοι δεν τη βρίσκουν και πολύ διασκεδαστική, σωστά; Είναι λοιπόν παλιοί σαν εμένα, αλλά γι' αυτό ακριβώς φτιάξαμε το track του ABAP, σωστά; Θέλουμε να φέρουμε περισσότερους νέους στη γλώσσα, και το σύστημα του Exercism είναι καλή πλατφόρμα για να δοκιμάσεις πολλά διαφορετικά πράγματα. Πατάς join και είναι πολύ εύκολο να ξεκινήσεις. Sync, click, login. Άρχισε να γράφεις κώδικα. Τέλος.
Jonathan: Ναι. Και έχεις παρατηρήσει ότι έχεις δει πολλούς ανθρώπους να κάνουν το track; Το track του ABAP;
Lars: Ναι. Έχουμε τώρα σχεδόν 5.000 μαθητές.
Jonathan: Πω, καταπληκτικό. Ναι.
Lars: Ναι, τον Σεπτέμβριο εδώ υπήρξε μια... μια πρόκληση κώδικα της κοινότητας που διοργανώθηκε από τους developer advocates της SAP. Προσπαθώντας λοιπόν να φέρουμε κόσμο στην πλατφόρμα, δοκιμάζοντας μερικές ασκήσεις με αυτό που εμείς αποκαλούμε internal tables. Σε άλλες γλώσσες αυτά είναι συνήθως πίνακες, αλλά εμείς τα λέμε internal tables, και εμφωλευμένα internal tables, που συνήθως λέγονται πίνακας από πίνακες σε άλλες γλώσσες προγραμματισμού.
Jonathan: Ναι.
Lars: Πήραμε λοιπόν πολλούς νέους μαθητές από αυτό. Και επίσης πήραμε πολλά feedback, bugs και issues στο GitHub. Και αυτό είναι επίσης κάτι στο οποίο δεν είμαστε πραγματικά συνηθισμένοι στον κόσμο του ABAP. Η συνεργασία μεταξύ πολλών οργανισμών. Το να μοιράζεσαι στην πραγματικότητα λίγο κώδικα στο GitHub δεν είναι κάτι πολύ συνηθισμένο στην κοινότητα.
Jonathan: Είναι αυτό απλώς επειδή οι άνθρωποι... έχει μείνει πολύ σε σιλό, με την έννοια ότι αυτή η εταιρεία κάνει το δικό της και μετά μια άλλη εταιρεία κάνει το δικό της. Και έτσι οι προγραμματιστές δεν μιλάνε και πολύ. Είναι στο δικό τους συγκεκριμένο πλαίσιο και η ανταλλαγή και η συνεργασία είναι λίγο λιγότερες, ή γιατί συμβαίνει αυτό;
Lars: Οφείλεται επίσης στη φύση ενός συστήματος SAP, επειδή είναι ένα τυποποιημένο σύστημα. Μπορεί να κάνει τα πάντα για σένα, οπότε συνήθως όταν βοηθώ πελάτες, είναι επειδή ο πελάτης χρειάζεται κάτι το ιδιαίτερο.
Jonathan: Ναι.
Lars: Και είναι κάτι το ιδιαίτερο ανάλογα με το τι κάνει μοναδική τη δουλειά του. Οπότε πιθανώς είναι κάτι που άλλοι πελάτες δεν μπορούν να χρησιμοποιήσουν και επίσης δεν θα το χρησιμοποιήσουν, επειδή αυτός ο πελάτης είναι μοναδικός με διαφορετικό τρόπο από έναν άλλο πελάτη. Υπάρχει όμως μια κοινότητα ανοιχτού κώδικα που εξελίσσεται, μοιραζόμενη κώδικα, αλλά συνήθως σε επίπεδο utilities. Utilities, πράγματα όπως η καταγραφή και η διαχείριση σφαλμάτων, κάτι τέτοιο. Αλλά θα φτάσει εκεί. Στον κόσμο της SAP απλώς κάτι τέτοιο παίρνει πάνω από πέντε χρόνια.
Jonathan: Ναι. Απλώς για να αρχίσουν όλα να αποκτούν αυτή τη δυναμική. Αυτό λοιπόν ήταν ένα από τα πράγματα που ρωτάμε όλους όσους έρχονται στην εκπομπή, και... μπορεί να έχεις δει το έγγραφο που σου έστειλα, αλλά εμείς συνήθως ρωτάμε τους ανθρώπους ποια είναι η μία άποψη ή προοπτική που θα κρατούσαν και δεν θα συμβιβάζονταν ποτέ στον χώρο της τεχνολογίας; Ή συνήθως, το ένα σημείο για το οποίο θα έδινες μάχη στον χώρο της τεχνολογίας, ώστε να διασφαλίσεις ότι αυτό το πράγμα στέκεται για πάντα και για πάντα, και μπορεί να είναι τόσο ανόητο όσο το "πάντα γράφω τη λογική μου μετά το CSS" αν είσαι στο front end. Ή μπορεί να είναι πραγματικά ασήμαντο ή μπορεί να είναι κάτι σαν "Δεν θα χρησιμοποιήσω ποτέ το GitHub", για παράδειγμα. Μπορεί, αλλά πρέπει απλώς να μπορείς να το υποστηρίξεις ή να το παρουσιάσεις, να παρουσιάσεις το επιχείρημά σου. Καλά μελετημένο. Ποιο είναι όμως αυτό το ένα πράγμα, αυτή η μία άποψη που
Lars: Μία... Μία άποψη
Jonathan: Εντάξει. Μπορώ να σου δώσω δύο. Μπορώ να σου δώσω δύο. Ναι. Τρεις. Εντάξει. Τρεις. Μπορείς να έχεις τρεις απόψεις, γιατί ξέρω ότι οι τεχνικοί άνθρωποι δεν έχουν και πολλές απόψεις, συνήθως.
Lars: Ναι. Νομίζω ότι αν οι άνθρωποι με περιέγραφαν, μερικές φορές έχω πολύ ισχυρές απόψεις γι' αυτό, ναι. Μία από τις κύριες απόψεις μου είναι να λες όχι, αυτό δεν θα είναι δυνατό. Κάνε κάτι άλλο που ταιριάζει καλύτερα στη λύση και την τεχνολογία. Πες λοιπόν όχι στη χρήση εργαλείων όπως το Jenkins. Πες όχι στο Jenkins, είναι ένα από τα εργαλεία που μου αρέσει να αναφέρω ότι κανείς δεν θα έπρεπε να χρησιμοποιεί, σωστά;
Jonathan: Γιατί; Γιατί; Γιατί συμβαίνει αυτό; Ποιος είναι ο λόγος γι' αυτό;
Lars: Είναι πολύ πιο εύκολο να έχεις τα pipelines σου κοντά στον κώδικα. Οπότε αν... Απλώς το θεωρώ ξεπερασμένο.
Jonathan: Εντάξει. Είναι λοιπόν σαν ένα επίπεδο αφαίρεσης που δεν χρειάζεται να προστεθεί αν ξέρεις τι κάνεις.
Lars: Ναι. Και υπάρχουν άλλα εργαλεία που κάνουν τα πράγματα καλύτερα. Ένα άλλο εργαλείο που μου αρέσει να παρακάμπτω είναι το Eclipse. Στον κόσμο της Java, αν κοιτάξεις πίσω πέντε, 10 χρόνια, το Eclipse χρησιμοποιούνταν συνήθως για το χτίσιμο κώδικα Java. Από τη δική μου οπτική, έχει φτάσει στο σημείο όπου το Eclipse δεν χρησιμοποιείται πια καν για το χτίσιμο κώδικα Java. Συνήθως είναι κάποιες μεγάλες enterprise εφαρμογές και πράγματα που χρησιμοποιούνται στο Eclipse και χτίζουν Eclipse, για τα οποία δεν προοριζόταν πραγματικά στην αρχή. Δεν υπάρχουν πολλοί άλλοι τρόποι να το κάνεις αυτό και υπάρχουν πολλά άλλα εργαλεία για να διαλέξεις. Οπότε το Eclipse έχει εκλειφθεί.
Jonathan: Εντάξει. Ναι, μου αρέσει. Και θα σου δώσω άλλη μία άποψη. Ποια είναι η άλλη, η τρίτη άποψη,
Lars: Ο κενός χώρος, ή μάλλον τα κενά. Ένα από τα side project μου είναι η στατική ανάλυση για τον ABAP. Και στην πραγματικότητα στον ABAP έχουμε πολλές διαφορετικές εντολές, πολλούς διαφορετικούς τρόπους να κάνεις στοίχιση, και πεζά, κεφαλαία, ουγγρική σημειογραφία, τα πάντα. . Ναι. Το να έχεις διπλά κενά κάπου σε ένα κείμενο είναι κάτι που πραγματικά με τρελαίνει.
Jonathan: Είναι απλώς επειδή τα ανατρέπει όλα και είναι, είναι απλώς εφιάλτης
Lars: Σε βγάζει απλώς από τη ροή, όπως όταν διαβάζεις ένα κείμενο ή ένα κομμάτι κώδικα. Ω, υπάρχουν δύο κενά εδώ ανάμεσα στο... Με πιάνει απροετοίμαστο.
Jonathan: Εντάξει, εντάξει, άσε με λοιπόν, λοιπόν, το Jenkins βλέπε τα pipelines σου. Κράτα το κοντά στον κώδικα. Eclipse. Όχι απαραίτητο. Και τα διπλά κενά. Αυτές είναι τρεις απόψεις που σου έδωσα, οι οποίες ποικίλλουν σε σοβαρότητα, όπως φαίνεται, λοιπόν. Όχι, αυτό είναι πολύ ωραίο. Όχι, τέλεια. Και ναι, νομίζω ότι κατάφερες να παλέψεις, να κρατήσεις τη θέση σου όμορφα σε αυτά.
Lars: Και επίσης, όταν μιλάμε για συνεχή ενσωμάτωση, μην κάνεις τη συνεχή ενσωμάτωση συνεχή αναμονή.
Jonathan: Εντάξει, σπρώχνεις λοιπόν τον κώδικα και μετά κάθεται εκεί και περιμένει να γίνει PR, είναι αυτό που
Lars: Θα πάρεις το feedback γρήγορα στον προγραμματιστή, αντί να τον αφήσεις να περιμένει μια ώρα, δύο ώρες για οποιοδήποτε feedback.
Jonathan: Εντάξει. Είναι λοιπόν επειδή συστηματικά είναι ένα fail safe; Γι' αυτό υπάρχει αυτό; Είναι απλώς για να κάνει παύση ώστε να μπορούν να ελεγχθούν τα πράγματα, ή γιατί θα
Lars: Απλώς κακή αρχιτεκτονική.
Jonathan: Ναι. Εντάξει. Εντάξει. Ενδιαφέρον. Εντάξει, τελευταία ερώτηση για σήμερα. Ελπίζω να το έχεις απολαύσει μέχρι τώρα, αλλά ήθελα να σε ρωτήσω αυτό. Τι συστάσεις έχεις για την κοινότητα του Exercism αυτή την εβδομάδα; Αν μπορούσες να συστήσεις ένα πράγμα στην κοινότητα, ποιο θα ήταν; Μπορεί να είναι οτιδήποτε. Φάε σούσι. Πήγαινε και πέσε σε ένα ποτάμι, ό,τι να 'ναι.
Lars: Φυσικά, δοκίμασε το track. Αυτό είναι μάλλον
Jonathan: Σου δίνω το δωρεάν. Αυτό είναι δωρεάν. Αυτό είναι δωρεάν, εντάξει.
Lars: Αλλά φυσικά, όπως σημειώθηκε μερικές φορές πριν, θυμήσου να διασκεδάζεις. Πρέπει να είναι διασκεδαστικό. Οπότε μερικές φορές, ακόμα κι αν υπάρχουν κάποιες παράξενες ιδέες, αν είναι διασκεδαστικό, δοκίμασέ το. Δες τι θα γίνει. Αυτό λέω συνήθως και για τη δημιουργία open source project. Απλώς πήδα μέσα, δες αν είναι διασκεδαστικό ή όχι. Δοκίμασέ το. Αν δεν δουλέψει, δεν πειράζει. Μετά πήδα στο επόμενο πάρτι ή open source project ή γλώσσα.
Jonathan: Ναι.
Lars: Επειδή υπάρχουν τόσα πολλά πράγματα να κάνεις στον κόσμο της τεχνολογίας και έξω από αυτόν, που δεν αξίζει πραγματικά αν βαριέσαι συνέχεια.
Jonathan: Ναι, όχι, σίγουρα. Ναι, αυτή είναι καλή σύσταση. Όποιος λοιπόν βρίσκεται εκεί έξω, να διασκεδάσει στον χώρο της τεχνολογίας. Τέλος, σ' ευχαριστώ πάρα πολύ για τον χρόνο σου σήμερα. Το εκτιμώ πραγματικά. Μείνε λίγο ακόμα όσο εγώ... όταν σταματήσω την εγγραφή, θα τα πούμε στο τέλος. Αλλά ήθελα απλώς να πω ένα τεράστιο ευχαριστώ. Και όποιος εκεί έξω ενδιαφέρεται, πήγαινε να δεις το track του ABAP. Πήγαινε να τρέξεις μερικές ασκήσεις. Πήγαινε να δεις πώς τα πας. Και αν θέλεις να μάθεις κάτι που υπάρχει εδώ και καιρό και ξανακερδίζει σημασία και επιρροή, θα μπορούσες να πεις, επειδή στηρίζει πολλές βασικές πολυεθνικές πλατφόρμες. Ανθρώπους που θα αναγνώριζες, εταιρείες που θα αναγνώριζες. Αν θέλεις να μάθεις την εσωτερική διαδρομή, τότε ο ABAP αξίζει σίγουρα να τον τσεκάρεις. Lars, θα βάλουμε όλα τα links της εκπομπής που μπορεί να έχεις στην περιγραφή παρακάτω όταν φτάσουμε εκεί. Αλλά στο μεταξύ, σ' ευχαριστώ πάρα πολύ και τα λέμε σε λίγο. Αλλά ναι, ευχαριστώ ξανά. Το εκτιμώ.
Άκουσε, μάθε και εμπνεύσου από τα μέλη της κοινότητάς μας.