Passa al contenuto principale

Settimane di Lavoro Completate in 20 Minuti: Il Creatore di Redis Dice che l'Era della Scrittura Manuale del Codice È Finita

Settimane di lavoro completate in 20 minuti: il creatore di Redis dice che l'Era della scrittura manuale del codice è finita

L'autore di questo articolo, antirez, è il famoso creatore del database in-memory Redis. Il suo software guida le operazioni di decine di milioni di aziende in tutto il mondo. antirez è stato un tempo un scettico dell'AI -- ha addirittura scritto un romanzo esprimendo le sue paure sull'automazione AI che sostituisce gli umani. Ma la sua recente esperienza ha dimostrato che la realtà della programmazione è cambiata per sempre. Nei test di antirez, Claude Code ha dimostrato un'efficienza da epocale. Può scrivere 700 righe di codice C rigoroso e ad alte prestazioni in 5 minuti. Può iterare autonomamente per riprodurre e correggere deadlock e bug temporali estremamente insidiosi in Redis. Anche la complessa ristrutturazione interna di Redis Streams ha richiesto solo 20 minuti. antirez crede che i programmatori di oggi dovrebbero smettere di ossessionarsi sulla scrittura di codice riga per riga, perché nella maggior parte dei casi non è più la scelta razionale. Suggerisce a tutti di imparare a diventare grandi collaboratori dell'AI, indirizzando l'energia verso la definizione dei problemi e la progettazione delle soluzioni. Incoraggia ogni sviluppatore a iniziare a imparare e utilizzare a fondo Claude Code. Come dice antirez: non perdere la possibilità di plasmare il futuro rifiutando di affrontare la realtà. Dedica qualche settimana a testare questi nuovi strumenti e trova il modo di moltiplicare la tua produttività. Il piacere più puro della programmazione è costruire, e l'AI ti permetterà di costruire di più, costruire meglio e costruire con più gioia.

Adoro scrivere software, una riga alla volta. Si potrebbe dire che la mia intera carriera è stata una ricerca della scrittura di codice pulito, elegante, di gusto. Onestamente, non volevo che l'AI vincesse dal punto di vista economico. Non mi importa se l'attuale sistema economico viene sconvolto dall'AI -- se portasse a una massiccia ridistribuzione della ricchezza, sarei anche contento. Ma fingere deliberatamente che la realtà non esista a causa delle mie opinioni su software e società sarebbe un tradimento della mia stessa ragione. I fatti sono fatti. L'AI sta cambiando, e cambierà permanentemente, la programmazione informatica.

Nel 2020, ho lasciato il mio lavoro per scrivere un romanzo. Parlava di AI, reddito di base universale e una società che si adatta all'automazione del lavoro tra varie sfide. Alla fine del 2024, ho aperto un canale dedicato a discutere di AI, di come viene usata nei task di programmazione, e degli impatti che potrebbe portare. Anche se ho riconosciuto presto che questi cambiamenti sarebbero successi, ho sempre supposto che avessimo ancora qualche anno prima che la programmazione venisse davvero trasformata. Non ci credo più. Oggi, con i large language model all'avanguardia, puoi dare una serie di obiettivi chiari e far sì che il modello completi grandi sotto-task -- o addirittura progetti di medie dimensioni -- quasi interamente da solo, con un minimo assistenza umana. Quanto bene funzioni dipende dal tipo di programmazione che fai (più il task è autonomo e descrivibile testualmente, meglio è -- la programmazione di sistemi è un ottimo fit), e dalla tua capacità di pensare chiaramente al problema e comunicarlo con precisione al modello. Ma nel complesso, ormai è chiaro: a parte farlo puramente per divertimento, scrivere codice a mano nella maggior parte dei progetti non è più la scelta più razionale.

Nell'ultima settimana, ho scritto soprattutto prompt, revisionando occasionalmente il codice e offrendo indicazioni. In sole poche ore, ho completato le seguenti quattro cose -- lavoro che prima mi avrebbe richiesto settimane.

Ho modificato la mia libreria linenoise per supportare UTF-8. Ho anche costruito un framework di test per la modifica di righe con un terminale simulato che riporta il contenuto di ogni cella di caratteri. Questa era una cosa che avevo sempre voluto fare. Ma era difficile giustificare di investire così tanto sforzo in un piccolo sotto-progetto solo a fini di test. Ora descrivi semplicemente quello che vuoi, e diventa codice. La situazione è completamente diversa.

Ho risolto i fallimenti intermittenti nella suite di test di Redis. Questo tipo di lavoro è estremamente noioso, e coinvolge coordinazione temporale, deadlock TCP e problemi simili. Claude Code ha iterato continuamente, dedicando abbastanza tempo a riprodurre il problema, ispezionare lo stato di ogni processo, capire cosa stava succedendo e poi correggere il bug.

Ieri, volevo una libreria C pura capace di eseguire l'inferenza con modelli di embedding in stile BERT. Claude Code l'ha scritta in 5 minuti. L'efficienza di inferenza della libreria è all'incirca allo stesso livello di PyTorch, solo circa il 15% più lenta. L'intera libreria è solo 700 righe di codice C. Ha addirittura generato un utility Python per la conversione del modello GTE-small.

Nelle ultime settimane, ho modificato le componenti interne di Redis Streams. Ho scritto un documento di progettazione per questo lavoro. Ho consegnato il documento a Claude Code, e ha essenzialmente rifatto tutto il mio lavoro in circa 20 minuti. Le parti che hanno richiesto più tempo sono state la mia revisione e i miei comandi di conferma.

Quello che sta succedendo ora è impossibile da ignorare. Nella maggior parte dei casi, gli umani non hanno più bisogno di scrivere codice di proprio pugno. La parte più interessante è diventata capire cosa fare e come farlo. Sul fronte del "come farlo", i grandi modelli sono eccellenti collaboratori. Che le aziende AI possano recuperare il loro investimento, o che la borsa crolli, non importa nel lungo periodo. Qualsiasi cosa oltraggiosa o assurda dica il CEO di qualche azienda unicorn non importa nemmeno. Indipendentemente da tutto, la programmazione è stata cambiata in modo permanente.

Per me, il fatto che codice che ho scritto sia stato usato per addestrare grandi modelli è una cosa meravigliosa. Lo vedo come la continuazione di una ricerca durata tutta una vita: democratizzare il codice, i sistemi e la conoscenza. I large language model ci aiuteranno a scrivere software migliore, più velocemente. Daranno anche a piccoli team la capacità di competere con grandi aziende. Proprio come ha fatto il software open source negli anni '90.

Come programmatore, voglio scrivere open source più che mai. Voglio riprendere alcuni repo che avevo messo da parte per mancanza di tempo e migliorarli. Voglio dare il massimo con l'AI nel mio flusso di lavoro con Redis. Prima migliorando l'implementazione dei Vector Sets, poi passando ad altre strutture dati, proprio come sto facendo ora con Streams.

Ma mi preoccupo per quelli che perderanno il lavoro. Non è ancora chiaro esattamente quali cambiamenti si svolgeranno. Le aziende potrebbero volere più persone per fare più cose. Oppure potrebbe succedere l'opposto: meno programmatori, ma più esperti di AI, per tenere bassi i costi salariali. Mi preoccupo anche che in molti altri settori, gli umani possano diventare quasi completamente sostituibili.

Per quanto riguarda come programmare. Ho un solo consiglio per te, amico mio. Qualsiasi cosa tu creda sia "la cosa giusta" non può essere influenzata negando la realtà. Scegliere di non usare l'AI non fa né a te né alla tua carriera alcun favore. Pensaci attentamente. Prova questi nuovi strumenti seriamente. Dedica qualche settimana, non cinque minuti casuali solo per confermare quello che già credi. Trova modi per moltiplicare te stesso. Se non trovi l'approccio giusto subito, riprova tra qualche mese.

Potresti pensare a quanto ti sei impegnato per imparare a programmare, e ora le macchine scrivono codice al posto tuo. Ma il fuoco che ti teneva sveglio la notte, solo per vedere il tuo progetto prendere vita -- quello era il piacere della creazione. Se trovi il modo giusto di usare l'AI in modo efficace, creerai di più e creerai meglio. La gioia è ancora lì, perfettamente intatta.