IA e machine learning
L'assistente IA scrive in pochi secondi lo scheletro di un add-in per AutoCAD. Sembra convincente – e chiama un metodo che nell'API non esiste. Oppure si compila senza errori e usa una classe che con .NET 10 genera un'eccezione in fase di esecuzione. L'IA accelera sensibilmente la programmazione. Se il risultato è valido, però, continua a deciderlo qualcuno che conosce la materia.
Che cosa si sposta
Ebi F. Eilber, amministratore delegato di Cadida e da oltre 25 anni nello sviluppo CAD, lo riassume così: la programmazione la svolge sempre più l'IA. Tanto più importanti diventano creatività, competenza specialistica, comprensione del prodotto, innovazione e garanzia della qualità.
- Creatività: quale soluzione è quella giusta? L'IA risponde alla domanda che le si pone – non a quella che si sarebbe dovuta porre.
- Competenza specialistica: come si comporta un riferimento di blocco, che cosa richiede una norma, che rumore ha un sensore? Senza questa conoscenza un errore plausibile non salta all'occhio.
- Comprensione del prodotto: di che cosa ha davvero bisogno l'utente, e che cosa non deve assolutamente succedere?
- Innovazione: il nuovo nasce dall'esperienza e dalle idee, non dalla media di esempi noti.
- Garanzia della qualità: se il codice nasce più rapidamente, deve anche essere verificato più rapidamente e in modo più approfondito.
Dove l'IA aiuta oggi
L'IA è adatta per scheletri e codice ripetitivo, per trasformare programmi esistenti, ad esempio in un porting, per casi di test che altrimenti si tralasciano per mancanza di tempo e per spiegare codice altrui. Più una tecnologia è diffusa, meglio l'IA la conosce. Con API specialistiche come AutoCAD, Revit o FeatureCAM, con driver di dispositivo e con i cambi di versione diventa più insicura – e suona comunque altrettanto convinta.
Dove sbaglia
Un esempio ben studiato sono i pacchetti inventati. Per uno studio presentato a USENIX Security 2025, 16 modelli linguistici hanno generato 576.000 esempi di codice. In media almeno il 5,2 % dei pacchetti raccomandati dai modelli commerciali e il 21,7 % di quelli raccomandati dai modelli liberamente disponibili erano inventati. È più di un fastidio: gli aggressori possono registrare tali nomi e pubblicarvi codice dannoso.
Un secondo esempio è la propria percezione. In uno studio randomizzato di METR del 2025, 16 sviluppatori open source esperti hanno impiegato con strumenti di IA in media il 19 % di tempo in più per i loro compiti – e in seguito hanno stimato di essere stati più veloci del 20 %. METR stessa fa notare che da allora gli strumenti si sono evoluti e che il risultato non deve essere generalizzato. La lezione resta: misurare invece di stimare.
Garanzia della qualità per il codice generato dall'IA
- Review come per un nuovo collega: ogni modifica la legge qualcuno che è responsabile del codice.
- Prima i test: criteri di accettazione e casi di test stabiliscono che cosa è corretto – non l'assistente.
- Verificare automaticamente: test unitari e dell'interfaccia, analisi statica e verifiche di sicurezza vengono eseguiti a ogni build.
- Riservatezza: il codice dei clienti e i segreti commerciali vanno solo in servizi di IA il cui contratto e il cui trattamento dei dati sono chiariti.
- Approvare le dipendenze: i nuovi pacchetti entrano nel progetto solo dopo una verifica. Un piccolo script nella build blocca tutto ciò che non è approvato:
import re
import sys
def paketnamen(pfad):
"""Legge i nomi dei pacchetti di un file requirements, normalizzati secondo PEP 503."""
namen = set()
with open(pfad, encoding="utf-8") as datei:
for zeile in datei:
zeile = zeile.split("#")[0].strip()
if zeile and not zeile.startswith("-"):
name = re.split(r"[\s\[<>=!~;@]", zeile, maxsplit=1)[0]
namen.add(re.sub(r"[-_.]+", "-", name).lower())
return namen
neu = paketnamen("requirements.txt") - paketnamen("freigegeben.txt")
for name in sorted(neu):
print("Nicht freigegeben:", name)
sys.exit(1 if neu else 0)
Decisiva è l'approvazione, non la semplice esistenza di un pacchetto. Un nome inventato può essere già stato registrato da tempo da un aggressore. E la responsabilità resta dov'era: il Cyber Resilience Act non chiede se il codice l'abbia scritto una persona o un'IA. Della sicurezza del prodotto risponde il fabbricante.
Errori tipici
- Adottare codice dell'IA perché si compila.
- Non verificare i suggerimenti per API specialistiche rispetto alla documentazione della versione impiegata.
- Installare pacchetti suggeriti dall'assistente senza verificarli.
- Far scrivere anche i test all'IA e badare solo che siano verdi.
- Stimare il guadagno di tempo invece di misurarlo.
- Far formulare ai neoassunti solo prompt. Senza competenza specialistica non riconoscono gli errori.
Come La aiutiamo
- Code review: verifichiamo il Suo codice alla ricerca di errori e vulnerabilità, anche se è nato con l'IA: Controllo qualità e code review.
- Automazione dei test: con il nostro prodotto TesteriX testa automaticamente le applicazioni desktop a ogni build: Automazione dei test.
- Sviluppare competenze: chi modella con cura i requisiti ottiene risultati migliori anche dall'IA – ad esempio dopo il corso UML o il corso «AutoCAD .NET API con C#».
- Il Suo progetto: Fissi un primo colloquio.
Fonti: J. Spracklen et al., «We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs», USENIX Security 2025; METR, «Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity», luglio 2025; valutazione: Ebi F. Eilber, amministratore delegato di Cadida Software GmbH.
