Una volta per tutte una risposta ai detrattori di Access

di il
28 risposte

Una volta per tutte una risposta ai detrattori di Access

E' troppo tempo che sento critiche di programmatori che non conoscono quello di cui parlano, e quindi ho deciso di rispondere una volta per tutte.

https://www.fesoft.it/Holzl/index.php/articoli-tecnici/46-perche-ms-access-e-uno-straordinario-ambiente-di-sviluppo-moderno-oggi-quanto-ieri

ATTENZIONE 
NON si parla di Access come programma che lavora con un DB su un file condiviso.
Si parla di Access che lavora collegato via ODBC ad un Database Server, MYSQL, SQL Server ecc.

28 Risposte

  • Re: Una volta per tutte una risposta ai detrattori di Access

    Non so perché tu abbia postato questo messaggio (e relativo articolo sul tuo sIto…) ma sinceramente non se ne sentiva la mancanza…

    I confini di Access sono ben delimitati dalla produttività personale fino a quella di piccolissime realtà aziendali.

    Quello su cui non ti sei soffermato è:

    - non è un DBMS client server, ma con protocollo di accesso ai dati file oriented che lo rendono inservibile nella maggior parte delle situazioni 

    - non ha una gestione della sicurezza e delle autorizzazioni granulare degna di un DBMS

    - non ha una gestione affidabile nè ottimizzata dei dati al suo interno (anzi è soggetto a corruzione )

    E non parliamo di limiti di gestione dati, indici, relazioni, utenti, thread …

    Il VBA è comodo nel suo ambito ma è un linguaggio vecchio, i DBMS con le stored procedure (che Access non conosce) sono programmabili in modo più moderno ed efficace.

    Insomma è un prodotto che facilita l'uso dei dati in ambiti molto piccoli e poco controllati, ma non vorrai certo paragonarlo ad Oracle o Sql Server, spero!

  • Re: Una volta per tutte una risposta ai detrattori di Access

    Non so perché tu abbia postato questo messaggio (e relativo articolo sul tuo sIto…) ma sinceramente non se ne sentiva la mancanza…
    Semplicemente perchè se metto lo stesso post in più parti e c'è qualcosa da chiarire o correggere diventa ingestibile.
    Anche perchè non ho mai l'assoluta certezza di quello che dico, se trovo le argomentazioni convincenti le faccio mie e cambio il mio punto di vista.

    I confini di Access sono ben delimitati dalla produttività personale fino a quella di piccolissime realtà aziendali.
    Non è questione di dimensioni aziendali ma dimensioni del problema da gestire, se devi avere più di 15 clients contemporanei non è adatto ma dipende anche dal carico di lavoro contemporaneo previsto.

    - non è un DBMS client server, ma con protocollo di accesso ai dati file oriented che lo rendono inservibile nella maggior parte delle situazioni 
    Assolutamente no io lo uso quasi sempre come front-end con DB collegati in ODBC.

    - non ha una gestione della sicurezza e delle autorizzazioni granulare degna di un DBMS
    Perchè quella la fa il database server che sia Oracle / SQL Server / MYSQL / PostgreSQL ecc.

    - non ha una gestione affidabile nè ottimizzata dei dati al suo interno (anzi è soggetto a corruzione )
    Se lo gestisci con i dati su file il rischio esiste e lo gestisci col backup (come tutte le gestioni su file).
    Comunque di due piccoli DB che ho ancora su file (ma in integrità referenziale)  attivi dal 1992 (con backup automatico) usati continuamente ogni giorno, mai avuto un problema o perso un dato (anche con mancanze di corrente o altro).
    Ho avuto un caso circa 25 anni fa di un DB che si corrompeva continuamente per colpa di una famigerata scheda di rete Realtek che sparava pacchetti a gogo sulla rete (ma si parla della notte dei tempi).

    E non parliamo di limiti di gestione dati, indici, relazioni, utenti, thread …
    Ripeto non sono le competenze di Access, sono cose delegate al database server e lì usi quello che ti pare.

    Il VBA è comodo nel suo ambito ma è un linguaggio vecchio, i DBMS con le stored procedure (che Access non conosce) sono programmabili in modo più moderno ed efficace.
    Un linguaggio non ha età, anche perchè con i linguaggi ‘nuovi’ trovi pochi problemi già risolti.
    Peccato che le stored procedure come le stored function come altre cose dipendono totalmente dal DB su cui ti appoggi, se usi Oracle non sono quelle di SQL server ecc.
    Le rare volte che mi sono servite per motivi di performance le ho usate come descritto nell'articolo.
    Ma a oggi tutti i miei programmi (anche grossi) li faccio lavorare tranquillamente sui database server più diffusi.

    Insomma è un prodotto che facilita l'uso dei dati in ambiti molto piccoli e poco controllati, ma non vorrai certo paragonarlo ad Oracle o Sql Server, spero!
    Non posso paragonarlo perché Access lo uso come Front End, ed è quella la sua potenza e dall'altra parte ci metti il DB Server che preferisci.

  • Re: Una volta per tutte una risposta ai detrattori di Access

    29/12/2022 - oregon ha scritto:


    Insomma è un prodotto che facilita l'uso dei dati in ambiti molto piccoli e poco controllati, ma non vorrai certo paragonarlo ad Oracle o Sql Server, spero!

    Leggendo l'articolo per curiosità, trovo molte altre affermazioni che si possono considerare discutibili, o quantomeno delineano caratteristiche “positive” di Access come se fossero una sua prerogativa esclusiva, e non fossero presenti anche in miriadi di altri tool usati oggi giorno per lo sviluppo del software, a fianco di pattern e metodologie che in VBA risulterebbero del tutto inapplicabili e che sono un “must have” per determinate realtà di sviluppo, certo a meno che - come dice giustamente Oregon nel commento citato qui sopra - non si parli di una realtà molto ristretta, sia dal punto di vista del team del sviluppo ma anche dei requisiti del software da realizzare.

    Su altri ambiti invece, come quello dello sviluppo Web, emergono delle presunte “limitazioni” che non sono assolutamente più tali (il mondo dello sviluppo frontend e backend è talmente ricco di strumenti che è riduttivo prendere in esame PHP come caso emblematico che racchiude tutto), ed è palese che si tratti di un giudizio basato su una esperienza e conoscenza ristretta di questi strumenti; per esemplificare, pur usando PHP, vi sono librerie e framework blasonate con cui è possibile scrivere codice elegante e leggibile, nonché manutenibile, da un singolo sviluppatore o da un intero team, mantenendo separate le aree di grafica, business logic, accesso ai dati, interfacciamento a servizi e così via, e lo stesso vale per tanti altri linguaggi al confronto dei quali VBA può solo impallidire. Certo, sarà anche immediato, ma “arriva fino a lì” e non va oltre.

    Parlando poi della semplicità del debugging e risoluzione degli errori, anche in questo caso i pareri sono tutti in realtà esperienze dirette di chi ha scritto l'articolo verso un ambito di applicazioni molto specifiche e circostanziate, ricavate dalla propria esperienza in troubleshooting avendo a che fare con applicazioni VBA che, per loro natura, sono per forza limitate… Per esemplificare, io capisco il discorso “VBA è semplice, faccio progetti mirati per applicazioni verticalizzate su ambiti specifici, quindi in due minuti risolvo un problema”, ma in questo caso la velocità di risoluzione è strettamente legata alle dimensioni del progetto affiancate alla rudimentalità del linguaggio, ma non è uno scenario che si possa portare o proporre globalmente a qualsiasi cliente. Per fare un esempio, citando proprio il tema del debugging e gestione degli errori, è senz'altro molto più semplice e adatta a qualsiasi scenario, nonché molto più sicura, la gestione delle eccezioni offerta da qualsiasi linguaggio di programmazione esistente (ormai sono ovunque) rispetto alla farraginosa e inutilizzabile On Error Resume Next / Go To di VBA, che è ormai un retaggio del passato e, sebbene facile da comprendere, offre un supporto talmente limitato e limitante sulla gestione degli errori che senz'altro non può essere una cosa da prendere a modello come esempio né di immediatezza, né di efficacia né di modernità (visto che l'articolo vorrebbe porre Access sotto questa luce).

    In sintesi, credo di condividere l'articolo quando dice che Access è perfetto per creare applicazioni in due giornate, ma il punto è il motivo per cui ciò avviene: Access è adatto solo ed esclusivamente a quel tipo di applicazioni, ossia quelle che chiunque tirerebbe su in due giorni, e per le quali nonostante ciò userei comunque un IDE e una base dati diversa. :)

  • Re: Una volta per tutte una risposta ai detrattori di Access

    29/12/2022 - paoloholzl ha scritto:


    Non posso paragonarlo perché Access lo uso come Front End, ed è quella la sua potenza e dall'altra parte ci metti il DB Server che preferisci.

    A quel punto, se il database non è Access, al posto di Access come frontend posso usare qualsiasi altro ambiente e linguaggio, come Visual Studio o come Delphi, che sono indiscutibilmente più produttivi e più ricchi di Access, sia in termini di strumenti a disposizione (es. snippet di codice automatici, tool avanzati di refactoring, ecc.), sia in termini di ricchezza del linguaggio (VBA non è nemmeno OOP, mancano le eccezioni), sia per i framework che ho a disposizione (Windows Forms, WPF, ASP.NET, VCL, FMX), sia in termini di collaborazione eventuale con altri sviluppatori (es. uso di Git, SVN e altri sistemi per il controllo del codice sorgente), sia per la gamma di estensioni a disposizione, sia per i tool di debugging (che includono ispezioni più complete, possibilità di logging, finestre per valutazioni immediate, ecc.), a cui probabilmente si aggiungono una valanga di ulteriori aspetti tecnici (e non) che sto in questo momento tralasciando perché considero determinate feature talmente “naturali” per lo sviluppo del software dal non riuscire nemmeno a elencarle.

    Se lo prendiamo in considerazione invece come base dati per il nostro DB, qualunque requisito di base imprescindibile oggi nei sistemi software (che sia ridondanza, scalabilità, sicurezza, efficienza) di fatto non è applicabile ad Access per limiti fisici del database stesso: alla fine è un archivio “file based", nulla di più, nulla di meno.

    Se Access deve essere utilizzato meramente come tool di programmazione per costruire una interfaccia utente delegando la parte del DB a qualcuno che la sappia fare realmente (vedi Oracle, SQL Server, ecc.), a maggior ragione qualunque - e dico qualunque - ambiente di sviluppo esistente, che sia Visual Studio, Delphi, Eclipse, IntelliJ, WebStorm, Visual Studio Code e chi più ne ha più ne metta, offre funzionalità e potenzialità - anche gratuitamente - che nel prodotto Access non sono né minimamente né lontanamente presenti, sia nell'ambiente in sé sia nel linguaggio, e all'inizio ne ho citate solo alcune ma ve ne sono tantissime altre.

    Tutte le caratteristiche presentate come vantaggi nell'articolo sono in realtà le sue limitazioni: sebbene anche un programma Access su Windows possa diventare usabile ovunque via RDP, questa è una restrizione rispetto ad altre tecnologie, una forzatura, e se il cliente non la vuole (come nella maggior parte dei casi), tanto basta per decretare Access inutilizzabile in quel contesto, rispetto invece ad altri linguaggi e ambienti che, senza sforzo, supportano Web e mobile nativamente. I possibili pre-requisiti che rendono Access una soluzione inaffrontabile sono tantissimi.

    Poi va bene, si può dire che con Access puoi farci anche una applicazione, ma per tutti i motivi suindicati di certo si converrà che quantomeno non può essere considerato un tool moderno, e sfido chiunque altro a condividere questo parere con dati alla mano. :)

  • Re: Una volta per tutte una risposta ai detrattori di Access

    Non è questione di dimensioni aziendali ma dimensioni del problema da gestire, se devi avere più di 15 clients contemporanei non è adatto ma dipende anche dal carico di lavoro contemporaneo previsto.

    Le dimensioni aziendali implicano l'uso di più utenze su DBMS. E' ovvio che le specifiche del problema sono importanti ma ti assicuro che se una grande realtà (pubblica o privata) utilizza Oracle o Sql Server in maniera centralizzata e controllata per i suoi 1000 utenti, lo fa anche per programmi di uso più ristretto per non perdere il controllo del proprio installato. Se ci sono 3 utenti che vogliono usare Access, lo fanno da soli (come produttività personale).

    Assolutamente no io lo uso quasi sempre come front-end con DB collegati in ODBC.

    Quindi lo usi solo come “interfaccia” verso veri DBMS. Ma la questione è che le interfacce te le fai come meglio credi (con l'usabilità che decide l'utente) e quindi Access si rivela un limite. Se devi fare una cosa veloce e limitata allora va bene, ma la questione è che NON è un DBMS.

    Perchè quella la fa il database server che sia Oracle / SQL Server / MYSQL / PostgreSQL ecc.

    Ma appunto! Allora come vuoi che non ci siano detrattori di Access? Tu lo valuti solo per l'interfaccia (molto discutibile anche quella) ma la sua funzione principale di “gestore dei dati” non la tieni in considerazione, cosa su cui si manifestano la maggior parte dei commenti dei cosiddetti “detrattori” (e a ragione!)

    Se lo gestisci con i dati su file il rischio esiste e lo gestisci col backup (come tutte le gestioni su file).

    Ma tu pensi che una grande realtà si può permettere una corruzione al giorno dei propri dati? E rimetti il backup con dati vecchi senza problemi? Stai scherzando? Questa non è una soluzione ma una “pezza a colori” su una toppa enorme, 


    Comunque di due piccoli DB che ho ancora su file (ma in integrità referenziale)  attivi dal 1992 (con backup automatico) usati continuamente ogni giorno, mai avuto un problema o perso un dato (anche con mancanze di corrente o altro).

    Sei stato solo fortunato ma questo non fa di Access una scelta aziendale. Assolutamente no.

    Ripeto non sono le competenze di Access, sono cose delegate al database server e lì usi quello che ti pare.

    No, qui sbagli. La gestione dei DB con Jet è (o era) la principale caratteristica di Access (era il DBMS di Office) e quindi dire che utilizzi i DBMS professionali significa dire che da questo punto di vista Access non è utilizzabile. La comodità della sua interfaccia (ripeto, discutibile) è solo una tua esperienza ma non lo è per altri. E soprattutto è anche questa limitante in tanti casi.

    Un linquaggio non ha età, anche perchè con i linguaggi ‘nuovi’ trovi pochi problemi già risolti.

    Scusami, ma questa è una fesseria.


    Peccato che le store procedure come le stored function come altre cose dipendono totalmente dal DB su cui ti appoggi, se usi Oracle non sono quelle di SQL server ecc.

    Beh, ovvio, perché ne sfruttano al massimo la potenza e le caratteristiche proprie. Ma anche le query di Access hanno le proprie caratteristiche “fuori da ogni standard”.

    Ma a oggi tutti i miei programmi (anche grossi) li faccio lavorare tranquillamente sui database server più diffusi.

    Appunto. I DBMS che utilizzi sono altri non Access. Esattamente come dicono i “detrattori”.

    Se ti piace l'interfaccia bene ma, ripeto, non è sicuramente la migliore.

    Non posso paragonarlo perché Access lo uso come Front End, ed è quella la sua potenza e dall'altra parte ci metti il DB Server che preferisci.

    Ecco quindi devi dire che “per te” Access “usato come frontend” ha delle caratteristiche che giudichi positive.

    Ma i famosi “detrattori” hanno perfettamente ragione a obiettare quando si esce dall'utilizzo personale che si può fare del prodotto.

  • Re: Una volta per tutte una risposta ai detrattori di Access

    Poi va bene, si può dire che con Access puoi farci anche una applicazione, ma per tutti i motivi suindicati di certo si converrà che quantomeno non può essere considerato un tool moderno, e sfido chiunque altro a condividere questo parere con dati alla mano. :)

    Assolutamente d'accordo, diciamo pure che chi è abituato con “carta e penna” dice che sono la miglior soluzione possibile per un disegno ed ignora le applicazioni come un “CAD” ritenendo la scelta di “carta e penna” ingiustamente colpita dai “detrattori” :-)

    Sinceramente, e ovviamente senza offesa, io non avrei mai pubblicato un articolo del genere.

  • Re: Una volta per tutte una risposta ai detrattori di Access

    29/12/2022 - Alka ha scritto:


    29/12/2022 - oregon ha scritto:


    Insomma è un prodotto che facilita l'uso dei dati in ambiti molto piccoli e poco controllati, ma non vorrai certo paragonarlo ad Oracle o Sql Server, spero!

    Leggendo l'articolo per curiosità, trovo molte altre affermazioni che si possono considerare discutibili, o quantomeno delineano caratteristiche “positive” di Access come se fossero una sua prerogativa esclusiva, e non fossero presenti anche in miriadi di altri tool usati oggi giorno per lo sviluppo del software, a fianco di pattern e metodologie che in VBA risulterebbero del tutto inapplicabili e che sono un “must have” per determinate realtà di sviluppo, certo a meno che - come dice giustamente Oregon nel commento citato qui sopra - non si parli di una realtà molto ristretta, sia dal punto di vista del team del sviluppo ma anche dei requisiti del software da realizzare.

    Rispondo volentieri ad Alka abituato ad argomentare bene.

    Parlo proprio di una situazione molto ristretta dal punto di vista del team di sviluppo, una o due persone, tre al limite.
    I requisiti del software sono sempre stati soddisfatti sia in termini di stabilità che di velocità.
    Certamente come dico dempre su progetti con concorrenza sul DB piuttosto limitata (al massimo una quindicina di clients), DB massimo un paio di GB (più che abbastanza per la stragrande maggioranza delle piccole aziende italiane).

    Su altri ambiti invece, come quello dello sviluppo Web, emergono delle presunte “limitazioni” che non sono assolutamente più tali (il mondo dello sviluppo frontend e backend è talmente ricco di strumenti che è riduttivo prendere in esame PHP come caso emblematico che racchiude tutto), ed è palese che si tratti di un giudizio basato su una esperienza e conoscenza ristretta di questi strumenti; per esemplificare, pur usando PHP, vi sono librerie e framework blasonate con cui è possibile scrivere codice elegante e leggibile, nonché manutenibile, da un singolo sviluppatore o da un intero team, mantenendo separate le aree di grafica, business logic, accesso ai dati, interfacciamento a servizi e così via, e lo stesso vale per tanti altri linguaggi al confronto dei quali VBA può solo impallidire. Certo, sarà anche immediato, ma “arriva fino a lì” e non va oltre.

    Usare Access per sviluppare su Web è un controsenso, se hai bisogno di sviluppare su Web hai una montagna di strumenti diversi.
    Ce ne sono di davvero integrati ma sono costosissimi. Quelli gratuiti ciascuno ha dei suoi punti di forza ma vanno 'orchestrati', e comunque non ti danno mai la comodità del ‘monolito’ e anche il Web server va gestito e di solito dà più da lavorare che un Database Server.
    Come dicevo se devo lavorare sui Database Server uso DBeaver per cui uso Access per quello che sa fare bene.

    Parlando poi della semplicità del debugging e risoluzione degli errori, anche in questo caso i pareri sono tutti in realtà esperienze dirette di chi ha scritto l'articolo verso un ambito di applicazioni molto specifiche e circostanziate, ricavate dalla propria esperienza in troubleshooting avendo a che fare con applicazioni VBA che, per loro natura, sono per forza limitate…

    Il problema esisterebbe se ti trovassi limitato ‘troppo’, se in tutti questi anni non mi sono mai scontrato con limitazioni oltretutto la limitazione per certi versi è anche semplificazione.

     Per esemplificare, io capisco il discorso “VBA è semplice, faccio progetti mirati per applicazioni verticalizzate su ambiti specifici, quindi in due minuti risolvo un problema”, ma in questo caso la velocità di risoluzione è strettamente legata alle dimensioni del progetto affiancate alla rudimentalità del linguaggio, ma non è uno scenario che si possa portare o proporre globalmente a qualsiasi cliente.

    Evidentemente, è proprio il progetto che determina l'usabilità dello strumento.
    Se devi gestire delle macchine a controllo numerico non usi Access, così come se devi fare un sito Web, ma per gestire un gestionale anche complesso (400 e più tabelle) non ti trovi assolutamente limitato, ti posso mostrare decine e decine di software vastissimi, dal controllo di gestione, medicina dello sport, medicina del lavoro, tracciamento alimentare e tanti altri progetti vasti e stabili.

     Per fare un esempio, citando proprio il tema del debugging e gestione degli errori, è senz'altro molto più semplice e adatta a qualsiasi scenario, nonché molto più sicura, la gestione delle eccezioni offerta da qualsiasi linguaggio di programmazione esistente (ormai sono ovunque) rispetto alla farraginosa e inutilizzabile On Error Resume Next / Go To di VBA

    In un mio programma di migliaia e migliaia righe di codice difficilmente inconti un GoTo e le variabili sono sempre forzate in dichiarazione esplicita.
    La gestione degli errori in modalità connessa non è più così rilevante, lato DB ci pensa il DB server con le logiche relazionali che hai impostato.
    Se una chiave è doppia interviene direttamente il DB ad esempio.
    Lato client esce praticamente solo se hai fatto un errore nel codice i form controllano già di loro l'input con le regole impostate.

    In sintesi, credo di condividere l'articolo quando dice che Access è perfetto per creare applicazioni in due giornate, ma il punto è il motivo per cui ciò avviene: Access è adatto solo ed esclusivamente a quel tipo di applicazioni, ossia quelle che chiunque tirerebbe su in due giorni, e per le quali nonostante ciò userei comunque un IDE e una base dati diversa. :)

    La base dati di Access su file non va usata se non per programmi limitatissimi per uno o due utenti.
    Inutile tirare su un database server e gestirlo per un programma con quattro form che genera tre stampati da un unico posto di lavoro.
    Parlo di Access che lavora connesso ad un database server, qualsiasi esso sia.

  • Re: Una volta per tutte una risposta ai detrattori di Access

    29/12/2022 - Alka ha scritto:


    29/12/2022 - paoloholzl ha scritto:


    Non posso paragonarlo perché Access lo uso come Front End, ed è quella la sua potenza e dall'altra parte ci metti il DB Server che preferisci.

    A quel punto, se il database non è Access, al posto di Access come frontend posso usare qualsiasi altro ambiente e linguaggio, come Visual Studio o come Delphi, che sono indiscutibilmente più produttivi e più ricchi di Access, sia in termini di strumenti a disposizione (es. snippet di codice automatici, tool avanzati di refactoring, ecc.), sia in termini di ricchezza del linguaggio (VBA non è nemmeno OOP, mancano le eccezioni), sia per i framework che ho a disposizione (Windows Forms, WPF, ASP.NET, VCL, FMX), sia in termini di collaborazione eventuale con altri sviluppatori (es. uso di Git, SVN e altri sistemi per il controllo del codice sorgente), sia per la gamma di estensioni a disposizione, sia per i tool di debugging (che includono ispezioni più complete, possibilità di logging, finestre per valutazioni immediate, ecc.), a cui probabilmente si aggiungono una valanga di ulteriori aspetti tecnici (e non) che sto in questo momento tralasciando perché considero determinate feature talmente “naturali” per lo sviluppo del software dal non riuscire nemmeno a elencarle.

    Certamente, ma quanto ti costano? Prendiamo ad esempio Delphi (amavo il Turbo Pascal) mica te lo regalano, e se devi comporre dei reports, ok mi dirai coi sono tanti tools da aggregare. Quindi hai il Debug del programma e quello del Tool, hai più cose che devono coesistere.
    Ma per quello che ti occorre per lo sviluppo di un gestionale fa tante tante cose … che non ti occorrono.

    Se lo prendiamo in considerazione invece come base dati per il nostro DB, qualunque requisito di base imprescindibile oggi nei sistemi software (che sia ridondanza, scalabilità, sicurezza, efficienza) di fatto non è applicabile ad Access per limiti fisici del database stesso: alla fine è un archivio “file based", nulla di più, nulla di meno.

    Ripeto non parlo di Access per l'uso di file archivio, non puoi fare gestionali in multiutenza importanti senza un DB server.

    Se Access deve essere utilizzato meramente come tool di programmazione per costruire una interfaccia utente delegando la parte del DB a qualcuno che la sappia fare realmente (vedi Oracle, SQL Server, ecc.), a maggior ragione qualunque - e dico qualunque - ambiente di sviluppo esistente, che sia Visual Studio, Delphi, Eclipse, IntelliJ, WebStorm, Visual Studio Code e chi più ne ha più ne metta, offre funzionalità e potenzialità - anche gratuitamente - che nel prodotto Access non sono né minimamente né lontanamente presenti

    Ok installi venti cose diverse, te le studi, te le aggiorni, per poi scoprire che quelle che ti servivano davvero ce le avevi già in un monolito da meno di 200 euro ...

    Tutte le caratteristiche presentate come vantaggi nell'articolo sono in realtà le sue limitazioni: sebbene anche un programma Access su Windows possa diventare usabile ovunque via RDP, questa è una restrizione rispetto ad altre tecnologie, una forzatura, e se il cliente non la vuole (come nella maggior parte dei casi), tanto basta per decretare Access inutilizzabile in quel contesto

    Infatti è così, come se non vuole una macchina Linux o non vuole un Database Server.
    Se non vuole un Database Server o vuole farsi fare un programma di medicina generale appoggiato su un file condiviso dico (come ho già fatto) che se lo faccia fare da qualcun altro. 

    , rispetto invece ad altri linguaggi e ambienti che, senza sforzo, supportano Web e mobile nativamente. I possibili pre-requisiti che rendono Access una soluzione inaffrontabile sono tantissimi.

    Come dico e ripeto parlo di Access come front-end per un gestionale connesso ad un DB server.

    Poi va bene, si può dire che con Access puoi farci anche una applicazione, ma per tutti i motivi suindicati di certo si converrà che quantomeno non può essere considerato un tool moderno, e sfido chiunque altro a condividere questo parere con dati alla mano. :)

    Quanto un tool con il minimo di risorse ti permette di centrare l'obbiettivo di una soluzione scalabile connessa, debuggabile stabile in rete locale per progetti gestionali su sistemi operativi recenti, a mio parere è un tool moderno.

    Uno mi può anche dire che un drone ti falcia i capelli, il drone è sicuramente più moderno delle forbici, ma per dare un giudizio bisogna confrontare i risultati   ;-)

  • Re: Una volta per tutte una risposta ai detrattori di Access

    29/12/2022 - oregon ha scritto:


    Non è questione di dimensioni aziendali ma dimensioni del problema da gestire, se devi avere più di 15 clients contemporanei non è adatto ma dipende anche dal carico di lavoro contemporaneo previsto.

    Le dimensioni aziendali implicano l'uso di più utenze su DBMS. E' ovvio che le specifiche del problema sono importanti ma ti assicuro che se una grande realtà (pubblica o privata) utilizza Oracle o Sql Server in maniera centralizzata e controllata per i suoi 1000 utenti, lo fa anche per programmi di uso più ristretto per non perdere il controllo del proprio installato. Se ci sono 3 utenti che vogliono usare Access, lo fanno da soli (come produttività personale).

    Se hai un azienda strutturata ti fai installare il DB sul DB Server che hanno, ho programmi sul DB Oracle per quello.

    Assolutamente no io lo uso quasi sempre come front-end con DB collegati in ODBC.

    Quindi lo usi solo come “interfaccia” verso veri DBMS. Ma la questione è che le interfacce te le fai come meglio credi (con l'usabilità che decide l'utente) e quindi Access si rivela un limite. 

    Perchè mai dovrebbe esserlo, non ho mai visto un utente personalizzarsi l'interfaccia anche quando poteva farlo.

    Perchè quella la fa il database server che sia Oracle / SQL Server / MYSQL / PostgreSQL ecc.

    Ma appunto! Allora come vuoi che non ci siano detrattori di Access? Tu lo valuti solo per l'interfaccia (molto discutibile anche quella) ma la sua funzione principale di “gestore dei dati” non la tieni in considerazione, cosa su cui si manifestano la maggior parte dei commenti dei cosiddetti “detrattori” (e a ragione!)

    Ok quindi la maggioranza dei detrattori parlano di ciò che non uso di Access da 20 anni per progetti di una certa consistenza.
    Poi se ti fai il DB dei CD che hai in casa in monoutenza, decidi tu se mettere su un Database Server, forse anche il DB su file avrebbe un senso.

    Se lo gestisci con i dati su file il rischio esiste e lo gestisci col backup (come tutte le gestioni su file).

    Ma tu pensi che una grande realtà si può permettere una corruzione al giorno dei propri dati? E rimetti il backup con dati vecchi senza problemi? Stai scherzando? Questa non è una soluzione ma una “pezza a colori” su una toppa enorme, 

    Forse non hai capito parlo di un DB su file (il famoso elenco dei tuoi CD) dove anche la corruzione la tolleri e torni al backup.
    E se hai letto bene l'articolo parlo di una cosa di più di 20 anni fa dove Access era ben diverso.


    Comunque di due piccoli DB che ho ancora su file (ma in integrità referenziale)  attivi dal 1992 (con backup automatico) usati continuamente ogni giorno, mai avuto un problema o perso un dato (anche con mancanze di corrente o altro).

    Sei stato solo fortunato ma questo non fa di Access una scelta aziendale. Assolutamente no.

    Infatti nessuna azienda in multiutenza ha da anni DB su file.

    Ripeto non sono le competenze di Access, sono cose delegate al database server e lì usi quello che ti pare.

    No, qui sbagli. La gestione dei DB con Jet è (o era) la principale caratteristica di Access (era il DBMS di Office) e quindi dire che utilizzi i DBMS professionali significa dire che da questo punto di vista Access non è utilizzabile. La comodità della sua interfaccia (ripeto, discutibile) è solo una tua esperienza ma non lo è per altri. E soprattutto è anche questa limitante in tanti casi.

    Vedi sopra.

    Un linquaggio non ha età, anche perchè con i linguaggi ‘nuovi’ trovi pochi problemi già risolti.

    Scusami, ma questa è una fesseria.

    Ok allora trovami una procedura per la creazione del codice fiscale scritta in Kotlin.


    Peccato che le store procedure come le stored function come altre cose dipendono totalmente dal DB su cui ti appoggi, se usi Oracle non sono quelle di SQL server ecc.

    Beh, ovvio, perché ne sfruttano al massimo la potenza e le caratteristiche proprie. Ma anche le query di Access hanno le proprie caratteristiche “fuori da ogni standard”.

    Certamente ma a parte le PassThrou dove puoi usare l'ANSI Standard, se usi le sue QUERY ci pensa l'ODBC a convertire.
    Non per niente i mie programmi passano da un DB all'altro senza problemi.

    Ma a oggi tutti i miei programmi (anche grossi) li faccio lavorare tranquillamente sui database server più diffusi.

    Appunto. I DBMS che utilizzi sono altri non Access. Esattamente come dicono i “detrattori”.

    Se ti piace l'interfaccia bene ma, ripeto, non è sicuramente la migliore.

    Mai detto che sia la migliore.
    Dal mio punto di vista è la migliore come prezzo / prestazioni e sicuramente non mi ha mai dato troppe limitazioni da dover cambiare strumento.

    Non posso paragonarlo perché Access lo uso come Front End, ed è quella la sua potenza e dall'altra parte ci metti il DB Server che preferisci.

    Ecco quindi devi dire che “per te” Access “usato come frontend” ha delle caratteristiche che giudichi positive.

    Ma i famosi “detrattori” hanno perfettamente ragione a obiettare quando si esce dall'utilizzo personale che si può fare del prodotto.

    I progetti vanno valutati sugli obiettivi raggiunti o no, sulle risorse spese per raggiungerli, sulla stabilità della soluzione.
    Con tutti i progetti che ho sviluppato con Access non è mai successo che non sia arrivato al risultato e i programmi ancora in usa lavorano da decenni.
    Se scazzi l'analisi puoi usare il tool più bello al mondo che al risultato non ci arrivi.

  • Re: Una volta per tutte una risposta ai detrattori di Access

    29/12/2022 - oregon ha scritto:


    Poi va bene, si può dire che con Access puoi farci anche una applicazione, ma per tutti i motivi suindicati di certo si converrà che quantomeno non può essere considerato un tool moderno, e sfido chiunque altro a condividere questo parere con dati alla mano. :)

    Assolutamente d'accordo, diciamo pure che chi è abituato con “carta e penna” dice che sono la miglior soluzione possibile per un disegno ed ignora le applicazioni come un “CAD” ritenendo la scelta di “carta e penna” ingiustamente colpita dai “detrattori” :-)

    Sinceramente, e ovviamente senza offesa, io non avrei mai pubblicato un articolo del genere.

    Credi che non sapessi che con l'articolo avrei suscitato un vespaio?
    Te lo dico da sostenitore Linux e Open Source molto più di quanto ti aspetti.
    Invece scaturirà un thread molto interessante (e questo non è l'unico).
    Come informatici siamo troppo abituati a ragionare sulle tecnologie, tutte le aziende serie lavorano sulle tecnologie in relazione agli obiettivi e alle risorse.

  • Re: Una volta per tutte una risposta ai detrattori di Access

    29/12/2022 - paoloholzl ha scritto:


    Ok allora trovami una procedura per la creazione del codice fiscale scritta in Kotlin.

    https://gist.github.com/DVDAndroid/7e4214fa92126dcae1c10c844c978baa

    Primo risultato su Google. Testato e funziona 

  • Re: Una volta per tutte una risposta ai detrattori di Access

    A parte questo

    https://gist.github.com/DVDAndroid/7e4214fa92126dcae1c10c844c978baa

    non è quello che intendevo. Un linguaggio moderno ha caratteristiche ben precise che lo differenziano da altri che si possono definire vecchi. E non dipende dal codice d'esempio disponibile, a crearlo ci pensano i programmatori (anzi più vecchio è più trovi esempi).

    Ma affermare che non esistono linguaggi obsoleti confermo che è una fesseria.

    Comunque vedo che non mi hai capito.

    Quello che volevo dire sull'argomento l'ho detto, Access non è affatto una scelta che l'IT dove lavoro io tiene in considerazione se non per piccole procedure limitate e non critiche. Per il resto interfacce fatte su misura con strumenti moderni e DBMS affidabili.   

    A me non piace partecipare a discussioni stile guerre di religione anche se questa non lo è dato che non esiste partita, ma in ogni caso non ho altro da aggiungere. Buon lavoro.

  • Re: Una volta per tutte una risposta ai detrattori di Access

    Secondo me la questione è legata a cosa si stia usando di Access.

    Spesso, quando si parla di Access, si pensa prima di tutto alla parte database. In realtà Access consente anche di sviluppare la parte di frontend. In pratica, volendo proprio esasperare la cosa, Access potrebbe essere visto come un IDE per piccoli smanettoni, che magari di sviluppo ci capiscono anche poco.

    Da questo punto di vista non vedo male il post di Paolo: un utente privo (o quasi) di nozioni legate allo sviluppo software ma che sappia maneggiare un computer, con Access può farsi delle piccole applicazioni che funzionano benissimo.

    Ovvio, come lui stesso ha ammesso, qualora ci fossero più utenti a dover lavorare in contemporanea, di fatto della parte Access si tengono solo le interfacce grafiche e quel minimo di business logic che si può fare con VBA. Le tabelle si affidano a dei motori RDBMS veri e propri e su Access li si linkano solo.

    Messo sotto questo aspetto, Access ha ancora il suo senso e il suo perchè. Se so usare il computer e voglio fare la gestione della rubrica aziendale (solo come esempio), perchè impazzire ad imparare la programmazione ad oggetti, un linguaggio (Java o C# a prescindere) e tutte le librerie di base per l'accesso ai dati? Si fa molto prima ad usare Access e fare l'app con il solo uso del mouse.

    Pertanto non possiamo paragonare Access a strumenti/linguaggi/RDBMS più completi (e complessi)… Però non possiamo nemmeno nascondere che per certe piccole applicazioni Access vada benissimo 

  • Re: Una volta per tutte una risposta ai detrattori di Access

    Vado per punti, ma direi che non ho molto da aggiungere rispetto a quanto già detto nelle risposte precedenti.

    29/12/2022 - paoloholzl ha scritto:


    Parlo proprio di una situazione molto ristretta dal punto di vista del team di sviluppo, una o due persone, tre al limite.

    Anche se io lavorassi da solo, per me (come per tanti ISV) l'uso di un sistema di versioning (es. Git, SVN o altro) sarebbe indispensabile per mantenere una storia delle modifiche apportate al software, soprattutto in fase di segnalazione e risoluzione di un bug.

    Access non mi consente di usarlo, poiché il codice sorgente finisce in un file binario, per giunta omnicomprensivo. Non va bene.

    29/12/2022 - paoloholzl ha scritto:


    I requisiti del software sono sempre stati soddisfatti sia in termini di stabilità che di velocità.
    Certamente come dico dempre su progetti con concorrenza sul DB piuttosto limitata (al massimo una quindicina di clients), DB massimo un paio di GB (più che abbastanza per la stragrande maggioranza delle piccole aziende italiane).

    Come già detto, Access è un database “file based”: se usato per frontend, ci sono alternative migliori, mentre come DB è sufficiente che debba servire due postazioni mettendo l'archivio in rete e disponga di una singola tabella nella quale si trovino - diciamo - qualche migliaia di record: all'esecuzione di ogni query vi sarà un'attesa lunga e ingiustificata, dovuta al passaggio in rete di tutti i dati dei record della tabella affinché il client autonomamente individui quelli che soddisfano una determinata ricerca.

    Ergo, è inefficiente (lento), poco sicuro (i dati viaggiano in rete in chiaro e non c'è gestione utenti), non ottimale.

    I requisiti sono sempre stati soddisfatti poiché probabilmente provengono da una clientela che non ha mai richiesto nulla di più non avendo evidentemente valutato o saggiato le enormi differenze che ci sono nell'uso di altre interfacce utente - nel caso dell'uso come frontend - o come base di dati.

    29/12/2022 - paoloholzl ha scritto:


    Usare Access per sviluppare su Web è un controsenso, se hai bisogno di sviluppare su Web hai una montagna di strumenti diversi.

    Lo sviluppo di applicazioni Web e di API (REST, GraphQL, ecc.), o di architetture a microservizi, o di architetture su cloud, a oggi non è più una richiesta così fuori dal mondo: prendiamo atto che Access, in qualità di tool moderno, oltre a essere inutilizzabile in questi contesti (sia come frontend che come DB) si presenta addirittura come un “controsenso”.

    29/12/2022 - paoloholzl ha scritto:


    Ce ne sono di davvero integrati ma sono costosissimi. Quelli gratuiti ciascuno ha dei suoi punti di forza ma vanno 'orchestrati', e comunque non ti danno mai la comodità del ‘monolito’ e anche il Web server va gestito e di solito dà più da lavorare che un Database Server.

    Io sviluppo su Web prevalentemente con linguaggi gratuiti, open-source, che si installano con un banale setup e consentono di creare progetti con un clic o una singola istruzione a riga di comando.

    Il comando del monolito l'ho ottengo - se mi occorre - con altre tecnologie: ad esempio, con Delphi posso incapsulare una applicazione Web in un singolo eseguibile nativo (per Windows, ma anche crossplatform a oggi) che non necessita nemmeno di installazione, ma va solamente lanciato.

    Altre soluzioni sono accessibili con linguaggi di scripting che nascono apposta per queste necessità, un altro “stile” di scrivere applicazioni che con Access non sono viabili (VBA non è un linguaggio di scripting, o quantomeno non lo è tanto quanto JavaScript o Python).

    29/12/2022 - paoloholzl ha scritto:


    Il problema esisterebbe se ti trovassi limitato ‘troppo’, se in tutti questi anni non mi sono mai scontrato con limitazioni oltretutto la limitazione per certi versi è anche semplificazione.

    Non sono stato chiaro, ma la questione è proprio questa: il problema esiste in quanto mi trovo limitato troppo.

    Non sarei in grado di produrre con Access il 90% delle soluzioni che mi vengono richieste, e avrei per il restante 10% alternative più valide e produttive per realizzare la stessa cosa più velocemente, con meno sforzo, in modo più manutenibile.

    Ripeto, *non* sono un “assemblatore di istruzioni” orientate a portare su maschere il contenuto di tabelle dati, ma mi occupo di ingegneria del software e lavoro con strumenti (vedi version control), collaboratori (anche occasionali), metodologie (es. unit testing), pattern, CI/CD e così via, e tutto ciò che l'industria di sviluppo di software a regola d'arte richiede oggi giorno, con le relative competenze necessarie, e Access non fornisce supporto (nemmeno limitato) a una sola che sia una di queste prerogative.

    29/12/2022 - paoloholzl ha scritto:


    In un mio programma di migliaia e migliaia righe di codice difficilmente inconti un GoTo e le variabili sono sempre forzate in dichiarazione esplicita.
    La gestione degli errori in modalità connessa non è più così rilevante, lato DB ci pensa il DB server con le logiche relazionali che hai impostato.
    Se una chiave è doppia interviene direttamente il DB ad esempio.
    Lato client esce praticamente solo se hai fatto un errore nel codice i form controllano già di loro l'input con le regole impostate.

    Anche qui, ripeto: la business logic che io scrivo non è solo quella che esegue una query con l'obiettivo di vedere qualcosa su una maschera, o che espone una tabella alla maschera per l'inserimento guidato di record… io devo lavorare con il file system, caricare file voluminosi, eseguire il parsing di tracciati CSV e configurazioni in formato JSON, suddividere in entità a oggetti dati e strutture complesse in memoria, produrre (da codice) documenti in formato PDF/A per l'archiviazione, contattare un servizio REST remoto, invocare un Web Service tramite SOAP, interagire con un plugin da attivare dinamicamente in base al cliente di riferimento e così via, solo per elencare alcuni scenari.

    Se non hai errori da gestire è perché non hai logica all'interno del programma che faccia poco di più che visualizzare delle maschere agganciate alla base dati; in caso contrario, il programma è per forza di cose “error prone” è la fallibilità di qualsiasi passaggio logico, che può anche non essere per forza un “errore” propriamente detto e potrebbe non dipendere solo dall'input dell'utente, all'interno dell'ambiente Access si traduce nella creazione di un condizione di errore (oggetto Error) che di fatto pone due strade: debuggare (se hai Access e sei lo sviluppatore) o terminare l'applicazione. Di nuovo, nessuna resilienza, nessuna robustezza, totalmente inadeguato alla maggior parte degli scenari che non siano l'editing dei dati di una tabella.

    29/12/2022 - paoloholzl ha scritto:


    La base dati di Access su file non va usata se non per programmi limitatissimi per uno o due utenti.

    Appunto. E in quel caso, a oggi sceglierei una alternativa più standard e più portabile, ossia SQLite, sviluppando l'interfaccia con un tool di sviluppo - es. Delphi - che non ha bisogno di distribuire alcun runtime a corredo del file eseguibile, che assieme al DB è in grado di supportare nativamente già di suo tutte le piattaforme esistenti e non solo Windows.

    Certo, magari non mi interessa approdare su altre piattaforme, ma il fatto di poterlo fare è una strada viabile e aperta a sviluppi futuri che costituisce un punto di forza tale per cui mi conviene investire in quelle tecnologie, piuttosto che rimanere su Access.

    29/12/2022 - paoloholzl ha scritto:


    Certamente, ma quanto ti costano? Prendiamo ad esempio Delphi (amavo il Turbo Pascal) mica te lo regalano, e se devi comporre dei reports, ok mi dirai coi sono tanti tools da aggregare. Quindi hai il Debug del programma e quello del Tool, hai più cose che devono coesistere.
    Ma per quello che ti occorre per lo sviluppo di un gestionale fa tante tante cose … che non ti occorrono.

    Nemmeno Access è gratuito, mi risulta. In ogni caso, sebbene esista comunque una versione gratuita (Community) di Delphi che consente lo sviluppo di applicazioni anche commerciali, l'investimento è giustificato dalla produttività che si ottiene nei tempi rapidi di prototipazione visuale e produzione del programma in sé, che peraltro è un eseguibile nativo e non un file da aprire con un tool (Access).

    Non ci sono cose che devono “coesistere”: se devo scrivere un programma, uso un linguaggio di programmazione e un ambiente che mi consenta di progettarlo visualmente, implementarlo dal punto di vista logico e anche testarlo, quindi mi aspetto che fornisca “built-in” tutti gli strumenti necessari a svolgere questa attività, dal reperimento del codice da un repository pubblico/privato, alla definizione della GUI, alla modellazione delle strutture dati in memoria usando OOP e altri pattern, all'esecuzione e test del programma stesso e degli eventuali test logici implementati, fino alla successiva ripubblicazione delle modifiche apportate al software stesso per rendere disponibile le modifiche al team o al “me stesso del futuro”.

    Si chiama ALM (Application Lifecycle Management), o più semplicemente ciclo di vita del software.

    29/12/2022 - paoloholzl ha scritto:


    Ok installi venti cose diverse, te le studi, te le aggiorni, per poi scoprire che quelle che ti servivano davvero ce le avevi già in un monolito da meno di 200 euro ...

    Non installo venti cose diverse, ma quelle che servono per il lavoro che devo svolgere, ciascuna orientata a perseguire il proprio obiettivo, perché mi servono per progettare, scrivere, disegnare e testare il software richiesto dal cliente e che, conoscendole a fondo, so benissimo che nel monolito da pochi euro che è Access non c'è nulla di tutto ciò, spesso nemmeno una minima parte.

    Inoltre, si tratta di un'attività “una tantum”, che non deve necessariamente essere ripetuta per tutti i progetti ma eseguita una volta sola predisponendo la macchina di sviluppo per svolgere il proprio compito.

    29/12/2022 - paoloholzl ha scritto:


    Se non vuole un Database Server o vuole farsi fare un programma di medicina generale appoggiato su un file condiviso dico (come ho già fatto) che se lo faccia fare da qualcun altro. 

    Credo debba essere chiaro che sia commercialmente sia tecnicamente, questo principio lo ritengo molto sbagliato.

    Sono uno sviluppatore software e non posso dire a un cliente che ha un esigenza di arrangiarsi perché quello che mi chiede voglio farlo per forza con Access e i requisiti del cliente non mi permettono di farlo.

    Certo, se mi viene richiesto di sviluppare una app nativa per dispositivi iOS e magari non ho una esperienza specifica in merito, posso dire al cliente di cercare un programmatore più “skillato” per quella esigenza, ma quando i requisiti sono oltremodo generici e soprattutto vi sono soluzioni più efficaci per uno specifico problema, voler piegarli ad essere compatibili con i demand di Access è parecchio limitante.

    E' il classico caso del modo di dire nel quale si vogliono vedere chiodi ovunque avendo a disposizione un martello e volendo usare solo quello. :)

    29/12/2022 - paoloholzl ha scritto:


    Quanto un tool con il minimo di risorse ti permette di centrare l'obbiettivo di una soluzione scalabile connessa, debuggabile stabile in rete locale per progetti gestionali su sistemi operativi recenti, a mio parere è un tool moderno.

    Access non subisce cambiamenti di rilievo da almeno 20 anni, un periodo che informaticamente parlando costituisce un'era geologica, e questo è un chiaro ed evidente segnale che non viene considerato una risorsa strategica da parte di Microsoft per affrontare le sfide del futuro, le quali prevedono scenari nei quali anche per la stessa casa madre questo tool non può trovare posto assolutamente.

    In termini di scalabilità, di certo non lo è affatto, né orizzontalmente né verticalmente.

    Avendo un linguaggio di programmazione, dire che è “debuggabile” mi pare sia il minimo, anche perché in caso di errori a runtime il debug o l'interruzione brusca del programma sono le uniche alternative possibili.

    L'uso in rete locale potrà anche essere stabile, ma è lentissimo perché fa viaggiare tutti i dati sulla rete, che essendo pure “intercettabili” non sarebbe probabilmente compliant nemmeno con alcune restrizioni rigide del GDPR in alcuni contesti aziendali, intesi quelli che fanno le cose con un minimo di serietà. Access va bene per una macchina e per un utente, in locale.

    Più che un tool moderno, diciamo che Access è un software legacy che - per grazia ricevuta - rimane ancora usabile per una gamma molto ristretta di progetti e scenari.

    29/12/2022 - paoloholzl ha scritto:


    Ok quindi la maggioranza dei detrattori parlano di ciò che non uso di Access da 20 anni per progetti di una certa consistenza.

    I detrattori parlano con cognizione di causa confrontando Access con altri tool di programmazione e storage di dati con i quali sono entrati in contatto e di cui hanno fatto la conoscenza, e grazie a questo possono fare un confronto alla pari e comprendere appieno quello che manca in Access e che invece è presente in altri tool, e perché quindi conviene maggiormente investire negli altri, cosa che invece non è possibile se lo stesso confronto lo fa un professionista che usa solo e soltanto Access e non ha mai utilizzato altri strumenti all'infuori di esso, o quantomeno non gli strumenti con cui Access viene confrontato, o che intrattiene contatti e rapporti lavorativi con clienti le cui necessita sono strettamente limitate alla richiesta di applicazioni Access.

    29/12/2022 - paoloholzl ha scritto:


    Ok allora trovami una procedura per la creazione del codice fiscale scritta in Kotlin.

    La richiesta in sé non ha molto senso, ma - senza conoscere Kotlin in alcun modo - la procedura esiste eccome. :D

    E se non esistesse, basterebbe tradurla in Kotlin da una delle tante implementazioni esistenti in altri linguaggi, col vantaggio che da quella traduzione sarebbe possibile realizzare una app mobile crossplatform e adatta a tutti i device in grado di generare un codice fiscale, mentre lo stesso codice esistente da decenni per VBA non consentirebbe di fare comunque la stessa cosa in Access, che rimarrebbe limitato al supporto desktop per Windows in ambito locale e basta.

    Il problema è che, con tutti i milioni di device mobili (smartphone, tablet, ecc.) che vengono venduti, è un tool moderno quello che consente di approdare su queste piattaforme, magari riscrivendo un pezzettino di codice, e non quello che con codice vecchio di anni continua a non offrire supporto per le piattaforme e le tecnologie emergenti.

    29/12/2022 - paoloholzl ha scritto:


    Dal mio punto di vista è la migliore come prezzo / prestazioni e sicuramente non mi ha mai dato troppe limitazioni da dover cambiare strumento.

    Se non ne hai mai viste né provate altre perché “rimbalzi” i clienti che fanno richieste non realizzabili con Access, per forza non devi cambiare strumento: nessuno si sente mai obbligato a fare ciò che non vuole assolutamente fare a prescindere. :)

    29/12/2022 - paoloholzl ha scritto:


    I progetti vanno valutati sugli obiettivi raggiunti o no, sulle risorse spese per raggiungerli, sulla stabilità della soluzione.
    Con tutti i progetti che ho sviluppato con Access non è mai successo che non sia arrivato al risultato e i programmi ancora in usa lavorano da decenni.
    Se scazzi l'analisi puoi usare il tool più bello al mondo che al risultato non ci arrivi.

    Anche io ho sviluppato in Access diverse procedure che sono ancora funzionanti, ma non significa nulla: il punto - è obbligatorio ribadirlo ancora una volta - è che il software richiesto oggi giorno a società di consulenza e a sviluppatori è in larga parte totalmente fuori dalle potenzialità di questo tool, e la maggior parte degli sviluppatori che sono “detrattori di Access” lo sono in quanto si tratta di uno strumento del tutto inservibile in quei contesti, sia per requisiti necessari al software che dovrà essere prodotto, sia per le metodologie adottate, sia per le esigenze di deploy e scalabilità, sia per tutti i motivi già elencati e discussi ampiamente in questo thread.

    Data questa conclusione, che è un dato di fatto abbastanza dimostrabile anche con dati alla mano (basta vedere le statistiche dei linguaggi utilizzati per l'opensource e per la costruzione del software, appunto), pur capendo appieno la gioia e l'apprezzamento verso Access di coloro che con questo tool riescono a creare con successo tutte le applicazioni che grazie ai loro requisiti ristretti possono essere generate da questo tool, non posso giudicarlo a prescindere da quelle che sono le necessità di oggi, le applicazioni richieste, le prestazioni da garantire, gli standard di sicurezza, la qualità del codice e tutti quei fattori che fanno parte dello sviluppo software moderno, e che quindi fa sì che si possa ritenere altrettando moderno tutti i linguaggi e i tool che le supportano, e non quei tool che sono compatibili con una nicchia estremamente limitata di questi (ossia maschere per inserire dati su un database locale in Windows), e per questi motivi senz'altro l'unico aggettivo che non attribuirei ad Access è quello di moderno.

    29/12/2022 - paoloholzl ha scritto:


    Credi che non sapessi che con l'articolo avrei suscitato un vespaio?

    Non esageriamo: più che un vespaio, al massimo un paio di interventi basiti che hanno forse perso più tempo del necessario a spiegare tutte le motivazioni abbastanza lapalissiane che dimostrano ed evidenziano perché si ha una certa considerazione di un tool e che, a dispetto dell'articolo che vorrebbe sostenere il contrario, vi sono e permangono, e anzi trovano più di una conferma nell'articolo stesso, che si spertica a decantare le lodi di Access sottolineando l'ambito estremamente ristretto e specifico del suo utilizzo, del tutto minoritario rispetto a ciò che tutti gli sviluppatori a oggi cercano e pretendono di trovare all'interno di un tool simile, che sia linguaggio di programmazione, app builder o database.

    29/12/2022 - paoloholzl ha scritto:


    Invece scaturirà un thread molto interessante (e questo non è l'unico).

    Il mio interesse è già concluso: ho aggiunto i proverbiali puntini sulle “i” in merito a certi aspetti, ma per il resto direi che tutto ciò che ho scritto in realtà lo può confermare chiunque, mentre al contrario - rilancio la sfida - attendo di conoscere nella community degli sviluppatori almeno una voce rilevante che sia disposta a sostenere la tesi dell'articolo che stiamo commentando, o che ritenga Access un tool “moderno”.

    29/12/2022 - paoloholzl ha scritto:


    Come informatici siamo troppo abituati a ragionare sulle tecnologie, tutte le aziende serie lavorano sulle tecnologie in relazione agli obiettivi e alle risorse.

    Come informatici, ragionare sulle tecnologie e rimanere al passo direi che non è troppo… è TUTTO! :)

    In relazione agli obiettivi, lo sviluppo con Access è proficuo al loro raggiungimento solo se l'obiettivo è quello di sviluppare applicazioni con Access: se parliamo di sviluppo software a livello professionale, da soli o in team, con tutti i crismi, di software che abbia una complessità di un certo livello (che non si misura di certo nel numero di maschere da creare o di tabelle da salvare sul DB, come fatto sino a ora) e che abbia bisogno di strategie di scalabilità, ridondanza e magari addirittura di CI/CD, tutti elementi fondanti dello sviluppo software moderno (anzi, ormai sono temi di cui si parla da anni), Access è fondamentalmente OUT in tutti questi contesti, nessuno escluso.

    Ciao! :)

Devi accedere o registrarti per scrivere nel forum
28 risposte