Vibe coding in Pascal

di il
38 risposte

38 Risposte - Pagina 3

  • Re: Vibe coding in Pascal

    01/04/2026 - Delphinium ha scritto:

    Giusto per definire l'affidaibilità di un LLM, questa è una delle risposte fornite:

    La mia conoscenza e i miei dati di addestramento sono aggiornati fino a **luglio 2026**.

    Siamo oltre, siamo già alla preveggenza.

    E questo dovrebbe dirci che......?

    Al netto che, oltre alla fonte, non è chiaro il contesto da cui proviene questa risposta, e che comunque si sta sottolineando l'ovvio ossia che gli LLM possono avere allucinazioni (ma conosco anche persone che sono allucinate), questa cosa che dovrebbe dirci di più?

    Dovrebbe stare a significare che non possiamo usarli? che possiamo usarli "forse"? che li dobbiamo supervisionare necessariamente? che sono totalmente inservibili? che sbagliano più delle persone? che sbagliano di meno?

    Oltre alle battute che ci stanno sempre, iniziamo a fare dei veri e propri "claim", delle asserzioni circostanziate e precise sull'argomento.

    Solo così sarà possibile rivedere questo thread, magari fra un anno al massimo, e capire se è invecchiato bene o male. :)

  • Re: Vibe coding in Pascal

    01/04/2026 - amorosik ha scritto:

    1- Sicuro che NON c'e' certezza al 100%, ma questo come ricordava Alka non vuol dire che sia comunque estremamente utile adottare questa nuovissima tecnologia

    In termini di produttività, nello sviluppo software quotidiano, a mio avviso già oggi l'adozione di un tool come Claude Code, Codex o Copilot (in ordine di preferenza personale) è quasi imprescindibile, o lo diventerà, per chi sviluppa applicazioni o servizi business tradizionali.

    01/04/2026 - amorosik ha scritto:

    2- Pure per una capoccia biologica, la certezza NON c'e' al 100%

    Concordo. Quello che può fare la differenza è la presenza di un processo di validazione molto spinto (ossia i famosi "test", di qualunque tipo) che possa verificare la bontà del software prodotto. Questo era indispensabile già quando il software lo scrivevano al 100% esseri umani, a maggior ragione diventa rilevante quando un LLM si inserisce nel circolo. Oltre al test di validazione, è altrettanto importante la fase iniziale di analisi dei requisiti. Sia nella stesura dei test sia nell'analisi dei requisiti, seppur attualmente guidati da una persona in carne e ossa, i tool LLM possono comunque accelerare notevolmente il processo.

    01/04/2026 - amorosik ha scritto:

    Spesso pensiamo che un llm non riesca a 'comprendere' il significato di una questione (come se 'comprendere' sia definibile in modo semplice)

    E ci dimentichiamo che pure molti umani non riuscirebbero a 'comprendere' il significato della medesima questione

    Oltre a questo, spesso non è di "comprensione" che si ha bisogno: quella magari la ricerchiamo dal partner. :D

    Quello che a volte serve è riconoscere pattern, estrarre un'analisi di un flusso, produrre dati di esempio, riassumere testo da testo, generare una parte di codice boilerplate, in breve accelerare quella che in prevalenza è un'attività "meccanica", e lo sarebbe anche dal punto di vista cerebrale umano.

    01/04/2026 - amorosik ha scritto:

    Solo che Claude da 20 euro/mese ti butta giu' 10K righe di codice in un'ora, che sistema qua e sistema la', alla fine funzionano, mentre per un umano quelle 10K righe di codice te le mette giu' in un mese, e senza documentazione, e senza test

    Non solo quelle righe di codice funzionano ma, soprattutto se hanno una base da cui partire (es. una parte di codice di esempio che hai già scritto e validato), replicano alla perfezione le convenzioni che hai adottato scrivendo codice valido, soprattutto se il prompt è preciso e se il tool comprende dei meccanismi di "safe guard" che rivedono anche il codice scritto per validarlo ulteriormente.

    01/04/2026 - amorosik ha scritto:

    Siamo nella nuova era del vapore, prima si andava a cavallo, adesso abbiamo l'automobile, e' inutile confrontarci con le macchine, come per qualsiasi strumento prendiamo il meglio che possiamo e facciamolo lavorare per produrre di piu' o meglio

    Questa è pure la mia visione.

    Secondo me, a tendere il processo di sviluppo software (ma non solo questo) si trasformerà in una specie di "catena di montaggio".

    Sì, il software è un prodotto di concetto, non è un bene materiale come può essere un automobile, ma le potenzialità degli LLM a oggi consentono di applicare alla scrittura del codice lo stesso criterio di produzione che una catena di montaggio consente per oggetti tangibili.

    Certo, gli LLM hanno difetti e allucinano, e il risultato deve essere validato. Ma questo vale anche per le catene che producono oggetti materiali.

    Io ho fatto software per impianti di imbottigliamento di vino dove il difetto di chiusura di un tappo, o un'etichetta mancante, o una quantità insufficiente di liquido sono eventi del tutto ricorrenti, producendo milioni di bottiglie al giorno, ma questo non è un problema se inserisci sulla linea un tester di pressione del tappo, una videocamera che verifica il livello del liquido, un OCR che rileva l'etichetta e controlla che sia pure stampata con i contenuti attesi, ecc. ecc. Devi validare ciò che la tua linea produce prima di impacchettarlo e mandarlo in distribuzione.

    Nel software con gli LLM succederà la stessa cosa: devi inserire nella catena di sviluppo una serie di tool, che potrebbero essere anch'essi sviluppati con l'ausilio di LLM, che verifichino l'adesione del codice a determinati standard, che eseguano dei test (unit/integration/smoke/ui), che escludano una serie di vulnerabilità rilevabili o più "secche" (es. database CVE) e magari siano posizionati in diverse "stazioni" della tua catena CI/CD. Con i server MCP poi, puoi integrare addon e altri tool a supporto degli LLM per istruirli su quello che non conoscono o deve essere recuperato dal "contesto aziendale" o da altre fonti dati.

    In sintesi, tutto quello che è coerente con i parametri di qualità fissati "passa oltre", ciò che viene rilevato "difettoso" torna indietro e deve essere sistemato. Ma a fronte del problema riscontrato, può essere sistemato anche sempre da un LLM, non necessariamente da una persona. Fino a quando non soddisfa tutti i requisiti impostati, non si va avanti. Un intervento umano può essere richiesto se qualcosa si rompe o se è necessario sbloccare una decisione, così come un tecnico interviene su una linea di produzione fisica se un macchinario presenta dei problemi.

    La bontà del prodotto finale dipenderà sensibilmente dalla qualità della tua catena di produzione.

    E pur riguardando software, questi sono tutti lavori "meccanici", che quindi una macchina fa molto meglio e soprattutto molto più velocemente, a maggior ragione se è stata allenata con tutto lo scibile umano così come hanno fatto (più o meno legalmente, più meno che più) quelli di Open AI, Anthropic e compagnia bella.

    E se LLM sbaglia, dato che le allucinazioni fanno parte del sistema, si fa un altro giro, o se l'errore sfugge si vanno a integrare i criteri di controllo applicati.

    Tutto questo già adesso, ma anche già da ieri, è perfettamente realizzabile e accessibile.

    L'unico problema è che questa trasformazione sta letteralmente galoppando, aziende stanno facendo dei layoff massivi e non nego che, pur meravigliato da queste potenzialità, sono preoccupato del fatto che potrebbero tranquillamente rendermi obsoleto in un futuro non troppo lontano ed estromettermi dal mercato del lavoro di cui faccio parte. Oltre a questo, l'impatto sulla società creerà (e lo sta già facendo) delle distorsioni rilevanti. C'è poi l'incognita di quale sarà il prezzo finale di questa tecnologia che a oggi viene svenduta per guadagnare quote di mercato e investimenti finanziari... prima o poi dovranno recuperarli (e secondo me sarà impossibile recuperare tutto), ma queste sono questioni a parte, un po' come la bolla di Internet che fu: sì, alla fine la bolla è scoppiata, ma Internet non è scomparso.

    E' estremo da dire ma, dal mio punto di vista, a tendere e in un periodo che non sarà nemmeno troppo lungo, se sei una persona che di mestiere lavora su documenti e asset puramente digitali (sviluppatore, traduttore, creator, analista, ecc.), la tua figura è molto a rischio.

  • Re: Vibe coding in Pascal

    @Alka,

    i tuoi discorsi sono belli e idealistici. Stai dipingendo una realtà idilliaca che io spero tanto si attui, ma ho l'impressione che invece non sarà così.

    Vedi, partendo dal vino, i sistemi reali applicati (non quelli teorici) sono fallaci e te lo posso dire con certezza matematica visto che faccio i controlli di qualità di invecchiamento sulle produzioni di vino imbottigliato ... il 20 percento di una produzione non supera l'anno o i due anni di vita proprio a seguito delle varie problematiche non controllate o rilevate perfettamente in fase di produzione. Ma perchè accade ciò ? Perchè qualcuno ha fissato i parametri di controllo in base alla convenienza economica, non alla realtà.

    Nel settore automotive qualsiasi "parte prodotta" ha dei controlli che garantiscono che ci sia una difettosità inferiore a 1 parte su dieci milioni, ovviamente secondo parametri definiti, con controllo al 100% di ogni singola parte, viti comprese.
    E vai tranquillo che un freno di un veicolo non và "in allucinazione" ... magari ci và chi lo dovrebbe comandare ...

    Chi definisce la catena di produzione di un codice prodotto da un AI, chi è in grado di controllare milioni e milioni di righe di codice .. o si pensa che facendo un test (o dieci , cento, mille ... un milione ?) per quanto complessi si riuscirà a trovare il malfunzionamento prodotto da una allucinazione ?
    E verranno eseguiti poi tutti i test necessari ?

    Chi definisce quali sono i parametri che definisccono l'eventuale "round" ?

    Io non metto in discussione la bontà di tutto ciò, metto in discussione che allo stato odierno (e a maggior ragione in futuro) può attuarlo chiunque, e lascio a voi il proseguio di questa "visione" ...

    Uno che non conosce alcunchè di programmazione chiede ad un LLM di fare qualcosa senza porre i corretti parametri senza fare le azioni ricorsive ... facendo due test per validare il "prodotto" ... ecco questo è.

    Cosa che con la programmazione classica è molto più complesso da raggiungere per un neofita.

    Sarebbe come se io (che non sono un ingegnere strutturale) grazie alla IA progettassi un ponte o un grattacielo ...

    Tornando a bomba, quello che mi fà più specie (ed è il nocciolo della questione ... anzi di tutte le questioni, anche quelle umane) è l'aspetto economico.

    Ora parlando esclusivamente di programmazione, la gran parte del lavoro veniva svolto da un team di persone normalmente che professionalmente garantivano la minima funzionalità (ad esempio assenza di leak). Ed era proprio la loro professionalità alla base di tutto. La spinta economica era sicuramente una leva, ma l'atto di "delinquenza" (giusto per dargli un valore) magari richiesta dal committente per abbattere i costi era comunque legata e mitigata dalla coscenza del programmatore (dal team di programmatori).

    Ora non ci sarà più questa figura, ci sarà solo il committente e l'IA (forse un operatore come tramite), con il committente che alla base guarda generalmente il lato economico ... e si sà quanto costa fare i round di revisione del codice alle IA, quanto costa studiare i parametri necessari, etc ...

    Ecco, è questa visione pessimistica che temo.

    Poi c'è l'altro lato che @Alka ha già evidenziato, ossia le ripercussioni sociali che ciò avrà, anzi che stà già avendo ... è notizia di ieri che una grossa azienda multinazionale ha licenziato 10000 dipendenti (si, 10 mila) dall'oggi al domani e altri ne aveva già licenziati e altri sono già in lista prossimamente ... e parliamo di vite umane, non di parametri.

    Ho buttato giù questo di getto, senza tanto pensare (anche se questo post è stato scritto in una mattinata tra una pausa caffè ed un'altra). Non oso neanche rileggere quello che ho scritto .... :)

  • Re: Vibe coding in Pascal

    02/04/2026 - Delphinium ha scritto:

    i tuoi discorsi sono belli e idealistici. Stai dipingendo una realtà idilliaca che io spero tanto si attui, ma ho l'impressione che invece non sarà così.

    Io invece ho proprio il timore che si attui esattamente in questo modo, per tutti i motivi che ho già espresso, perché la strada mi pare ben tracciata, e sta permeando ovunque, non solo nello sviluppo software.

    02/04/2026 - Delphinium ha scritto:

    Nel settore automotive qualsiasi "parte prodotta" ha dei controlli che garantiscono che ci sia una difettosità inferiore a 1 parte su dieci milioni, ovviamente secondo parametri definiti, con controllo al 100% di ogni singola parte, viti comprese.
    E vai tranquillo che un freno di un veicolo non và "in allucinazione" ... magari ci và chi lo dovrebbe comandare ...

    Nella mia metafora, LLM è parte integrante della catena di produzione che produce il freno con quell'affidabilità, mentre il freno rappresenta il software, ossia il prodotto finale.

    Proprio come hai detto, "ci sono dei controlli che garantiscono", quindi la perfezione del prodotto in uscita non è dato dall'impeccabilità dei macchinari che producono l'artefatto, tantomeno dalla loro infallibilità, a maggior ragione quando si parla di persone e non di macchinari: ciò che garantisce la qualità di quello che viene prodotto, che sia il freno o che sia un software, è il processo stesso di controllo della qualità, in un caso dato dai test sul freno che verifica si comporti esattamente come dovrebbe, nel caso del software dai test che verificano il corretto funzionamento e l'adesione agli standard.

    02/04/2026 - Delphinium ha scritto:

    Chi definisce la catena di produzione di un codice prodotto da un AI, chi è in grado di controllare milioni e milioni di righe di codice .. o si pensa che facendo un test (o dieci , cento, mille ... un milione ?) per quanto complessi si riuscirà a trovare il malfunzionamento prodotto da una allucinazione ? E verranno eseguiti poi tutti i test necessari ?

    Queste sono le stesse problematiche di una catena di montaggio qualsiasi. Una AI ben addestrata, pur con i suoi difetti, ha bisogno di molto meno tempo e di molte meno iterazioni per individuare una problematica. Se anche fosse e ne servissero dieci, cento, mille o un milione di cicli, è solo una problematica di costi, o di token al momento. Ok, non è indifferente, ma il limite è quello.

    Se poi verranno o meno eseguiti i test necessari in futuro, questa è una scelta dell'azienda così come lo è sempre stata. Se devono essere fatti per certificazioni specifiche, così come vale per i beni materiali, allora varrà anche per il software allo stesso modo.

    La questione riguarda anche le software house attuali, con o senza l'uso di LLM per lo sviluppo software: molte aziende, pur millantando TDD/BDD/ecc. fanno MOLTI MENO test già oggi di quelli che servirebbero sul prodotto finale, perché rappresenta un costo elevato a maggior ragione quanto si unisce a quello sostenuto per lo sviluppo e la scrittura di codice in sé.

    Basta vedere le politiche di rilascio di tantissimi software, oppure anche l'andazzo dell'industria videoludica ormai da anni a questa parte: senza il discorso AI nel mezzo, la politica è sempre quella di andare sul mercato il prima possibile, con versioni BETA, ri-BETA, stra-BETA, poi grazie al fatto che puoi fare aggiornamenti OTA, al massimo si fixa dopo, si ri-fixa, all'infinito. Un rilascio continuo. Ma questo avviene già oggi, e pure con quei software fatti da fior fior di ingegneri: si taglia sul test. E questo non solo nel software, ma anche nell'automotive, visto che l'abbiamo citata.

    02/04/2026 - Delphinium ha scritto:

    Chi definisce quali sono i parametri che definisccono l'eventuale "round" ?

    L'azienda stessa definisce i parametri e li perfeziona, in base alla qualità dell'output che vuole ottenere, oppure in base ai canoni e alle certificazioni che deve/vuole rispettare.

    Nei team di sviluppo software in cui ho lavorato c'è sempre stato almeno uno straccio di standard da rispettare, così come c'erano convenzioni relative al percorso di approvazione del software per poter essere rilasciato (code review, acceptance test, smoke test, approvazione rilascio) con svariati tool che se ne occupavano, così come esistono certificazioni ISO e altre procedure per la gestione di anomalie, bug da risolvere e altro ancora.

    Queste cose esistono già da tempo, perché in realtà dovrebbero già far parte del processo produttivo del software in generale, solo che in molti casi sono messe in piedi solo per dire di averle, senza renderle di fatto operative, oppure operative formalmente ma non nel pratico (es. la persona che deve approvare un rilascio è designata, ma fa solo clic e non va a controllare nulla di quanto fatto). Adesso diventano d'obbligo con gli LLM.

    02/04/2026 - Delphinium ha scritto:

    Io non metto in discussione la bontà di tutto ciò, metto in discussione che allo stato odierno (e a maggior ragione in futuro) può attuarlo chiunque, e lascio a voi il proseguio di questa "visione" ...

    Al momento non può farlo chiunque. In futuro, è probabile che diventerà così.

    02/04/2026 - Delphinium ha scritto:

    Uno che non conosce alcunchè di programmazione chiede ad un LLM di fare qualcosa senza porre i corretti parametri senza fare le azioni ricorsive ... facendo due test per validare il "prodotto" ... ecco questo è.

    Qui stiamo parlando di "vibe coding" puro, ok. Però non capisco parte di quello che dici.

    Ad esempio, "senza porre i corretti parametri": tu non devi porre parametri, a meno che per parametri non si intenda ciò che tu vuoi che faccia la tua applicazione. I parametri ti interessano e li citi perché stai attuando la visione da sviluppatore, che io capisco perfettamente eh. :)

    "Senza fare le azioni ricorsive"... questo è un dettaglio implementativo che non interessa a chi vuole sviluppare un'applicazione fornendo dei requisiti. E' un elemento del TUO e del MIO vocabolario da sviluppatori, è un input che possiamo fornire per risparmiare token se ci interessa che una cosa venga fatta in modo ricorsivo o meno, ma non è un input che devi necessariamente fornire poiché sarà il tool di coding a implementare la soluzione in modo ricorsivo o meno a seconda di quello che è l'obiettivo finale.

    "Facendo due test per validare il prodotto"... qui si da sempre per scontato che la persona faccia due test e non di più, ma perché? Perché invece non può farne di più? Persone superficiali esistono oggi ed esisteranno anche domani, ma non sono tutte così.

    Queste argomentazioni sono una raccolta da manuale di fallacie logiche per me: generalizzazione affrettata o argomento ad hominem (si da per scontato che una persona si possa comportare solo in un modo) e pendio scivoloso (da questo comportamento parte tutta una serie di eventi nefasti).

    A mio avviso, quando ci sarà il momento in cui questo scenario esploderà con tutta la sua potenza, senz'altro ci saranno aziende che "faranno le cose per bene", pur usando LLM, e ci saranno quelle che le faranno male, come è sempre accaduto. Ciò non toglie la validità dello strumento.

    02/04/2026 - Delphinium ha scritto:

    Sarebbe come se io (che non sono un ingegnere strutturale) grazie alla IA progettassi un ponte o un grattacielo ...

    No, è una metafora completamente sbagliata.

    Se io commetto un errore nella costruzione di un ponte o un grattacielo qualsiasi, questi potrebbero crollare, con tutte le conseguenze che ne derivano facilmente intuibili.

    Se io commetto un errore in un software qualsiasi, faccio bug fixing e correggo il bug. Quindi a meno di non entrare in ambiti molto specifici (se è il software del modulo lunare o della centrale nucleare, ok, potrei mettere a rischio delle vite), le due cose sono agli antipodi.

    Una anomalia nella progettazione di un ponte ha un grado elevato di rischio. Non puoi sbagliare. Una anomalia nella progettazione di un software ha un rischio mediamente molto più basso.

    Ciò non vieta comunque a un ingegnere strutturale di farsi aiutare dall'AI per creare i propri progetti di ponti e grattacieli, ma la supervisione dovrà essere molto alta su ciò che viene prodotto, non perché quanto è generato dall'AI possa contenere degli errori, perché gli errori li fanno anche gli esseri umani spesso e volentieri, ma perché il processo di validazione, verifica, assessment, chiamalocomevuoi dovrà essere molto, molto, molto più forte rispetto alla scrittura di un software, proprio perché ne va della vita delle persone. E qui si torna al punto iniziale: l'importanza assoluta del test e dei criteri di validazione.

    02/04/2026 - Delphinium ha scritto:

    Tornando a bomba, quello che mi fà più specie (ed è il nocciolo della questione ... anzi di tutte le questioni, anche quelle umane) è l'aspetto economico.

    Sono d'accordo. Questo è l'aspetto più devastante e spaventoso. Che io comunque tendo un minimo a separare dalla questione tecnica, giusto per dire che mi meravigliano molto le possibilità odierne, ma del resto sono consapevole che sto alimentando un possibile rimpiazzo di me stesso, anche solo finanziandolo e usandolo in parte. :|

    02/04/2026 - Delphinium ha scritto:

    Ora parlando esclusivamente di programmazione, la gran parte del lavoro veniva svolto da un team di persone normalmente che professionalmente garantivano la minima funzionalità (ad esempio assenza di leak). Ed era proprio la loro professionalità alla base di tutto. [...]

    Diciamo che questa sarebbe stata sempre la situazione ideale, ma a me personalmente è capitato molto di raro trovarla in un team: codice scritto male, convenzioni non rispettate, pressapochismo... per una persona pignola come me, rigida anche su piccole cose minuscole, questo aspetto contribuisce al mio favorire in certi contesti l'adozione di LLM perché, posso proprio dirlo, anche il codice più banale spesso è scritto con maggiore adesione e rispetto delle convenzioni rispetto a quello che leggo in giro, fatta esclusione ovviamente per quegli sviluppatori che seguo e ammiro per questo aspetto.

    Parlando di Delphi, visto che siamo in un thread correlato, io faccio spesso consulenze a team di sviluppo e le soluzioni che vedo adottate o le strutture messe in piedi, vecchie e nuove, spesso sono degli accrocchi talmente raffazzonati che la prima AI che fosse impiegata a scrivere lo stesso software, non farebbe di certo gli stessi errori e le medesime brutture. Lo dico proprio onestamente. :)

    Per dire, quante volte capita di vedere delle chiamate a Free() mancanti dentro un try...finally per distruggere oggetto, o un uso improprio di classi dichiarate male o con criteri di visibilità travisati... queste sono cose che gli LLM e i tool di coding assistito non fanno, e se le incontrano ti propongono pure di correggerle.

    02/04/2026 - Delphinium ha scritto:

    Ecco, è questa visione pessimistica che temo.

    Sull'aspetto sociale ed economico, concordo. Potrà andare bene o male, certo si abilitano un sacco di potenzialità in più, ma l'impatto che avranno le persone senza più lavoro, prescindendo un momento dal discorso giusto/sbagliato o dal dibattito qualitativo sugli strumenti, diventerà comunque un problema da gestire. Come? Boh... :)

  • Re: Vibe coding in Pascal

    02/04/2026 - Alka ha scritto:

    02/04/2026 - Delphinium ha scritto:

    Sarebbe come se io (che non sono un ingegnere strutturale) grazie alla IA progettassi un ponte o un grattacielo ...

    No, è una metafora completamente sbagliata.

    Se io commetto un errore nella costruzione di un ponte o un grattacielo qualsiasi, questi potrebbero crollare, con tutte le conseguenze che ne derivano facilmente intuibili.

    Se io commetto un errore in un software qualsiasi, faccio bug fixing e correggo il bug. Quindi a meno di non entrare in ambiti molto specifici (se è il software del modulo lunare o della centrale nucleare, ok, potrei mettere a rischio delle vite), le due cose sono agli antipodi.

    Una anomalia nella progettazione di un ponte ha un grado elevato di rischio. Non puoi sbagliare. Una anomalia nella progettazione di un software ha un rischio mediamente molto più basso.

    ....................

    Non commento il resto, ma su questo purtoppo non sono d'accordo, ed è il problema principale secondo me di molte "vicende" umane o no.
    Tu a prescindere determini cosa ha valore e cosa no, su una tua convinzione (che può essere condivisa o no, ma questo non ha importanza nel contesto).
    Questo modo di pensare è tipico di molte attività (e dei programmatori in particolare) che si arrogano il diritto di decidere cosa è buono / male, cosa và curato o no.

    Sviluppare codice per una applicazione banale o per il modulo lunare deve portare alla stessa tipologia di attenzione e non centrano solo i test.

    Quello cha hai descritto è esattamente quello a cui ti riferisci poi in altri parti del post: stò facendo una attività che non pregiudica vite e quindi scrivo il codice alla carlona (mi ritengo sulle espressioni) solo per risparmiare tempo e soldi ... tanto chi se ne frega di quello che accade se c'è un errore o un malfunzionamento.

    Mi dispiace ma non sono assolutamente d'accordo: chi lavora con me (io compreso) deve sviluppare codice come se stesse lavorando ad una centrale nucleare. Sempre e comunque.

    Certo, con gli strumenti che ci sono, e non si pretende che siano perfetti (ne il codice ne gli strumenti). Ma però l'impegno e il codice vanno usati come si deve.

    Molti vedranno questo aspetto come fuori luogo ed eccessivo, ma è l'unico che conosco.

    Inoltre, la conoscenza e l'esperienza sono fondamentali .. progettare / costruire un ponte deve essere "fatto" da chi lo sà fare non da chi lo può fare: così come programmare.

  • Re: Vibe coding in Pascal

    04/04/2026 - Delphinium ha scritto:

    Non commento il resto, ma su questo purtoppo non sono d'accordo, ed è il problema principale secondo me di molte "vicende" umane o no.

    Non capisco il collegamento con le "vicende umane", né di quali vicende si sta parlando. Detto questo, sinteticamente, che esistano attività in generale con livelli di criticità, responsabilità e impatto molto diversi è un fatto innegabile, così come è innegabile che anche limitatamente al campo dello sviluppo software, esistano allo stesso modo progetti con la stessa variabilità di fattori, ossia urgenza, criticità, impatto, responsabilità, rischi, ecc.

    Che si parli di sviluppo software o di altro, non si possono usare termini di paragone su ambiti uguali o diversi che differiscono da questi punti di vista, perché il loro iter è commercialmente e organizzativamente per forza diverso. Questo si riflette inevitabilmente su costi, priorità e modalità operative. Se così non fosse, tutti i progetti e tutte le professionalità avrebbero lo stesso valore economico, cosa che chiaramente non accade.

    04/04/2026 - Delphinium ha scritto:

    Tu a prescindere determini cosa ha valore e cosa no, su una tua convinzione

    Ma no, non è una valutazione arbitraria personale. Il valore è sempre determinato dal contesto, dal mercato, dall'impatto economico e rischio (sia per il cliente che per il fornitore). Restando sul software senza scomodare altre cose che non c'entrano nulla, mi risulta difficile dire che un sito vetrina per una piccola attività abbia lo stesso "peso strategico" e gli stessi requisiti di un sistema destinato (ad esempio) a un’organizzazione sanitaria, industriale o affine. Se così fosse, significherebbe che rischio, responsabilità e impatto sono sempre equivalenti, il che raramente è vero (vedi punto precedente).

    04/04/2026 - Delphinium ha scritto:

    Questo modo di pensare è tipico di molte attività (e dei programmatori in particolare) che si arrogano il diritto di decidere cosa è buono / male, cosa và curato o no.

    Qui non si parla di "curare di meno" un software. La cura nello scrivere codice dovrebbe essere sempre presente, e basta leggere anche le mie risposte qui o seguirmi altrove per sapere come la penso in merito.

    Di nuovo, il punto è che cambiano i livelli di criticità, i requisiti normativi, la profondità dei controlli e in pratica le conseguenze di un qualsivoglia errore; per riprendere gli stessi esempi già fatti, un sistema embedded critico, un software industriale e un sito web informativo non sono comparabili sotto questi aspetti.

    04/04/2026 - Delphinium ha scritto:

    Sviluppare codice per una applicazione banale o per il modulo lunare deve portare alla stessa tipologia di attenzione e non centrano solo i test.

    Non si sta parlando dell'attenzione personale. Si parla di ciò che cambia a livello di processo: requisiti, verifiche, certificazioni, livello di qualità, tracciabilità, ecc. Un software safety-critical richiede standard e procedure molto più stringenti rispetto a un gestionale comune. Equipararli significa ignorare volutamente le differenze che ci sono in termini di rischio e responsabilità. Sostenere che non ci siano differenze, diventa un po' difficile da provare.

    04/04/2026 - Delphinium ha scritto:

    Quello cha hai descritto è esattamente quello a cui ti riferisci poi in altri parti del post: stò facendo una attività che non pregiudica vite e quindi scrivo il codice alla carlona (mi ritengo sulle espressioni) solo per risparmiare tempo e soldi ...

    Questo è un fraintendimento, e spero proprio che non sia intenzionale. Nessuno sostiene che software meno critici vadano sviluppati senza professionalità. E che debba precisarlo proprio io o che si voglia intendere che io sostenga una cosa del genere è incredibile.

    Il punto è che - di nuovo, per l'ennesima volta - i progetti ad alta criticità richiedono investimenti molto maggiori in termini di validazione, controllo e processo. Non è una questione di "fare male tutti gli altri software", ma di riconoscere che non tutti richiedono lo stesso livello di rigore formale. Punto.

    04/04/2026 - Delphinium ha scritto:

    chi lavora con me (io compreso) deve sviluppare codice come se stesse lavorando ad una centrale nucleare. Sempre e comunque.

    Come principio ideale è molto bello, ma difficilmente sostenibile in termini pratici. Applicare sempre processi e costi da software critico renderebbe molti progetti non competitivi o economicamente insostenibili: nelle aziende, è normale bilanciare qualità, rischio e sostenibilità economica.

    Ironicamente, qui si parla di "vicende umane" parlando del trattamento che si riserva agli sviluppatori, e tu mi dici che un junior che lavora per te deve scrivere codice pensando di governare una centrale nucleare, rendendo il processo di sviluppo di quel software aziendalmente sostenibile: posso solo immaginare qual è il livello di stress (inutile, per quello che dicevo prima) che questo lavoratore deve sostenere qualora la tua affermazione fosse vera. :D

    04/04/2026 - Delphinium ha scritto:

    Inoltre, la conoscenza e l'esperienza sono fondamentali .. progettare / costruire un ponte deve essere "fatto" da chi lo sà fare non da chi lo può fare: così come programmare.

    Posso concordare che conoscenza ed esperienza abbiano tutto il loro valore, però questa affermazione detta così in realtà non dice nulla, ed è difficile essere in disaccordo, perché è come essere in disaccordo con chi fa campagna elettorale dicendo che abbasserà le tasse.

    Quindi, prescindendo dal principio sopra espresso che è lapalissiano, quello di cui non si vuole prendere atto e che (secondo me) è più che evidente già oggi, e lo diventerà ancora di più nelle prossime settimane, è che gli strumenti AI (uso il termine ombrello) stanno evolvendo tanto e molto rapidamente.

    E' notizia di oggi che Anthropic ha appena condiviso una preview del suo ultimo modello Mythos con i player tecnologici più grandi perché questo ha individuato più di un migliaio di vulnerabilità zero-day, alcune presenti anche da più di 20 anni, nei loro prodotti (incluso Linux, OpenBSD e tanti altri) in modo da correggerle tempestivamente prima di rilasciare il modello al pubblico evitando che malintenzionati approfittino dello strumento (con poche conoscenze richieste) per sfruttarle.

    Ecco, non penso che gli sviluppatori dei suddetti software siano degli "scappati di casa". Però è evidente la mano (anche se non ha le mani) che questi tool stanno dando, qual è il livello delle loro capacità e della qualità che è stata raggiunta, e quanto sono efficaci anche le contromisure per ridurre al minimo la percentuale di errore al punto che, se non tutti e non necessariamente poco esperti, è inevitabile (sempre secondo me, sempre in base a questi dati) che molti sviluppatori (esperti e non) dovranno lasciare il posto a questi tool (magari pure io, anzi molto probabile) a meno di non spostarsi a un livello più alto che però esclude l'attività mera di scrittura del codice, perché l'AI a oggi la fa molto bene (perfettamente, non è interessante), a costi bassi (rispetto alle persone) e molto più velocemente. Questa è la mia tesi.

  • Re: Vibe coding in Pascal

    @Alka, non è che facendo uno spezzatino di quello che si scrive si rende un servizio alla comunità. I concetti sono espressi su più frasi ... e magari la frase successiva esplica quella precedente.

    Comunque quello che scrivo lo faccio. E non ho notizia di alcuno che lavora / ha lavorato per me siano andati in cura per sindromi da stress o stress correlato.

    Vedi il problema è proprio quello che hai sottolineato una varietà di volte: il fatto che normative impongono certi canoni e quindi si seguono, mentre se non ci sono normative allora, E RIPETO, si pensa di poter lavorare alla carlona (non tu, su questo mi hai frainteso).

    Non deve funzionare così (e per me non funziona così). L'unica cosa che cambia sulla questione normativa è che la normativa và seguita alla lettera quando c'è, ma quando non c'è è necessario fare esattamente come se ci fosse. Poi, come ho ripetuto, non si pretende che tutto sia perfetto ... ma ciò è più una questione di stile che di sostanza.

    Vedi, il software che produco io và in giro per il mondo (sinora ha toccato tutti i continenti eccetto l'Oceania) e quindi capisci bene che se qualcosa non và (e si parla di industriale) e magari non c'è la teleassistenza disponibile ... bhè diciamo che sono tutti c...i miei (nulla di malizioso nei puntini, indicavo la parola "costi")

    Ecco, per questo il software che sviluppo deve essere come sviluppato per una centrale nucleare ... non deve fallire mai in nessuna occasione ... neanche se "tuona" la linea e la sostituiscono ... il software deve tornare a funzionare sempre e comunuque. Oltre a questo è una questione di principio comunque per me.

    Normativa: devo registrare il software e farlo testare al committente o ad un laboratorio certificato prima di "consegnarlo" ? Devo pagare una tassa di 1000,00 Euro ? Se la normativa me lo impone si, altrimenti no ... queste sono le differenze, ma non è che il software venga sviluppato in maniera diversa.

    Il software io lo firmo sempre, con dll e tutto il resto (anche per quelle di terze parti se ho il sorgente, e con il loro permesso esplicito) anche se non è ne necessario ne obbligatorio. Me lo impone la normativa ? Si, in alcune condizioni, in altre no ma lo faccio lo stesso.

  • Re: Vibe coding in Pascal

    Io trovo che ci sia una profonda e significativa differenza tra programmare con un linguaggio di programmazione e programmare con l'aiuto di un modello di LLM che genera codice.

    Nel tempo si e' passati dal linguaggio "binario" (c'e' un buco, non c'e' il buco), all'ottale/esadecimale, all' assembly (rappresentazione mnemonica delle istruzioni assembler invece della codifica ottale/esadecimale) ai linguaggi quali C (semplifica la scrittura del codice patendo da concetti a piu' alto livello), C++ o comunque linguaggi ad oggetti, linguaggi funzionali, ecc.

    Tutti questi livelli forniscono una rappresentazione "piu' astratta" MA "matematicamente/formalmente" ineccepibile. Il linguaggio ha una sintassi, una semantica univocamente definite. Sta' al "programmatore" imparare a destreggiarsi per usare i concetti del paradigma di programmazione per risolvere il problema in esame.

    Poi si e' passatti all'utilizzo di "framework" che forniscono un'infrastruttura NELLA QUALE il programmatore inserisce i suoi pezzettini.

    In tutti questi strati, e' responsabilita' del programmatore STUDIARE per CAPIRE come interagire correttamente con il corrispondente livello di astrazione.

    SE c'e' un problema, con un po' di pazienza puo' sempre SCENDERE al livello di astrazione infieriore e CAPIRE che cosa sta' succedendo per CAPIRE perche' la sua soluzione non funziona.

    Inoltre, si e' fatto un gran lavoro di affinamento delle tecniche di segnalazione degli errori che cercano di AIUTARE il programmatore a capire che cosa e' che non va.

    ---

    Ora, il successivo livello di astrazione consiste nei "generatori di codice", il cui compito e' generare codice in base ad una richiesta fatta "in linguaggio naturale" da parte del "AI programmatore".

    Primo problema che trovo difficile da digerire: l'uso del "linguaggio naturale". 
    Questo da l'illusione che CHIUNQUE, nel futuro, sapra' programmare.
    Ora TUTTI NOI sappiamo parlare, ma non per questo siamo tutti "politici", "attori", "conferenzieri", "White House Press Secretary".

    Mentre sbagliare un verbo, fare una battuta, dire una fesseria, anche involontaria, nella comunicazione verbale non e' un grande problema (per dire: "Un'intera civiltà morirà stanotte, per non essere mai più riportata in vita. Non voglio che accada, ma probabilmente succederà"), diventa DECISAMENTE un problema SE viene fatta una richiesta SBAGLIATA al generatore di codice.

    Uno protrebbe dire: ma e' ovvio che non funziona SE fai una richiesta sbagliata!.
    Ma uno come FA a sapere che a fatto una richiesta sbagliata?
    PRIMA deve fare la richiesta, POI deve vedere se il risultato e' quello previsto, E se non lo e' AVRA' IMPARATO che ha fatto una richiesta sbagliata.
    MA COME FA ad imparare a fare le richieste giuste?
    SOLO in base a prova ed errore????

    Secondo problema: il linguaggio naturale e' ALTAMENTE impreciso. La stessa parola puo' avere 2,3,4 significati diversi. Ovviamente non e' un problema se e' possibile identificare un SINGOLO significato. Ma se piu' significati sono validi? Quale verra' scelto?

    Ora, il generatore, per sua natura, GENERA, non sa che cosa, non sa perche', non sa in che contesto, MA qualcosa genera.
    SE si e' fortunati, il codice NON FUNZIONA. MA se si e' sfortunati, il codice SEMBRA FUNZIONARE.

    Di nuovo, SE si e' fortunati, non capitera' mai di rilevare il malfunzionamento. MA se si e' sfortunati, e per la legge di Murphy, quando qualcosa andra' male, lo fara facendo il peggior danno possibile.

    A questo punto il "AI programmatore" dovrebbe SCENDERE di un livello e iniziare ad analizzare il codice nel tentativo di "capire" che cavolo sta' succedendo. 
    E QUI casca l'asino. 
    Un programmatore della vecchia generazione, CON ESPERIENZA, con migliaia/milioni di linee di codice alle spalle, notti di progettazione software, ha gli strumenti CONCETTUALI per affrontare il problema, scendere di livello, analizzare quello che succede a quel livello, e risolverlo.

    Ma un "AI programmatore", che si e' sempre appoggiato all'uso del generatore di codice? 

    ---

    Naturalmente non sto pensando solo al "programmatore" che programma, ma anche al tecnico che deve preparare un script per installare un nodo di un'infrastruttura cloud. Vabbe, ma questo non lo considero programmare, ma scrivere script, e l'uso di un generatroe di codice potrebbe andare piu' che bene.

    ---

    In pratica si passa da "tecnici" ad "artisti" della parola.

    A mio avviso questi sistemi avranno "senso" SOLO quando ci sara' un metodo "deterministico" per fare le richieste "giuste".

    ---

    Mah! Boh! Chissa!

  • Re: Vibe coding in Pascal

    @migliorabile

     +1

    Concetto preciso a quello che volevo esprimere ... probabilmente non farò mai la "White House press secretary" ... :)

Devi accedere o registrarti per scrivere nel forum
38 risposte