di  -  mercoledì 15 settembre 2010

Quella dell’informatica è – anche – la storia di una progressiva semplificazione. Molta della potenza elaborativa maturata dai computer nel corso degli ultimi 30 anni è stata spesa per la gestione di tecnologie non strettamente funzionali all’operatività della macchina. Tecnologie il cui unico scopo era ed è quello di rendere l’uso del computer più semplice ed intuitivo.

Se negli anni ’70 l’interazione con la macchina richiedeva ancora un accesso a basso livello sull’hardware, già negli anni ’80 BIOS e DOS fornivano le funzionalità essenziali per consentire all’utente di concentrarsi sull’esecuzione di applicativi. Il decennio successivo vide il trionfo della GUI e, con essa, la fase di maggior crescita mai registrata dal mercato PC.

In effetti semplificazione e crescita del mercato vanno da sempre di pari passo: se è solo a un gruppo di hobbisti o super-tecnici che si può domandare di interagire con un computer negli anni ’70, le interfacce semplificate di alcuni recenti netbook o tablet rappresentano probabilmente la chiave per aprire il mondo del computer anche a un pubblico totalmente digiuno.

Veniamo al dunque: mi capita spesso di confrontarmi con utenti più o meno smaliziati che, con argomentazioni più o meno consistenti, giudicano negativamente il processo di semplificazione della tecnologia che ne ha prodotto la diffusione di massa.

Oggi come allora, Ubuntu fa storcere il naso ai puristi di Linux quanto la GUI faceva storcere il naso ai guru di Unix e, probabilmente tanto quanto il BASIC faceva storcere il naso ai “sacerdoti dell’opcode”.

Una delle argomentazioni più frequenti che si ascoltano affrontando questo tema è la seguente: se la macchina sceglie per te, preserva il tuo stato d’ignoranza rispetto a quello che avviene “sotto il cofano”.

In termini meno raffinati, se usare il computer diventa semplice come adoperare un elettrodomestico – si domandano spesso i detrattori della semplificazione – quando capirai mai quali sono le potenzialità dell’hardware che stai usando?

In una linea che vede a un estremo il massimo controllo sull’hardware e all’altro la massima semplicità d’uso rispetto a un set di funzioni predeterminato, i critici della semplificazione – con autentico spirito “hacker”, ivi compreso un certo senso di superiorità – si collocano nettamente dalla parte del controllo sull’hardware.

La massa, che si avvicina a un computer per risolvere un problema estremamente pratico e circoscritto – non certo per il gusto di conoscere le potenzialità dell’hardware – propende ovviamente per l’estremo opposto.

A valle di quest’analisi devo confessare che la mia posizione rispetto a questa diatriba è piuttosto ambivalente. Da un lato mi ritengo fortunato per aver conosciuto un’epoca in cui usare il computer significava sporcarsi le mani, anche fisicamente.

Dall’altro non tollero la strafottenza di chi pretende di imporre al prossimo un approccio da “hobbista” – per essere hobbisti è necessario essere appassionati ma oggi il computer lo si usa anche per lavoro, anche controvoglia.

Lavorando ogni giorno col computer, comprendo perfettamente chi alla macchina richiede nient’altro che l’assoluzione di una funzione, senza interessarsi minimamente alla tecnologia sottostante.

Volendo trovare una posizione di sintesi, benché non mi schieri fra le fila dei più entusiasti fan della massificazione in senso lato, non posso non accettare volentieri la “democratizzazione” della tecnologia (avrei semmai preferito che si fosse realizzata in modo più aperto e plurale, meno prono alle posizioni dominanti).

Il motivo è semplice: qualora ne avessi tempo e voglia, nessuno mi vieterebbe oggi di mettermi a smontare e rimontare l’hardware o eventualmente piegare il software ai miei bisogni per il gusto di farlo. Nel mentre sono ben felice di non dover interessarmi a ogni singola operazione che la macchina svolge durante l’uso.

58 Commenti »

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.

  • # 1
    Cesare Di Mauro
     scrive: 

    Bella storia. La mia posizione è praticamente uguale alla tua, perché mi sento fortunato per aver potuto acquisire una valanga di know-how “sporcandomi le mani”.

    Ma oggi sono più che altro un utente che non ha tempo da perdere e vuole puntare esclusivamente al nocciolo dei problemi che devo risolvere.

    Per il resto, prepariamoci a un altro duello fra simon71 e The Solutor (con in mezzo goldorak). :D

  • # 2
    shinya
     scrive: 

    Ma oggi sono più che altro un utente che non ha tempo da perdere e vuole puntare esclusivamente al nocciolo dei problemi che devo risolvere.

    Quella è l’età che avanza Cesare… :P

  • # 3
    imayoda
     scrive: 

    Le “posizioni dominanti” sono imposte anche dal “dio” marketing e dalla tutela diretta di esso, attraverso diritti di autore per arrivare al denaro.. moltissimo denaro..
    bel articolo cmq

  • # 4
    Filippo1974
     scrive: 

    Io mi sento di schierarmi contro l’eccessiva semplificazione. Ad oggi, mi pare di capire che una fetta non irrilevante delle risorse computazionali disponibili sia spesa per nascondere le specificità di tali risorse allo sviluppatore, e questo va evidentemente a sfavore dell’efficienza (intesa come confronto tra ciò che potrei spremere dalla macchina e ciò che effettivamente riesco a tirare fuori). Ambienti come (per dirne uno) il framework .NET consentono una formidabile astrazione rispetto al “ferro” che c’è sotto, ma a che prezzo?
    D’altra parte, finché il mondo PC è un immenso “mondo di mattoncini” dove esistono infinite combinazioni tra CPU, chipset, schede video e quant’altro, non so se siano proponibili approcci diversi da questo.
    Sorrido sempre pensando alla battuta “30 anni fa un 8088 ha spedito l’Uomo sulla Luna, oggi un Core 2 fa girare Windows… ci deve essere un errore”.
    D’altra parte il mio giudizio è un po’ di parte, essendomi io formato in un “mondo” simile a quello da cui proviene Cesare, e nel quale l’unica strada era darci dentro di codice assembly da schedulare manualmente per minimizzare gli stalli alla pipeline del DSP di turno. Un mondo duro ma istruttivo.

    Ciao
    Filippo

  • # 5
    supertigrotto
     scrive: 

    Io esprimo un mio parere.
    Più il sistema è complesso e più il sistema di controllo di tale sistema deve essere semplificato.
    Oggigiorno abbiamo cpu con milioni di transistor,gigabite di memoria e tutto il resto.
    Controllare il tutto,risulta un lavoro troppo lungo e complicato.
    Essendo anche motociclista e appassionato di motori vi porto un esempio.
    Una moto da 200 cavalli,senza gli opportuni accorgimenti di elettronica,diventa una trappola mortale anche per un pilota,figuriamoci per un pilota della domenica (solitamente sbruffoncelli che non sanno nemmeno fare una piega)che pensa di essere il Valentino Rossi su strada.
    Idem se pensiamo a porsche,ferrari,lamborghini e altre auto sportive,tolte le sicurezze elettroniche diventano inguidabili.
    Se pensiamo che nelle gare di auto,il sistema di controllo elettronico risulta fondamentale (nemmeno il shumacker dei tempi d’oro senza l’aiuto dell’elettronica riuscirebbe a guidare un’auto di grande potenza).
    Ora,ci sono dei puristi nel mondo dei motori come nel mondo dell’informatica che vorrebbero mantenere puro lo spirito al 100% senza elettronica e software,mi dispiace ma questi discorsi si potevano fare 50 anni fa quando i computer erano semplici nella loro costruzione e le auto massimo avevano forse 5o cavalli.
    La semplificazione del sistema è l’unica via percorribile quando entrano in gioco complessità difficilmente controllabili.

  • # 6
    JPage89
     scrive: 

    In pratica, vorresti tutto Open Source :D

  • # 7
    homero
     scrive: 

    invece di tirar fuori la solita polemica faccio l’esempio dell’architettura del GPGPU computing…ossia OPENCL e CUDA…
    NVIDIA (ma anche ATI) per ragioni per cosi’ dire di KNOW HOW tengono blindate le loro architetture…
    pertanto le due società guidano lo sviluppo e lo sfruttamento delle proprietà hardware delle loro schede…quindi c’è una sorta di guida dello sviluppo da parte dei produttori…
    quindi oggi ci si sporca le mani spulciando nelle librerie di NVIDIA (devo dire che mi sono stancato già un’anno fa di farlo)….o nelle librerie del compilatore intel….
    …gestire direttamente l’hardware oggi è quasi impossibile almeno in quello commerciale…anche l’architettura x86 è diventata una meta-architettura…in quanto le instruzioni x86 da anni non hanno una reale corrispondenza con l’architettura dei microprocessori e ogni produttore la implementa come gli pare….
    pero’…(nella vita è bello che ci siano dei pero’) puo’ capitare di aver necessità di dover interfacciarsi con uno strumento di misura…o un rilevatore…o qualunque altro sistema di analisi….e a questo punto….l’hardware lo vedi da vicino e sei costretto a gestirlo direttamente….i timing acquistano dinuovo senso…cosi’ come gli interrupt e gli stati del microprocessore che gestisce lo strumento….
    il tuo pc diventa una appendice di qualcos’altro…(un po’ come lo è rispetto ad una scheda tesla di nvidia)…quando questo accade ti rendi conto di come la maggior parte delle righe di codice che scriviamo sui nostri PC servono unicamente a se stesse ed ai produttori di software….

  • # 8
    supertigrotto
     scrive: 

    Ah dimenticavo,idem anche per macchine a controllo numerico e i complessi centri di lavoro.

  • # 9
    Luke76
     scrive: 

    Come non darti ragione perfettamente in linea con l’articolo a mio parere il sistema perfetto è quello che per fare quello che mi serve mi richieda il minimo impegno da parte mia mentre quando sono in fase hobby mi permetta di fare quello che voglio con HW e SW forse il motivo del successo di M$ stà proprio nel aver trovato il giusto equilibrio, con apple sbilanciata sulla semplificazione e Linux invece, nonostante tutti i notevoli miglioramenti, che richiede ancora un certo impegno da parte degli utenti.

  • # 10
    StyleB
     scrive: 

    personalmente credo che l’estrema semplificazione sia una normale tappa di qualsiasi campo della tecnologia, a molti vecchi guru informatici può sembrare quasi eretico questo discorso, ma le aziende produttrici non vivono vendendo un miliaio di unità e questo comporta semplificare il software a costo di ridurre al minimo le prestazioni dell’oggetto in questione.
    oramai l’informatica è piegata al marketing e la sua rotta l’ha intrapresa, anche se per conto mio in modo errato, han cercato la facilità immediata senza cercare l’ottimizzazione prendiamo ad esempio gli ultimi 2os nati in casa microsoft: un laptop da 300€ con
    un T2370 con vista non si pianta mai, al contrario unon da 3000€ con un I7 720Qm con win7 riesce a piantarsi anche dopo un formattone.
    oramai l’enorme potenza delle cpu/gpu non serve per operare ma per parare alla scarsità dei sistemi operativi in circolazione, tanto che quando ricordo ancora il mio epico 386 mi viene da piangere, mai un crash, mai un riavvio e mai un messaggio d’errore (io son dell’era commodore, amiga)

  • # 11
    Filippo1974
     scrive: 

    @ StyleB:

    trovo assolutamente condivisibile la tua opinione: credo anch’io che le logiche di marketing, che nella semplificazione dei PC hanno trovato terreno fertile, abbiano forse indotto chi crea i prodotti ad una eccessivo distacco dalle risorse disponibili: proprio perché ci vengono in qualche modo mascherate, non significa che non ce ne dobbiamo più preoccupare. Nella software house dove lavoro, sento spesso i colleghi dello Sviluppo rispondere, ad obiezioni sulle performance insufficienti di un prodotto in determinate condizioni, rispondere cose del tipo “eh va beh, vorrà dire che il cliente si aggiornerà le macchine.” Non mi sembra un discorso molto corretto: tanto per riprendere il parallelo “motoristico” che qualche utente prima di me ha fatto, sono (forse) capace anch’io di girare su tempi record su una data pista, se mi date un’auto mostruosa. Però così facendo come si fa a capire se valgo come pilota? Si è un po’ persa di vista questa attenzione, secondo me, ad offrire performance ragionevoli rispetto alla consistenza della macchina a disposizione.

    Ciao
    Filippo

  • # 12
    Arunax
     scrive: 

    Boh, saranno tre anni di ingegneria elettronica a confondermi (o forse a chiarirmi le idee), ma non vedo alcuna “semplificazione”: quello che chiamate “semplificazione” è in realtà l’accumularsi progressivo di livelli di maggiore astrazione sopra quello di base. Già la programmazione in linguaggio macchina è un’astrazione rispetto al “reale” funzionamento della macchina: per spiegare il funzionamento di un singolo transistor (in un moderno chip ce ne sono centinaia di milioni) ci vuole una complessa teoria quantistica. Si *deve* astrarre, altrimenti la complessità rende intrattabile il problema.

    Passando dall’hardware al software, il meccanismo è lo stesso. Un comportamento più complesso e articolato deve per forza essere gestito ad un livello di astrazione più elevato: questo, come giustamente indicato dall’articolo, è esattamente il compito di un sistema operativo (oppure, a livello ancora più elevato, quello di una macchina virtuale).

    Il fatto che ciascun livello nasconda tutti i livelli sottostanti non è un incidente, ma un fatto voluto e naturale, proprio per mantenere il livello più alto ad una maggiore astrazione. Ma la complessità rimane là sotto, se proprio qualcuno vuole andarla a cercare.

    Mi sembra che, per quanto la “filosofia hacker” possa avere un suo fascino, gli ingegneri e gli sviluppatori di Intel/Nvidia/AMD/VIA/Microsoft/Apple/Red Hat/Canonical ecc facciano *benissimo* a nascondere la complessità, perché è proprio questo che gli permette di creare prodotti nuovi, più validi, più complessi. Se poi qualcuno vuole “il completo controllo della macchina”, deve cercare di ottenere un accesso al livello più basso (cosa fattibile fino a un certo punto, perché oltre è tutto segreto perché queste aziende non amano divulgare i propri segreti industriali).

    Ma, detto fra noi, se questi hacker trovassero tutta la pappa pronta… dov’è che sarebbe il divertimento? ;)

  • # 13
    the.smoothie
     scrive: 

    Stesso parere di Alessio, adesso come adesso non ho il tempo da perdere a smanettare dietro ad un computer (oppure preferisco impiegarlo dietro ad altro) e sto iniziando ad apprezzare la semplicità d’uso e la immediatezza di SO (o ancora meglio l’accoppiata HW/SO e applicativi vari) pronti all’uso, veloci, intuitivi ed immediati come ad esempio Apple oppure Ubuntu (per esempio, ma ce ne sono altri); il pc deve essere produttivo e deve fare la sua funzione di semplificare la vita o aumentare la produttività, non complicarla! Ma questo vale per me e sinceramente è un cambiamento di idea che mi sono fatto da qualche anno a questa parte, prima avrei propenso alla via più smanettona della “forza”.

    Tuttavia ogni tanto ho delle ricadute da smanettone e la possibilità di potere mettere le mani dentro a configurazioni che non sono all’ordine del giorno è sempre stimolante e gratificante.

    Ciauz!

  • # 14
    Acenry
     scrive: 

    Ma a parte tutto… Se non ci fosse stata la spinta a semplificare l’utilizzo, dettata dalla volontà di espandere il mercato… E il mercato e l’offerta fossero rimasti quelli di (diciamo) 25 anni fa…

    Il mio primo 286 (1 mega di ram, video Hercules e disco da 20 mega) dev’essere costato all’epoca il corrispettivo di 1500 Euro. Cosa ci compro, oggi, con quei soldi?!?

    E ancora, uso quotidianamente automobile, frigorifero, forno a microonde, stereo, etc… Non me ne può fregare di meno di come funzionano “dentro”. No no. Mi servono per fare cose. Punto. Perchè per i computer dev’essere diverso?

    (per quanto mi riguarda la frase sopra non è esattamente “vera”, ma tant’è…)

    Ciao!

  • # 15
    Mauro
     scrive: 

    mah… anche io sono combattuto ma preferisco avere il controllo dell’hardware, magari non al 100% ma di buona parte, e rimpiango i gloriosi tempi del DOS.
    c’è sempre stata la ricerca della velocità nei microprocessori ma molta di questa corsa spasmodica è da attribuire proprio “alla gestione di tecnologie non strettamente funzionali all’operatività della macchina”.
    faccio un esmpio stupido e discutibile, tanto per farvi capire il mio pensiero.
    se togliessimo Aero (e moltissimi altri servizi poco utili ai più, interfaccia grafica ecc.) servirebbe molta meno potenza per fare quello che dobbiamo.
    la semplificazione dei dispositivi per far avvicinare l’utenza meno esperta (e quindi vendere di più!) ha portato alla luce problemi che erano sull’altra faccia della stessa medaglia e che sono riassumibili in una parola: ignoranza.
    io guido l’auto (e la moto) e per farlo non devo essere nè un ingegnere meccanico nè un pilota, ma devo sapere che ci va del carburante nel serbatoio e che probabilmente non riuscirò a fare un tornate ai 100 km/h.
    mentre la prima nozione la trovo nel libretto di istruzioni, che comunque pochi leggono, la seconda è dettata dall’esperienza.
    per guidare l’auto devi avere una patente, per usare il computer no.
    la semplificazione dell’uso del pc ha portato alla sottovalutazione del mezzo e quindi viene usato con troppa disinvoltura più o meno come si sta facendo con le moto da 200 cavalli come detto da qualcuno. ok, ho 200 cv e l’elettronica: wow sto usando una moto da GP e non sono morto. sono proprio un pilota! e giù che mi schianto contro un muretto alla prima curva.
    magari, senza l’elettronica e con 100 cv in meno, alla prima accelerata avrei preso coscienza dei miei limiti, invece ora li si nota quando è troppo tardi.
    nell’uso dei pc vedo gente che invia email con allegati da 10 MB o più e si chiede perchè dopo 2 secondi non è arrivata a destinazione o come può un virus rubarti i soldi dal conto…. insomma tutte cose che si dovrebbero sapere ma che, essendo il sistema troppo semplice ed automatico, non si considerano finchè non ci si imbatte.

  • # 16
    Eroes
     scrive: 

    Articolo molto interessante.

    Se, risalendo ai tempi in cui ero studente, ricordo bene che il mio approccio a questo tema poteva essere quello un poco più elitario che è stato analizzato nel pezzo, da quando lavoro non posso che rendermi conto che un personal computer non deve essere qualcosa che ALZA barriere, bensì che le ABBATTE.

    E, per abbattere una barriera, è necessario che tutti siano messi nella stessa condizione di partenza. E’ vero in ambito economico (abbattere le barriere all’entrata); è vero in campo sociale (abbattere le barriere culturali, religiose, linguistiche); è vero anche in campo scientifico/tecnologico.

    Ritenere che l’utilizzo di un prodotto abbia, come prerequisito necessario, una intima conoscenza del suo funzionamento, è non solo snob ma anche ottuso. Ottuso E bigotto.
    Credo sia l’approccio di coloro che, in ogni campo della propria vita, amano far pesare al prossimo la conoscenza che hanno di un determinato argomento. Dimenticando che:
    a)non tutti hanno avuto la possibilità, o la capacità, di approfondire una certa materia;
    b)in un mondo in cui la conoscenza volge necessariamente verso la specializzazione, è normale essere assai competenti in un campo e sconfinatamente impreparati in un altro. Buffoneggiare perchè si conosce il funzionamento della propria cpu a 32nm da centinaia di milioni di transistor può portare ad amare sorprese nel momento in cui il discorso comincia a volgere su tutt’altro… :)

  • # 17
    Mauro
     scrive: 

    x Eroes: dici delle cose giuste. però sono convinto che la troppa semplificazione porti molti nuovi problemi (che per carità si affrontano quando ci saranno…) a volte anche complessi.

    secondo me è giusto semplificare ma fino ad un certo limite. qual’è questo limite? lo ignoro e probabilmente si sposta nel tempo.
    cioè alcune cose nascono da altre e quindi un processo di semplificazione magari viene completato in un arco temporale non indifferente, vuoi per problematiche tecniche (es lentezza della cpu e quantità di ram) vuoi perchè non si sente l’esigenza di quella semplificazione in quel determinato momento.
    faccio un esempio. per non fare nomi pensa all’elaboratore testi per eccellenza.
    non è da molto -passami il termine- che c’è il correttore ortografico ma è già abbastanza per vedere che in molti non sanno più scrivere nella lingua italiana. perchè? perchè non si devono più preoccupare di cosa hanno scritto: automaticamente il programma correggerà gli errori grammaticali più semplici e l’utente non si accorgerà nemmeno di averli commessi.
    questa la trovo una semplificazione in eccesso, è una funzione disabilitabile ma in quanti lo sanno fare? e poi perchè disabilitarla? è così comoda!

  • # 18
    Gualmiro
     scrive: 

    Quando sono nato il frigorifero in casa già ce l’avevamo… lo uso da allora e non ho mai sentito la stretta necessità di sapere come funzioni o come poterlo modificare per farlo funzionare meglio.

    E’ un’iperbole chiaramente, solo per far capire come la penso.

    Sono un ingegnere informatico e dopo aver bazzicato per un po’ varie declinazioni dell’informatica mi ritrovo a fare il programmatore a tempo pieno da qualche anno adesso.

    Il problema della semplificazione è che anni addietro chi ha governato questo processo (parlo dell’era da Win3.1 a WinXP) ha fatto il passo più lungo della gamba. Alla semplificazione si è accompagnata una non tollerabile (per l’epoca) ignoranza informatica da parte degli utenti. La semplificazione deve essere a prova di bomba, non si può pretendere che gli utenti “comuni” siano dei guru, e per questo un’infrastruttura informatica deve avere i giusti “anticorpi” per limitare i danni che un utente può fare. Un po’ come l’inserire ASR, ABS e ESP sulle automobili, ti tolgono parte del controllo per produrre “statisticamente” un aumento della sicurezza generale. Eppure son certo che a molti appassionati di auto sentire l’intervento dell’ASR al semaforo fa venir l’orticaria…

    Quello che molti utenti smaliziati spesso non capiscono e le che persone vogliono usare i computer come usano qualsiasi altra cosa nella vita, se dovessero imparare ad usarlo verrebbe meno il loro bisogno nell’immediato. Una casalinga con una lavastoviglie che non sa usare finirà per lavare ancora i piatti a mano per un po’ prima di prender in mano il benedetto libretto di istruzioni.

    Trattando il problema in maniera più seriosa, se non semplifichi e stratifichi tecnologie una sull’altra, ti mancheranno gli strumenti sufficientemente potenti per trattare i problemi che col tempo andranno creandosi.
    Stratificare, astrarre, creare protocolli con relativo decadere delle prestazioni sono tutte cose necessarie se vuoi poter pilotare infrastrutture da 10^40 micro-componenti elettronici.

    Lo stesso boom di linguaggi sempre più di alto livello che finiscono solo per esser una serie di semplici comandi con cui agganciare API di riferimento (si pensi solo agli SDK di iOS e WindowsPhone7, ma anche più in genere a tutto l’ambiente Cocoa/Mac e .NET/Windows) è sintomo della direzione intrapresa, così come lo è l’enorme popolarità di linguaggi interpretati, macchine virtuali interpreti di linguaggi o addirittura rappresentanti interi sistemi operativi…

    Quello che l’utente comune legittimamente ignorante in materia chiama “semplificazione” altro non è che un aumento razionale della complessità sottostante, aumento necessario per poter fronteggiare problemi sempre più grandi.

  • # 19
    phabio76
     scrive: 

    Come al solito la prendo alla larga.
    Dai computer, estenderei il discorso a qualsiasi dispositivo elettronico. Non solo GUI, parlerei di interazione uomo – macchina.
    Negroponte negli anni ’80 era considerato un folle che investiva risorse in cose inutili.
    Avete presente il telecomando di un videoregistratore o di un impianto hi-fi del 1990? A parte la qualità dei materiali sicuramente migliore, vi ricordate i tastini microscopici, ognuno adibito a più funzioni? Se una volta faceva molto “prodotto di fascia alta”, oggi ci si rende conto di quanto fossero scomodi da usare.
    “SEMPLIFICARE SIGNIFICA ELIMINARE” (la citazione è facile da indovinare), ma tutta la semplificazione è finalizzata alla fruizione finale, non al prodotto in se, tanto meno alla fase di sviluppo.

  • # 20
    Gualmiro
     scrive: 

    Piccola nota a margine: sono un fan dell’evoluzione delle GUI.

    Per anni ho usato Mac per un unico semplice motivo: la chiarezza dell’interfaccia e per strumenti pratici come drag’n’drop universale, exposé, coerenza di shortcut da tastiera.

    L’ombreggiatura dei menu non è un vezzo, è riposo per gli occhi.
    Tendine grigio chiaro / rossastro su ombreggiatura grigio scuro /verdastro è anche comfort, non solo “stupido spreco di risorse”.
    La presenza di 50-60 scorciatoie da tastiera coerenti in tutti i programmi è comodità oltre che produttività.

    Le GUI viste in quest’ottica sono una gran cosa…
    Questo è l’unico punto di vista sotto il quale Win7 non mi piace, e sarò sciocco io… ma per me è il punto cruciale (per l’uso privato dei computer intendo.. per lavoro si tiene il piede in 45 staffe diverse, da Win2000 a FreeBSD passando per MacOS9 e MacOSX fino a XP e Win7 :D )

  • # 21
    Filippo1974
     scrive: 

    @ Arunax:

    “Il fatto che ciascun livello nasconda tutti i livelli sottostanti non è un incidente, ma un fatto voluto e naturale, proprio per mantenere il livello più alto ad una maggiore astrazione. Ma la complessità rimane là sotto, se proprio qualcuno vuole andarla a cercare.”

    Non credo che nessuno qui voglia insinuare che nascondere i livelli sottostanti sia un incidente. E’ però evidente (almeno secondo me) che nascondere i livelli sottostanti, “semplificando” come dice Alessio o “accumulando livelli di astrazione” (basta intendersi sulla terminologia) si rischia di perdere di vista la complessità “occulta”, e questo può portare a nuovi problemi.

    Io insisto sul fatto che “nascondere” la complessità sottostante è conveniente entro certi limiti; arrivare al punto dove tale complessità sottesa non sia più percepibile è rischioso, perché induce chi sfrutta questa “semplificazione” a sottovalutare i limiti della complessità nascosta. Sempre facendo paralleli in altri campi, i moderni sistemi tipo ABS, ESP, e altre diavolerie del genere, possono “mascherarmi” la complessità nel governare una vettura in determinate situazioni, ma non cambiano le leggi della Fisica. Pensare di poter ottenere prestazioni migliori a parità di veicolo solo perché i suddetti sistemi lo fanno sembrare più facile da condurre è un pericoloso errore di valutazione che purtroppo qualcuno commette (con conseguenze anche tragiche).

    Credo comunque che sia compito di chi implementa il software, decidere di volta in volta se sia conveniente privilegiare la semplicità, o preferire un controllo più puntuale accettando di sporcarsi le mani con la complessità sottostante. L’importante è che questi due approcci restino entrambi possibili: faccio fatica ad immaginare uno scenario dove la semplificazione fosse imposta.

    Ciao
    Filippo

  • # 22
    Gualmiro
     scrive: 

    @Filippo1974
    “Io insisto sul fatto che “nascondere” la complessità sottostante è conveniente entro certi limiti; arrivare al punto dove tale complessità sottesa non sia più percepibile è rischioso, perché induce chi sfrutta questa “semplificazione” a sottovalutare i limiti della complessità nascosta.”

    Questo discorso però solleva anche una questione semantica dell’uso dell’informatica… il “rischio” che intendi tu e che capisco è comunque tollerabile in misura differente a seconda di quello che con il computer in questione stai facendo.

    L’errore è astrarre tutto quindi? Si dovrebbero lasciare canali preferenziali per saltare in toto tutto il middleware di roba che c’è tra l’hardware nudo e l’utente alla scrivania in modo da minimizzare, solo laddove sia richiesto, questi “rischi”?

    Io non credo… ma non perché tu non abbia ragione quanto per il semplice fatto che ad oggi (da qui a 4-5 anni) il gioco ancora non vale la candela.

    Quando tu dici -Pensare di poter ottenere prestazioni migliori a parità di veicolo solo perché i suddetti sistemi lo fanno sembrare più facile da condurre è un pericoloso errore di valutazione che purtroppo qualcuno commette (con conseguenze anche tragiche)- non hai tutti torti… il punto però è che su scala di sistema i numeri danno ragione comunque ai vari ESP e compagnia.

    Voglio dire… se prima di 100 auto che facevan la curva 5 si schiantavano nel platano in banchina, mentre invece oggi di 100 auto se ne schiantano solo 3, cosa conviene?
    Poco importa se i 5 morti di ieri fossero stati degli autentici pirati stradali mentre invece i 3 di oggi son solo persone “ingannate” da un sistema che le ha fatte sentire troppo sicure.
    Finché questo equilibrio non cambia, non vedo come possa arrestarsi il processo di semplificazione.

    Comunque per me il limite della tollerabilità nella semplificazione è già stato raggiunto, ma penso che si continuerà a procedere in quella direzione ancora per un po’.

  • # 23
    Alessio Di Domizio (Autore del post)
     scrive: 

    @ Gualmiro

    Comunque per me il limite della tollerabilità nella semplificazione è già stato raggiunto, ma penso che si continuerà a procedere in quella direzione ancora per un po’

    È un limite dinamico, storicamente determinato. È assoluto solo per l’individuo, sempre che abbia già chiaro a priori cosa potrebbe venir semplificato in futuro.
    Mi pongo invece il problema da questa prospettiva: esiste un punto in cui la curva dell’incremento di produttività si appiattisce mentre quella dell'”instupidimento” (passami il termine approssimativo) continua a crescere?

  • # 24
    Gualmiro
     scrive: 

    @Alessio Di Domizio
    “esiste un punto in cui la curva dell’incremento di produttività si appiattisce mentre quella dell’”instupidimento” (passami il termine approssimativo) continua a crescere?”

    Penso di sì… è come con la storia dell’emissioni di CO2 oggigiorno… finché te le puoi permettere (per qualunque motivo: ignoranza, disinformazione, mancanza di tecnologie, lobbysmo…) non sono un problema; quando diventano un problema chi è di turno nel mondo cambierà modello economico ridando alle cose il peso che meritano all’interno del proprio periodo storico.

    Quando il costo dello “instupidimento” (riprendo il termine tanto per capirsi) sarà tale da riuscire da solo a controbilanciare se non a superare tutto il resto non so che cosa potrebbe accadere in informatica. Tornare indietro lo escludo, ma mi sa che per adesso la vacca della semplificazione ha ancora tanto latte da dare, nel bene e nel male.

  • # 25
    findus
     scrive: 

    Articolo interessante e interesanti commenti.
    Per tutti quelli che sostengono che la troppa semplificazione vada ad ingannare gli utenti dandogli un senso di falsa sicurezza mi chiedo: Quelli che vengono truffati da un sito online o da un virus sarebbero stati truffati lo stesso se invece dell’interfaccia di macosx, windows o linux si fossero trovati davanti una shell ostile (DOS/Unix) che ti obbliga a capire come accedere ad una periferica o ai tuoi file?
    Digitare il nome del file che va a infettare il pc invece che cliccarci due volte sopra rende davvero un sistema piu’ sicuro?
    Il discorso su ABS o vari sistemi elettronici di sicurezza poi non ha molto senso. Tali dispositivi sono pensati per intervenire in caso di emergenza, per salvare delle vite, non in caso di gare clandestine facendoci pensare di essere piloti. Chi esagera con o senza certi dispositivi in auto o in moto avrebbe esagerato anche senza e l’esito sarebbe stato lo stesso nel caso avesse oltrepassato il limite.

  • # 26
    phabio76
     scrive: 

    @Alessio Di Domizio
    >
    esiste un punto in cui la curva dell’incremento di produttività si appiattisce mentre quella dell’”instupidimento” (passami il termine approssimativo) continua a crescere?
    >
    Stavolta non volevo citare ma… consideriamo un iPad, sostituiamo nella frase di Alessio la parola “produttività” con “intrattenimento” ed il discorso è completamente ribaltato. Grazie alla semplificazione si è allargato il bacino dei possibili utilizzatori. Non dico che questo sia un bene o un male, è una semplice conseguenza.

  • # 27
    Emanuele Rampichini
     scrive: 

    Il motivo è semplice: qualora ne avessi tempo e voglia, nessuno mi vieterebbe oggi di mettermi a smontare e rimontare l’hardware o eventualmente piegare il software ai miei bisogni per il gusto di farlo. Nel mentre sono ben felice di non dover interessarmi a ogni singola operazione che la macchina svolge durante l’uso.

    Condivido in pieno questa visione.

    Con un piccolo se:
    Va bene gestire e imbrigliare la complessità purchè sia fatto a regola d’arte e non “tanto per”. Spesso tentativi goffi di semplificare fanno perdere più tempo di quanto ne dovrebbero far risparmiare.

  • # 28
    polemico
     scrive: 

    ok la semplicità pero’ non conosco puristi che criticano Midnight Commander.
    alla fine sono solo posizioni da forum.. nella real life è diverso, si usa quello che serve.

  • # 29
    simon71
     scrive: 

    Qualcuno mi ha chiamato in causa? ^^

    Dunque sarò breve e circonciso..ops…circoscritto (spero). Penso che oggi ci siano “scelte” a differenza di 30 o 40 anni fa.
    Mi pare che il concetto di “Plug&Play” (tanto per citare una delle prime automazioni, ma non vorrei dire corbellerie) sia nato da Microsoft (forse qualcuno mi ricorderà Amiga)…In ogni caso è stata una “piccola rivoluzione”. I PC continuano col loro Bios, i Mac hanno il loro EFI…Comunque molti di voi intuiranno il mio pensiero. Tuttavia ritengo sia assolutamente lecito e sacrosanto per chi ha voglia/competenza/passione per entrare nei meandri della propria “macchina” poterlo fare…
    Altri che il tempo, la voglia e la pazienza non ce l’hanno devono poter fruire di alternative.
    Per quelli come noi un’alternativa (che non nomino ^^) c’è.
    PEr gli altri idem.

    Quindi, scambiamoci un segno di pace e bona lì….

    Saluti ^_^

  • # 30
    The Solutor
     scrive: 

    @alessio non puoi farmi un thread su misura proprio in un giorno in cui non ho 5 miniti liberi.

    Uffa.

  • # 31
    zap
     scrive: 

    vorrei proprio sapere se i fanatici del non-semplifichiamo sanno come si munge una mucca, e se bevono latte.
    Oppure se vanno al supermercato e comprano un cartoccio, pensando che il latte lo produca il frigorifero…

  • # 32
    homero
     scrive: 

    x zap

    questa mi fa proprio ridere…

    l’uso di un oggetto dei corrispondere al fine
    se il mio fine è bere un latte qualunque allora prendo il cartoccio dal frigo…se il mio fine è mangiare bene allora comincio a guardare il numeretto sotto al cartoccio

    http://www.italiainformazioni.com/giornale/salute/87093/dubbi-latte-viene-ringiovanito-volte-quando-male-rigenerano-pare-proprio-vada.htm

    cosi’ comincio ad accertarmi quanto è fresco…
    come vedi anche per comprare il latte è necessario essere informati…e sopratutto non fidarsi completamente di quello che ci viene presentato…

    pertanto il latte lo produce il frigorifero però avere gli strumenti per sapere quello che acquistiamo è qualcosa di importante ed in alcuni casi protetto dalla legge…(come il caso del latte)

    allora io oggi non sempre con i computer ho la libertà di conoscere l’hardware che ho di fronte…il caso di CUDA è emblematico…
    pertanto devo “fidarmi” delle librerie di NVIDIA(che al momento fanno letterlamente pietà) e rassegnarmi che l’hardware delle loro GPGPU risulta impenetrabile…
    il risultato finale è che se vuoi sfruttare la presunta potenza delle loro gpgpu devi pagare tanto…in software, assistenza e quant’altro e spesso non basta…
    a quel punto abbiamo preferito un classico cluster linux di processori multicore…
    questo è quanto…

  • # 33
    Mauro
     scrive: 

    per findus:
    prendere un virus facendoci doppio click sopra e scrivendone il comando è la stessa cosa ma per me il punto è un altro.
    prima delle GUI il PC non era presente in ogni casa, è diventato una specie di elettrodomestico da win95 in poi.
    per me era più facile a quel tempo trovare gente preparata che non oggi.
    le innovazioni che hanno semplificato la vita agli utenti hanno aumentato il numero di persone utilizzatrici di PC ed allo stesso tempo ridotto le loro competenze in generale: penso che oggi la percentuale di persone che prende virus sia più alta rispetto a 15 anni fa (sono d’accordo che il paragone non regge perchè il veicolo d’infezione maggiore oggi è la rete che 15-20 anni fa non era così diffusa ed insidiosa) proprio perchè non c’è una cultura informatica. molte semplificazioni ci sono solo perchè l’utente ignorava come fare alcune cose che comunque era già possibile fare. esempio banale: CTRC+C e CTRL+V, sai quanta gente vedo togliere le mani dalla tastiera per cercare il mouse e fare click destro? è semplificazione questa? è un aumento di produttività?

    altro esempio pratico: ho fornito un multifunzione a degli utenti i quali si lamentano che è complesso fare una digitalizzazione. cioè devono premere “ben” 7 tasti in sequenza per ottenere un documento PDF in una cartella di rete. vorrebbero un unico bottone per fare tutto.

    altro ancora: moltissimi utenti quando esce un errore a video danno ok senza nemmeno leggere. perchè è uscito questo errore? perchè se il sistema l’ha individuato non l’ha corretto? perchè devo disturbarmi a leggerlo? perchè non è tutto automatico?

    per carità sono esempi quasi squallidi ma non si può cercare la semplificazione a tutti i costi e nemmeno si può pensare di avere il controllo totale.
    sempre secondo me, stiamo sconfinando nella insofferenza che è un altro problema: troppi stimoli sensoriali a cui non siamo abituati e quindi troppo stress, si vuole dunque la semplificazione a tutti i costi ma solo per ridurre la quantità di questi stimoli.

  • # 34
    findus
     scrive: 

    Per Mauro:
    Sono d’accordo con quanto dici. Il punto e’, come tu stesso dici, che la semplificazione ha portato ad una maggiore diffusione dei PC. Ovvero ha raggiunto lo scopo che si era prefissato all’inizio, che era quello di fornire uno strumento domestico per l’accesso a delle risorse, funzioni o informazioni che prima erano disponibili solo in particolari e costosi centri di calcolo.
    Essendo programmatore capisco benissimo quale siano le tue problematiche. Utenti che non leggono i messaggi a video perche’ dicono di non avere tempo o scuse simili. Frasi del tipo: ‘Io? No non sono stato io a modificare quelle cose’.
    Essendo il PC alla portata di tutte le categorie di utenti, oggi e’ necessario (per noi programmatori) fare uno sforzo supplementare per impedire agli stessi di auto-distruggere informazioni o compromettere i sistemi.
    A mio parere la soluzione piu’ valida in modo da renderli il piu’ produttivi possibile e’ quella di utilizzare sistemi che siano il piu’ blindati possibile, mettendogli a disposizione solo le opzioni veramente utili a raggiungere lo scopo finale.
    Operazioni aggiuntive li confonderebbero e li allontanerebbero verso sistemi piu’ semplici e facili da usare.

  • # 35
    phabio76
     scrive: 

    La discussione ha preso una bella piega.
    Che si stia parlando del pannello di una lavatrice o dell’interfaccia di un programma di video editing non fa differenza, la tendenza è quella di assecondare gli utonti fino a raggiungere “il limite della tollerabilità nella semplificazione”.
    Se semplificare significa eliminare, si continuano a togliere opzioni fino a far tendere a zero la possibilità di sbagliare da parte dell’utente. Il problema è che il quoziente intellettivo del medesimo viene costantemente aggiornato verso il basso…

  • # 36
    Alessio Di Domizio (Autore del post)
     scrive: 

    Troppe opzioni paralizzano il processo decisionale…
    http://www.nytimes.com/2010/02/27/your-money/27shortcuts.html

  • # 37
    findus
     scrive: 

    @phabio76
    Non si tratta di quoziente intellettivo ma di passione. L’intento del PC era quello di rendere accessibile il computer a chiunque e più passa il tempo e più le interfacce stanno avvicinando il PC verso quell’obbiettivo. Questa semplificazione non ha solo portato ad un accesso semplificato al PC ma anche ad una produttività estremamente più elevata rispetto alle generazioni precedenti (questo per tutti gli utenti).
    Poi, come evidenziato da altri utenti, ci sarà sempre chi vorrà approfondire le proprie conoscenze su un S.O. o su uno specifico programma, chi continua ad usare VI come editor nel 2010 e così via.
    Il miglior sistema operativo o programma è quello che mi permette di raggiungere il mio scopo nel minor tempo possibile e con il minimo sforzo.
    Tutto il resto è passione…

  • # 38
    Alessio Di Domizio (Autore del post)
     scrive: 

    Ma sì, questa storia del quoziente intellettivo va un po’ ridimensionata: il computer non nasce per tenere in allenamento il cervello. Altrimenti da domani vado a lavoro di corsa invece che coi mezzi, così ne approfitto per fare fiato. :-)

  • # 39
    simon71
     scrive: 

    @Alessio

    Il Tuo ultimo post è da incorniciare ^^

    Detto questo finché molti utenti (tanto per riprendere il concetto di Alessio) non capiranno che il computer non nasce come “Sapientino della Clementoni”, ma per eseguire semplicemente dei “Task”, così come ogni stramaledetta macchina costruita dall’uomo non ne verremo mai a capo.

    PEr allenare il cervello esistono miliardi di modi: buone letture, matematica, calcoli (manuali), persino i tanto vituperati Videogiochi (presi in moderazione) pare sortiscano effetti estremamente positivi.

    Ad esempio (IMHO, dal basso della mia personale esperienza) avendo a che fare da ormai diversi anni con “ventenni”, e addirittura Teenagers, posso tranquillamente affermare che loro hanno un’intelligenza “elastica” (credo si chiamo così) che io mi sogno.

    E non è una questione di GAP anagrafico: anche a 20 anni io e molte delle persone che conoscevo non ero come loro. Hanno facoltà di apprendimento e gestione del “Multitasking” che io non possiedo. Come paragonare una Coupè 2.0 turbo a benzina con un’utilitaria 1.2 Diesel.

    Vedo miei coetanei usare i computer (Mac, ovviamente) nel significato più generale della parola tipo “piovra”…Sembrano quasi non pensare quando attivano millemila shortcut da tastiera, eseguono un qualsiasi programma…Sembrano davvero “androidi” in questo senso…

    PEr dirne una: io per fare (bene) un mix su Protools o Logic ci impiego (certo sto ancora imparando) una settimana, loro in media 3 giorni…

    Questo vorrà pur dire qualcosa. E sono convinto che avere a che fare con “sistemi” semplificati (attenzione bene) nella struttura e nel funzionamento di base, aiuti lo sviluppo di facoltà creative e non.

    L’esempio vero da fare sarebbe questo. A chi piacerebbe avere un’automobile (di qualunque tipo e marca) che la mattina quando ci si sale per andare al lavoro richieda nell’ordine:

    1) Controllo manuale del serbatoio perché manca un indicatore della benzina
    2) Messa a punto al motore.
    3) controllo dell’abitacolo perché detta auto non avendo “finestre” (^_^) può essere il rifugio di topi, bacherozzi, barboni che la scambiano per un monolocale (e relativa disinfestazione da dette creature)
    4) Cambio gomme perché come le auto GP ci vogliono gomme apposta per ogni tipo di tracciato e/o clima.

    Ecco, credo sempre che il nocciolo sia questo…

    Magari sbaglio….

    Saluti

  • # 40
    Giovanni
     scrive: 

    Mi pare che i commenti siano giunti in un vicolo cieco. Con l’avvento del personal computer (in senso generale, non mi riferisco ai PC, così non innesco sterili polemiche) è stato abbastanza rapido (e naturale, ma non proprio immediato) l’innescarsi di pratiche di marketing specifiche per penetrare il più astutamente possibile in un mercato generalista e massificato. Comunque, visto che sono un appassionato, questo genere di “massificazione” è la ben venuta, l’ho apprezzata e l’apprezzo tuttora. Dal punto di vista tecnologico inoltre, tale processo ha contribuito enormemente a semplificare le modalità di utilizzo delle apparecchiature. D’altra parte le esigenze degli utenti sono aumentate (in buona parte sono state anche indotte) e la complessità della tecnologia necessaria è divenuta tale che non si può pretendere pure una massificazione della preparazione tecnica.

    Personalmente invece, trovo imbarazzante l’atteggiamento di molti “neofiti” e di tanti “ignoranti” che senza nascondere alcuna presunzione si lanciano in avventate prese di posizione con pochissima cognizione di causa riguardo all’argomento di cui parlano. Utilizzare al meglio uno strumento appositamente studiato per un veloce apprendimento dà soddisfazione e merita apprezzamento. Ma gli argomenti di cui si tratta sono sufficientemente complessi da ammettere una buona dose di umiltà e di conoscenza prima di lasciarsi andare in giudizi o affermazioni categoriche (per esempio che un SO è migliore di un altro).

    Il mio atteggiamento è ambivalente perché, soprattutto per lavoro, utilizzo sistemi anche molto complessi di cui ringrazio ogni semplificazione di utilizzo e dai quali “pretendo” un funzionamento impeccabile ed efficiente. Ovviamente, per passione e disposizione personale, molti aspetti di tali funzionamenti mi incuriosiscono fino a spingermi a studiarli, ma senza una particolare urgenza (e solo perché sono fatto così, di natura).
    Non pretendo certo che tutti diventino “esperti informatici” seppure ritenga culturalmente indispensabile, per un individuo del 2010, possedere una minima cultura informatica.
    Sono anche uno “smanettone” da quasi trent’anni, appassionato di hacking, programmazione, retrocomputing e storia dell’informatica… sento che questo, invece, mi autorizza ad esprimere con maggiore coscienza qualche opinione in merito all’argomento.

    La semplificazione per l’utente ne aumenta le potenzialità ma implica una maggiore complessità del sistema in generale. Ben venga, perché è un processo inevitabile, utile ed affascinante. Purtroppo l’estensione del dominio di utenti comporta un altrettanto inevitabile appiattimento. Si deve confidare nello spirito critico degli individui e comunque, per chi si sente in grado di farlo, continuare a sollecitarlo attraverso l’informazione o la provocazione.

    Saluti

    oops… all’inizio qualcuno deve aver detto che stava meglio con il suo 386??? o che l’Amiga non andava in crash??? (GURU… GURU…). Un conto sarà la “nostalgia dei bei tempi andati” ma io, sinceramente, non ho molto da lamentarmi del mio divertentissimo, e spesso utile, Phenom.

  • # 41
    homero
     scrive: 

    qui si confonde la facilità di apprendimento o di gestione di un sistema con la necessità di utilizzare una tecnologia…

    “un tempo si scriveva che il software strizza l’occhio all’hardware” per indere che il mondo dell’informatica produceva software sempre piu’ sofisticati e non ottimizzati per giustificare l’acquisto di nuovo hardware….”

    questo è nocciolo della questione…

    i nostri computer hanno la medesima architettura x86 di 15 anni fa, al contrario le periferiche sono quasi la totalità blindate da un HAL….
    questo permette ai produttori di gestire le qualità hardware dei nostri computer per fini commerciali…

    questo accade in particolar modo per le schede video…ma anche per alcuni protocolli di comunicazioni….

    in questo caso da un lato si limita l’utilizzo della tecnologia da parte degli sviluppatori…ossia niente GPGPU se non con le librerie proprietarie…dall’altro non ci resta che piangere…

  • # 42
    Alessio Di Domizio (Autore del post)
     scrive: 

    @ homero

    “un tempo si scriveva che il software strizza l’occhio all’hardware” per indere che il mondo dell’informatica produceva software sempre piu’ sofisticati e non ottimizzati per giustificare l’acquisto di nuovo hardware….”

    Sì ma questo tipo di presa di coscienza da parte della massa – ancor più l’idea che si sappia come farci qualcosa – è lontano anni luce dall’avvenire, per motivi tecnici prima che disinteresse. Ci sono prese di coscienza molto più vicine che pure non avvengono. L’abuso quotidiano della nostra costituzione, tanto per dirne una (e scusa l’OT).

  • # 43
    Alessio Di Domizio (Autore del post)
     scrive: 

    @ homero
    Ma siamo poi sicuri che il completo controllo di un chip con 2 miliardi di transistor sia così a portata di mano? La conoscenza è controllo, lo era e lo sarà sempre, ma oggi è diventata troppo tecnica per essere accessibile. Se già per capire un 4004 ci voleva una bella preparazione, oggi solo per capire come sfruttare una componente minima di una CPU moderna serve un team di ingegneri superspecializzati. In altre parole, per usi “di produzione” l’approccio hobbistico/amatoriale è molto ridimensionato rispetto a trent’anni fa.
    Come a dire, alla fine dell’ottocento il problema dell’aeronautica era far staccare da terra un trabiccolo con le ali in legno e tela, oggi si tratta di mandare in orbita un satellite…

  • # 44
    Cesare Di Mauro
     scrive: 

    A questo punto perché non chiedere anche il controllo assoluto sul microcodice delle CPU, visto che ci siamo.

    Ci siamo stancati di programmare in assembly o linguaggio macchina. Vogliamo di più. Vogliamo più controllo. Vogliamo poter usare direttamente le micro-op “RISC” all’interno dei moderni microprocessori, e ridefinire il microcodice per quelle che ne fanno uso.

    Inizierà la nuova era dell’ISA-fai-da-te.

    Per le GPU è uguale. Poco importa che esistano già delle API per poter scaricare loro il codice da eseguire (gli shader): vogliamo di più! Vogliamo poter accedere direttamente ai singoli stream processor, e programmarli come piace a noi, e con la loro ISA nativa.

    HAL? Che roba è? L’astrazione è il peggiore di tutti i mali, perché ci lega le mani. Non possiamo fare quello che vogliamo. E il nostro bisogno primario, la prima necessità, è quella di essere liberi di fare quello che vogliamo.

    Poco importa se, cambiando implementazione, ci sarà tutto da rifare. La libertà prima di tutto.

    Sì, ci sarebbe anche il piccolo effetto collaterale che sarebbero necessarie delle conoscenze un tantino più avanzate, ma ci siamo stancati anche dei programmatori dell’ultima ora, che non sanno nemmeno come funziona l’effetto tunnel; anzi, non ne conoscono nemmeno l’esistenza!

    Per questo è bene che venga introdotta un po’ di meccanica quantistica (con un po’ di meccanica statistica, che di sicuro non guasta) come prerequisito fondamentale e indispensabile per chi voglia iniziare a programmare.

  • # 45
    Mauro
     scrive: 

    Oggi che ho un po’ di tempo in più riesco anche a migliorare l’ortografia e vi faccio anche i complimenti per questo bell’articolo che fornisce molti punti di riflessione interessanti.
    Bravi!

    per Cesare Di Mauro: ok, allora da oggi giocherò a scacchi solo su scacchiere 4×4 perchè altrimenti ho troppe possibilità da valutare e rischio di trovarmi in un loop infinito.

    Sono d’accordo: troppe opzioni rallentano le decisioni (e vorrei vedere se non fosse così) ma non posso nemmeno fornire un’unica possibilità, che a questo punto diventa una scelta obbligata.
    Anche perchè qualcunaltro allora avrà deciso per me che alcune opzioni non sono accettabili. E chi mi dice che per me non lo fossero? Vabbè…

    Quindi la domanda è sempre la stessa: controllo totale o semplificazione?
    Penso che in questi ultimi anni si stia imboccando una strada interessante. Con i PC ci fai di tutto – ed è questo il problema, far fare tutto ad una solo cosa introduce complessità – ma alla fin fine quello che l’utente normale fa è navigare, leggere la posta e guardare video e foto.
    Non serve un PC per fare queste cose e le grandi aziende l’hanno capito e ne stanno approfittando.
    Si sta semplificando il dispositivo, cioè si creano dei dispositivi che permetto di fare quello per cui è nato e poco altro (iPad per leggere i libri e navigare, console per giocare, questo per fare quello, ecc).

    Un PC -perchè alla fine nell’articolo si punta il dito su di lui anche se poi il discorso è andato generalizzando- semplice che fa tutto probabilmente non esisterà mai. Magari la stessa concezione che abbiamo ora di PC tra qualche anno cesserà di esistere.

    x Alessio Di Domizio: “Ma sì, questa storia del quoziente intellettivo va un po’ ridimensionata.”

    Probabilmente alcuni esempi sono esagerati. Ma il problema c’è eccome. Vedo attorno a me una sorta di atrofia cerebrale.
    La gente si sta abituando ad essere indirizzata, corretta, consigliata e prende per buono tutto quello che la tecnologia gli propina senza pensare, senza valutare, senza obiettare.
    Come se la tecnologia potesse pensare per loro.
    Un (altro) esempio stupido? Il navigatore: in due circostanze diverse, due persone diverse che ritengo intelligenti, stavano cercando un indirizzo e per due volte ciascuno il navigatore gli ha fatto fare lo stesso identico percorso senza trovare ciò che cercavano. Al loro terzo tentativo mi sono dovuto intromettere io per svegliarle dal trans indotto! Non erano chissà quali strade… era il giro di un unico isolato!

    La tecnologia deve servire come ausilio non, come sostituto e questo molti non lo capiscono. Se poi risulta semplice all’uso meglio ancora.

  • # 46
    homero
     scrive: 

    x cdmauro e A.DIDOMIZIO

    se il computer lo intendiamo come sistema di sviluppo allora è sacrosanto dare agli sviluppatori la più ampia possibilità di azione, sia in termini di accesso all’hardware sia come documentazione su come questo funziona…e cdmauro dovrebbe saperlo visto che ha programmato l’amiga….senza i rom kernel manual e hardware manual di certo non si poteva andare molto lontano….cosi’ come il manuale del 680xx della motorola…
    facciamo ora un esempio…
    i GPGPU che sono sulle nostre schede video hanno hardware blindato…nulla da eccepire se le si vende come schede video per giocare…ma quando le si propone come sistemi di calcolo general purpose o come sistemi che migliorano la velocità dei programmi il discorso cambia e di molto…a quel punto il marketing propone prestazioni mirabolanti evidenziate con tanto di grafici…quando pero’ un gruppo di sviluppo comincia ad avvicinarsi a CUDA magari per sostituire il cluster cosa si trova davanti? una marea di librerie che di fatto non consentono di ottenere le prestazioni proposte da nvidia a meno che non ci si affidi ad aziende specializzate o alla stessa nvidia…che propone investimenti di centinaia di migliaia di euro…quando rispondi che sei fuori budget sapete cosa ti dicono? c’è un plugin per matlab che potrebbe fare al caso vostro che sfrutta la nostra tecnologia…
    a quel punto anche gli sviluppatori si fanno 2 conti e dicono meglio 100.000 euro ad nvidia e fidarsi delle prestazioni proposte o aggiornare il vecchio cluster linux?

    andando indietro nel tempo sicuramente CDMAURO ricordare la scheda transputer per i386…il primo sistema di calcolo parallelo accessibile a prezzo umano…siamo nel 1989….
    bene la prima cosa che era la documentazione su processore…e poi sugli interrupt e gli indirizzi sulle porte isa a questo si affiancava un compilatore OCCAM che permetteva di programmare algoritmi paralleli…
    allora facendo il confronto tra scheda di calcolo parallello del 1989 e scheda GPGPU del 2010 posso tranquillamente dire che normalizzando i dati siamo andati indietro proprio per quanto riguarda il supporto e l’implementazione dell’hardware e la ragione è proprio di frenare lo sviluppo…ossia impedire agli sviluppatori di sfruttare l’hardware….
    ovviamente chi usa il computer come un elettrodomestico ha bisogno solo di avere procedure semplici da eseguire per svolgere i compiti preposti….ma questa è una storia che con quanto sopra ha nulla a che fare…

  • # 47
    Pleg
     scrive: 

    @ Cesare

    Come hai ragione! Ho una nuova proposta per la riforma scolastica: aboliamo i livelli di astrazione dall’informatica!

    Il nuovo motto sara': “Un transistor, un opcode” :D

  • # 48
    Pleg
     scrive: 

    @ Homero

    Non ho capito assolutamente di cosa ti lamenti. Ad esempio, cosa intendi per “una marea di librerie che di fatto non consentono di ottenere le prestazioni proposte da nvidia” ? Ad esempio, il GTC e’ lunedi’ prossimo, e ci sono 280 ore di sessioni e seminari di gente che presenta progetti di GPU Computing, e sono ricercatori da tutto il mondo e di tutti i campi, non dipendenti NVidia.

    Certo se usi CUDA per programmi non parallelizzabili, non hai capito molto di come funziona :) ma per il resto, c’e’ un sacco di gente che lo usa con profitto. I nuovi supercomputer che escono e usano centinaia/migliaia di GPU sono li’ a testimoniarlo, cosi’ come la ventina di milioni di dollari che il Darpa ha dato a NVidia nell’ambito del progetto per raggiungere il prossimo livello computazionale (“exascale computing”).

    Certo che programmare in CUDA e’ difficile, ma non e’ che programmare un cluster con MPI sia una passeggiata.

  • # 49
    Cesare Di Mauro
     scrive: 

    @Mauro: l’importante è che se giochi a scacchi con la scacchiera e i pezzi in legno hai pure una laurea in botanica e una qualifica per il corso di intaglio e di falegname.

    @homero: ai tempi dell’Amiga non c’era solo l’Hardware Manual e i manuali di Motorola per la (meravigliosa) serie 68000.

    C’erano, e anche più corposi, i Rom Kernel Manual per le Librerie e i Device, oltre a tonnellate di altra documentazione (ed esempi) che Commodore forniva per scrivere applicazioni che giravano su AmigaOS.

    Già, AmigaOS. L’Amiga se la ricordano in molti perché era un connubio di hardware (CPU e chip custom) E (congiunzione) software (AmigaOS).

    Io li ho apprezzati entrambi, pur programmando quasi esclusivamente in assembly, e ti chiedo: come mai il team che sviluppò quegli stupendi computer decise di farci girare un sistema operativo sopra? Poteva benissimo lasciare l’hardware a completa disposizione dei programmatori, no?

    Un s.o. nasce per astrarre dall’hardware, ed è il motivo per cui oggi AROS, di cui ho parlato proprio nell’ultimo articolo che ho scritto qui su Appunti Digitali, consente di far girare AmigaOS su hardware completamente diverso dall’originale, richiedendo la compatibilità a livello di sorgente (binaria per i 68000) per le applicazioni (che quindi possono esservi portate!).

    L’astrazione è sicuramente un buona cosa, perché ci permette di svincolarci da certi dettagli e dai relativi legami che ci legano mani e piedi. Paradossalmente, è proprio grazie all’astrazione che siamo più liberi (e non abbiamo bisogno di studiare la teoria della stringhe per giocare a Green Beret o Marble Madness).

    Giusto per fare un esempio, i giochi che accedono direttamente all’hardware di Amiga funzionano e richiedono QUELLA piattaforma hardware (e tante volte ESATTAMENTE quella; vedi i tanti giochi che NON funzionavano su Amiga 3000 e/o 4000 e/o 1200, oppure che richiedevano i famigerati 512KB di schifosa memoria slowmem all’indirizzo $C00000 pena la classica Guru Meditation).

    Quelli scritti usando AmigaOS (e seguendone FEDELMENTE le linee guida), invece, resistono agli aggiornamenti dell’hardware, del s.o., e possono essere portati anche su piattaforme hardware / software completamente diverse (sorgenti permettendo).

    Lo stesso vale per le GPU. Sono nate per la grafica, ma col tempo si sono rivelate adatte anche ad alcuni compiti che prima erano appannaggio esclusivo della CPU. Ma da PARECCHI anni le GPU NON vengono programmate accedendo direttamente all’hardware, proprio per astrarne l’utilizzo rispetto all’implementazione.

    Se si fosse continuato come ai tempi dei 486 (fino al Pentium, va!), un gioco avrebbe dovuto tener conto delle numerose e diverse GPU disponibili, oppure supportarne soltanto alcune lasciando a imprecare i possessori delle altre schede video.

    O, peggio ancora, se si fosse scelto soltanto una GPU (da programmare direttamente in hardware, s’intende), il loro sviluppo sarebbe stato vincolato e castrato dalle sue specifiche tecniche (per ragioni di retrocompatibilità).

    Detto in altri termini, il loro progresso tecnologico sarebbe stato enormemente limitato. Il che è sicuramente un male, viste le innumerevoli evoluzioni e rivoluzioni che ci sono state (basti pensare alla differenza fra una GPU di 20 anni fa, e una moderna: sono IRRICONOSCIBILI!).

    Per il resto concordo con Pleg. Programmare CUDA è questione di capacità. C’è gente che ci riesce, altra no. Ci sono programmatori bravi, e altri scarsi. Come per tante cose, il problema sta nell’utilizzatore, non nello strumento (che ha pur sempre i suoi limiti, sia chiaro).

  • # 50
    homero
     scrive: 

    \x Programmare CUDA è questione di capacità. C’è gente che ci riesce, altra no. Ci sono programmatori bravi, e altri scarsi. Come per tante cose, il problema sta nell’utilizzatore, non nello strumento (che ha pur sempre i suoi limiti, sia chiaro)\

    allora io sono un programmatore scarso……pazienza….avevo chiesto ad nvidia per sopperire alla mia incapacità un debugger offline…che magari girava sulla CPU invece che sulla GPU in modo da poter testare gli algoritmi senza dover andare per tentativi… non ho avuto risposta…

    x cdmauro

    io non sono mai stato contrario all’HAL…sono stato contratrio da sempre all’HAL dell’HAL
    l’astrazione dell’astrazione è delirio…

  • # 51
    Alessio Di Domizio (Autore del post)
     scrive: 

    @ Mauro

    Probabilmente alcuni esempi sono esagerati. Ma il problema c’è eccome. Vedo attorno a me una sorta di atrofia cerebrale.
    La gente si sta abituando ad essere indirizzata, corretta, consigliata e prende per buono tutto quello che la tecnologia gli propina senza pensare, senza valutare, senza obiettare.
    Come se la tecnologia potesse pensare per loro.

    Sì ma vedi che il campo di applicazione di questo ragionamento è storicamente determinato e per nulla immutabile, dunque non c’è nulla di non arbitrario nel tuo ragionamento. Instupidirsi per mio padre significa fare i conti con la calcolatrice, per un vecchio sysop significa usare la GUI invece che la riga di comando, per te il TomTom invece della mappa topografica.

    Ma in ciascuno di questi casi l’instupidimento è molto relativo e molto arbitrario come conclusione (capisci bene che il ragionamento potrebbe riportarci dritti dritti ad Adamo ed Eva) e, nel contempo, c’è sempre un modo intelligente e uno stupido di usare la tecnologia. Se il navigatore ti dice di prendere una strada ma tu vedi con gli occhi cha hai ancora in dotazione un bel divieto d’accesso, non puoi rimproverare il navigatore se ti ritirano la patente.

  • # 52
    homero
     scrive: 

    “Se il navigatore ti dice di prendere una strada ma tu vedi con gli occhi cha hai ancora in dotazione un bel divieto d’accesso, non puoi rimproverare il navigatore se ti ritirano la patente.”

    quindi avere un sistema di controllo diretto è importante…ossia il navigatore è utile ma avere la segnaletica stradale e saperla leggere è garanzia di arrivare sani e salvi…
    invece oggi ti danno il navigatore e ti tolgono la segnaletica e anche il codice della strada ossia devi seguire pedissequamente il navigatore che detto tra noi spesso ti fa fare dei giri assurdi per arrivare a destinazione…
    …quindi la risposta al quesito dell’articolo te le sei data da solo…ossia bene il navigatore…ma la buona vecchia segnaletica serve ancora…

  • # 53
    Cesare Di Mauro
     scrive: 

    @homero: il debugger integrato in VisualStudio mi sembra sia ottimo. Roba che prima si poteva soltanto sognare.

    Che tu riesca o no a lavorare con CUDA non sono affari miei, perché non ci lavoro, ma so che tanta gente ci riesce.

    Che non sia facile è chiaro come il sole, e nessuno l’ha mai negato. A me, tra l’altro, nemmeno piace (tempo fa ho studiato un bel po’ di slide di nVidia sull’argomento, e il modello non mi aggrada assolutamente).

    Riguardo ad HAL e astrazione, beh, dopo l’HAL ci sono le librerie, che rappresentano il livello d’astrazione successivo, e… sono decisamente comode!

    Sopra le librerie ci sono i framework, che aggiungono un altro livello e altre comodità.

    E’ difficile ipotizzare dove ci si possa o debba fermare, perché tutto dipende dal problema che si deve risolvere, dai suoi requisiti, e dagli strumenti a disposizione per poterlo fare.

    Certamente mettere le mani avanti a priori non è né un bene né segno di professionalità.

    “Sono il signor Wolf, risolvo problemi”

  • # 54
    Alessio Di Domizio (Autore del post)
     scrive: 

    @ homero
    Non sono affatto d’accordo con l’interpretazione che dai delle mie parole. Ti faccio un esempio pratico. La mia compagna usa funzioni di excel al limite dell’esoterico, ma per lei non fa molta differenza se sotto la tastiera ci siano valvole, transistor o semi di girasole. Se per arrivare ad usare excel avesse prima dovuto imparare quello che toccava sapere negli anni ’80 solo per svolgere le operazioni più basilari, oggi con excel sarebbe ancora a “carissimo amico”. Certo, magari sarebbe più esperta di computer, ma a che pro? Solo la legge (codice della strada compreso) non ammette ignoranza. L’informatica sì, fino a quando si riescono a sfruttare adeguatamente le funzioni che si cercano dal computer.

  • # 55
    Kant
     scrive: 

    Il paragone con l’elettrodomestico è consono. A molti non importa come funzioni ma che funzioni.
    La conoscenza approfondita va riservata ai professionisti IT che della conoscenza, si avvantaggiano.

  • # 56
    pleg
     scrive: 

    @ Cesare

    Cos’e’ che non ti piace di preciso del modello usato da CUDA (onesta curiosita’, posso capire che non piaccia :) ? E’ basato sul concetto di stream processor, quindi e’ un po’ diverso, ma secondo me assomiglia molto ad un processore vettoriale, dal punto di vista dell’analisi delle prestazioni.

  • # 57
    Cesare Di Mauro
     scrive: 

    Lo trovo molto diverso e più complicato da come si programmano le classiche unità SIMD, a cui sono abituato Ma anche prendendo Larrabee, visto che parliamo di GPU, siamo anni luce di distanza.

    Per fare anche qualcosa di semplice richiede troppo lavoro.

    Sarà che sono troppo (ben) abituato col modello SIMD tradizionale. Tutto qui.

    Poi visti i risultati che si ottengono, tanto di cappello. Ma non fa per me, decisamente. :P

  • # 58
    Indahaus
     scrive: 

    My 2 cents: ci sono tanti tipi di utenti, e tanti modi di semplificare.
    Una semplificazione ben fatta (e che come tutte le cose perfette non esiste…) non dovrebbe pregiudicare la possibilità di andare più a fondo.
    Il tipo di utente smanettone farà con un sistema semplice quello che può fare con un sistema complesso, mentre l’utonto meno smaliziato o con meno voglia si limiterà a galleggiare in superficie.
    In questo modo userà un sistema semplice quando non userebbe, e non comprerebbe mai, un sistema più complesso… il che si traduce in maggiori fondi (leggi anche non solo economici, ma anche di attenzione e quindi di “drive” per gli sviluppatori di andare a lavorare su una piattaforma anzichè un’altra) per migliorare sia il sistema nelle sue fondamenta che nella sua superficie.
    Poi nel mondo reale certo ci sono molte semplificazioni malriuscite che fanno storcere il naso agli smanettoni, più o meno giustamente in base a quanto rendono complicato “andare a fondo”, e altre talmente assurde (MS Bob anyone?) che fanno scappare persino gli utonti…

Scrivi un commento!

Aggiungi il commento, oppure trackback dal tuo sito.

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.