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


Κύρια σημεία του άρθρου:

  • Υπάρχει ανησυχία για το ενδεχόμενο οι προγραμματιστές λογισμικού να χάσουν τις δουλειές τους από την τεχνητή νοημοσύνη.
  • Τα μεγάλα γλωσσικά μοντέλα (LLM) έχουν τη δυνατότητα να καταργήσουν τον προγραμματισμό όπως τον ξέρουμε.
  • Ορισμένες εταιρείες μπορεί να χρησιμοποιήσουν την ΤΝ για να αντικαταστήσουν τους ανθρώπινους προγραμματιστές, αλλά υπάρχουν πολλές ευκαιρίες απασχόλησης στον τομέα του προγραμματισμού.
  • Η τεχνητή νοημοσύνη θα πρέπει να αντιμετωπίζεται ως εργαλείο για την ενίσχυση των πρακτικών προγραμματισμού και όχι ως κάτι που πρέπει να φοβόμαστε.
  • Το τελικό αποτέλεσμα αυτής της επανάστασης θα είναι καλύτερο λογισμικό, όχι ανεργία.


Αναλυτικά το άρθρο:
Υπάρχει μεγάλη αγωνία για τους προγραμματιστές λογισμικού που "χάνουν τις δουλειές τους" από την τεχνητή νοημοσύνη, που θα αντικατασταθούν από μια πιο έξυπνη έκδοση του ChatGPT, του Copilot του GitHub, του μοντέλου Codey της Google ή κάτι παρόμοιο.

Ο ιδρυτής της νεοφυούς επιχείρησης AI Matt Welsh μιλάει και γράφει για το τέλος του προγραμματισμού. Αναρωτιέται αν τα μεγάλα γλωσσικά μοντέλα (LLM) εξαλείφουν τον προγραμματισμό όπως τον ξέρουμε, και είναι ενθουσιασμένος που η απάντηση είναι "ναι": Τελικά, αν όχι στο άμεσο μέλλον.

Αλλά τι σημαίνει αυτό στην πράξη;  Τι σημαίνει αυτό για τους ανθρώπους που βγάζουν το ψωμί τους γράφοντας λογισμικό;

Η αξία των νέων δεξιοτήτων προγραμματισμού

Ορισμένες εταιρείες θα εκτιμήσουν σίγουρα την τεχνητή νοημοσύνη ως εργαλείο αντικατάστασης της ανθρώπινης προσπάθειας και όχι ως μέσο ενίσχυσης των ανθρώπινων ικανοτήτων. Οι προγραμματιστές που εργάζονται για αυτές τις εταιρείες κινδυνεύουν να χάσουν τη δουλειά τους από την ΤΝ. Αν εργάζεστε για έναν από αυτούς τους οργανισμούς, σας λυπάμαι, αλλά στην πραγματικότητα πρόκειται για μια ευκαιρία.

Παρά τις πολυδιαφημισμένες απολύσεις, η αγορά εργασίας για προγραμματιστές είναι μεγάλη, είναι πιθανό να παραμείνει μεγάλη και πιθανόν να είναι καλύτερα να βρείτε έναν εργοδότη που δεν σας βλέπει ως έξοδο που πρέπει να ελαχιστοποιηθεί. Ήρθε η ώρα να μάθετε κάποιες νέες δεξιότητες και να βρείτε έναν εργοδότη που σας εκτιμά πραγματικά.

Αλλά ο αριθμός των προγραμματιστών που θα "αντικατασταθούν από την τεχνητή νοημοσύνη" θα είναι μικρός. Να γιατί και να πώς η χρήση της τεχνητής νοημοσύνης θα αλλάξει τον κλάδο στο σύνολό του. Έκανα μια πολύ μη επιστημονική μελέτη σχετικά με τον χρόνο που αφιερώνουν στην πραγματικότητα οι προγραμματιστές για τη συγγραφή κώδικα.

Εντάξει, απλώς πληκτρολόγησα "Πόσο από το χρόνο ενός προγραμματιστή λογισμικού ξοδεύεται για τον προγραμματισμό" στη γραμμή αναζήτησης και κοίταξα τα πρώτα άρθρα, τα οποία έδωσαν ποσοστά που κυμαίνονταν από 10% έως 40%. Η δική μου αίσθηση, από τη συζήτηση και την παρατήρηση πολλών ανθρώπων όλα αυτά τα χρόνια, ανήκει στο χαμηλότερο άκρο αυτού του εύρους: 15% έως 20%.

Ώρα για "την υπόλοιπη δουλειά"

Το ChatGPT δεν θα εξαφανίσει εντελώς το 20% του χρόνου που αφιερώνουν οι προγραμματιστές στη συγγραφή κώδικα. Πρέπει ακόμα να γράφετε προτροπές, και όλοι μας είμαστε στη διαδικασία να μάθουμε ότι αν θέλετε το ChatGPT να κάνει καλή δουλειά, οι προτροπές πρέπει να είναι πολύ λεπτομερείς.

Πόσο χρόνο και προσπάθεια εξοικονομεί αυτό; Έχω δει εκτιμήσεις που φτάνουν το 80%, αλλά δεν τις πιστεύω- νομίζω ότι το 25% έως 50% είναι πιο λογικό. Αν το 20% του χρόνου σας δαπανάται για τον προγραμματισμό και η δημιουργία κώδικα με βάση την τεχνητή νοημοσύνη σας κάνει 50% πιο αποδοτικούς, τότε στην πραγματικότητα παίρνετε πίσω μόνο το 10% του χρόνου σας.

Μπορείτε να το χρησιμοποιήσετε για να παράγετε περισσότερο κώδικα - δεν έχω δει ακόμα προγραμματιστή που να μην έχει υποαπασχοληθεί ή που να μην έχει να αντιμετωπίσει μια αδύνατη ημερομηνία παράδοσης. Ή μπορείτε να αφιερώσετε περισσότερο χρόνο στην "υπόλοιπη δουλειά", το 80% του χρόνου σας που δεν δαπανήθηκε για τη συγγραφή κώδικα.

Κάποιο μέρος αυτού του χρόνου ξοδεύεται σε άσκοπες συσκέψεις, αλλά μεγάλο μέρος της "υπόλοιπης δουλειάς" είναι η κατανόηση των αναγκών του χρήστη, ο σχεδιασμός, ο έλεγχος, η αποσφαλμάτωση, η αναθεώρηση του κώδικα, η ανακάλυψη των πραγματικών αναγκών του χρήστη (που δεν σας είπε την πρώτη φορά), η βελτίωση του σχεδιασμού, η δημιουργία μιας αποτελεσματικής διεπαφής χρήστη, ο έλεγχος για την ασφάλεια κ.ο.κ. Είναι ένας μακρύς κατάλογος.

Απαιτούνται προγραμματιστές: Η τεχνητή νοημοσύνη δεν διαθέτει δεξιότητες σχεδιασμού

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

Έχουμε διανύσει πολύ δρόμο, αλλά δεν γνωρίζω κανέναν που να μην έχει χρειαστεί να διασώσει κώδικα που περιγράφεται καλύτερα ως " καυτή μάζα από bits". Δοκιμές και αποσφαλμάτωση - λοιπόν, αν έχετε παίξει πολύ με το ChatGPT, ξέρετε ότι οι δοκιμές και η αποσφαλμάτωση δεν θα εξαφανιστούν. Οι τεχνητές νοημοσύνες παράγουν λανθασμένο κώδικα, και αυτό δεν πρόκειται να σταματήσει σύντομα.

Ο έλεγχος ασφάλειας θα γίνει μόνο πιο σημαντικός, όχι λιγότερο- είναι πολύ δύσκολο για έναν προγραμματιστή να κατανοήσει τις επιπτώσεις στην ασφάλεια ενός κώδικα που δεν έγραψε. Το να αφιερώνουμε περισσότερο χρόνο σε αυτά τα πράγματα - και να αφήνουμε τις λεπτομέρειες της προώθησης γραμμών κώδικα σε μια τεχνητή νοημοσύνη - θα βελτιώσει σίγουρα την ποιότητα των προϊόντων που παραδίδουμε.

Προτροπή μιας διαφορετικής μορφής προγραμματισμού

Τώρα, ας δούμε μια πραγματικά μακροπρόθεσμη άποψη. Ας υποθέσουμε ότι ο Welsh έχει δίκιο και ότι ο προγραμματισμός όπως τον ξέρουμε θα εξαφανιστεί - όχι αύριο, αλλά κάποια στιγμή μέσα στα επόμενα 20 χρόνια. Εξαφανίζεται πραγματικά;

Πριν από μερικές εβδομάδες, έδειξα στον Tim O'Reilly μερικά από τα πειράματά μου με τις προτροπές του Ethan και της Lilach Mollick για τη χρήση της τεχνητής νοημοσύνης στην τάξη. Η αντίδρασή του ήταν: "Αυτή η προτροπή είναι πραγματικά προγραμματισμός". Έχει δίκιο.

Η συγγραφή μιας λεπτομερούς προτροπής είναι πραγματικά απλώς μια διαφορετική μορφή προγραμματισμού. Εξακολουθείτε να λέτε στον υπολογιστή τι θέλετε να κάνει, βήμα προς βήμα. Και συνειδητοποίησα ότι αφού πέρασα 20 χρόνια παραπονούμενος ότι ο προγραμματισμός δεν έχει αλλάξει σημαντικά από τη δεκαετία του 1970, το ChatGPT έκανε ξαφνικά αυτό το επόμενο βήμα.

Δεν είναι ένα βήμα προς κάποιο νέο παράδειγμα, είτε πρόκειται για λειτουργικό, είτε για αντικείμενο προσανατολισμένο, είτε για υπερδιάστατο. Περίμενα ότι το επόμενο βήμα στις γλώσσες προγραμματισμού θα ήταν το οπτικό, αλλά ούτε αυτό είναι. Είναι ένα βήμα προς ένα νέο είδος προγραμματισμού που δεν απαιτεί μια τυπικά καθορισμένη σύνταξη ή σημασιολογία. Προγραμματισμός χωρίς εικονικές κάρτες διάτρησης. Προγραμματισμό που δεν απαιτεί να ξοδεύετε το μισό σας χρόνο ψάχνοντας τα ονόματα και τις παραμέτρους των συναρτήσεων της βιβλιοθήκης που έχετε ξεχάσει.

Κατανόηση των προβλημάτων σε βάθος - όχι καταμέτρηση γραμμών κώδικα


Στην καλύτερη περίπτωση, αυτό θα μπορούσε να μηδενίσει ή να πλησιάσει το χρόνο που δαπανάται για τη συγγραφή κώδικα. Αλλά αυτή η καλύτερη περίπτωση εξοικονομεί μόνο το 20% του χρόνου ενός προγραμματιστή. Επιπλέον, δεν εξαλείφει πραγματικά τον προγραμματισμό. Τον αλλάζει - ενδεχομένως κάνοντας τους προγραμματιστές πιο αποτελεσματικούς και σίγουρα δίνοντας στους προγραμματιστές περισσότερο χρόνο για να μιλήσουν με τους χρήστες, να κατανοήσουν τα προβλήματα που αντιμετωπίζουν και να σχεδιάσουν καλά, ασφαλή συστήματα για την επίλυση αυτών των προβλημάτων.

Η καταμέτρηση γραμμών κώδικα είναι λιγότερο σημαντική από την κατανόηση των προβλημάτων σε βάθος και την εξεύρεση τρόπου επίλυσής τους - αλλά αυτό δεν είναι κάτι καινούργιο. Πριν από είκοσι χρόνια, το Agile Manifesto έδειχνε προς αυτή την κατεύθυνση, εκτιμώντας:

  • Άτομα και αλληλεπιδράσεις έναντι διαδικασιών και εργαλείων
  • Λειτουργικό λογισμικό έναντι ολοκληρωμένης τεκμηρίωσης
  • Συνεργασία με τον πελάτη έναντι διαπραγμάτευσης συμβάσεων
  • Ανταπόκριση στην αλλαγή έναντι της τήρησης ενός σχεδίου


Ενσωματωμένη τεχνητή νοημοσύνη: Προγραμματιστές που εργάζονται απευθείας με τους πελάτες

Παρά τα 23 χρόνια "ευέλικτων πρακτικών", η συνεργασία με τους πελάτες ήταν πάντα υποβαθμισμένη. Χωρίς τη συνεργασία με τους πελάτες και τους χρήστες, η ευέλικτη διαδικασία καταρρέει γρήγορα σε ένα σύνολο τελετουργιών. Η απελευθέρωση των προγραμματιστών από τη σύνταξη θα αποφέρει πράγματι περισσότερο χρόνο για να συνεργαστούν με τους πελάτες και να ανταποκριθούν στις αλλαγές;

Για να προετοιμαστούν για αυτό το μέλλον, οι προγραμματιστές θα πρέπει να μάθουν περισσότερα για την άμεση συνεργασία με τους πελάτες και τον σχεδιασμό λογισμικού που ανταποκρίνεται στις ανάγκες τους. Αυτό είναι μια ευκαιρία, όχι μια καταστροφή. Οι προγραμματιστές έχουν υποφέρει πολύ καιρό κάτω από το στίγμα ότι είναι σπασίκλες που δεν μπορούν και δεν πρέπει να τους επιτρέπεται να μιλούν με ανθρώπους. Ήρθε η ώρα να απορρίψουμε αυτό το στερεότυπο και να δημιουργήσουμε λογισμικό σαν να έχουν σημασία οι άνθρωποι.

Η τεχνητή νοημοσύνη δεν είναι κάτι που πρέπει να φοβόμαστε. Γράφοντας για το νέο plug-in του OpenAI Code Interpreter (που κυκλοφορεί σταδιακά τώρα), ο Ethan Mollick λέει: "Ο χρόνος μου γίνεται πιο πολύτιμος, όχι λιγότερο, καθώς μπορώ να επικεντρωθώ σε ό,τι είναι σημαντικό, αντί για την ρουτίνα".

Η τεχνητή νοημοσύνη είναι κάτι που πρέπει να μαθαίνεται, να δοκιμάζεται και να ενσωματώνεται στις προγραμματιστικές πρακτικές, ώστε οι προγραμματιστές να μπορούν να αφιερώνουν περισσότερο χρόνο σε αυτό που είναι πραγματικά σημαντικό: στην κατανόηση και την επίλυση προβλημάτων. Το τελικό σημείο αυτής της επανάστασης δεν θα είναι μια γραμμή ανεργίας- θα είναι καλύτερο λογισμικό. Το μόνο πράγμα που πρέπει να φοβόμαστε είναι να μην καταφέρουμε να κάνουμε αυτή τη μετάβαση.
Ο προγραμματισμός δεν πρόκειται να εξαφανιστεί. Θα αλλάξει, και αυτές οι αλλαγές θα είναι προς το καλύτερο.

Πηγή: Don’t quit your day job: Generative AI and the end of programming