{"id":166,"date":"2004-09-01T19:38:23","date_gmt":"2004-09-01T18:38:23","guid":{"rendered":"http:\/\/www.kill-9.it\/blog\/index.php\/i-grandi-hacker\/"},"modified":"2009-01-27T20:17:02","modified_gmt":"2009-01-27T19:17:02","slug":"i-grandi-hacker","status":"publish","type":"page","link":"https:\/\/www.kill-9.it\/blog\/index.php\/i-grandi-hacker\/","title":{"rendered":"I Grandi Hacker"},"content":{"rendered":"<p>Questa &egrave; la traduzione, pubblicata con il suo consenso, di un saggio di Paul Graham (<a href=\"http:\/\/www.paulgraham.com\/gh.html\">Great Hackers<\/a>)<br \/>\nUn ringraziamento ad Orlando, Ombretta e Stefano per il peer review: l&#8217;aiuto e` loro, ma le parti brutte sono mie &#8212; nel caso aveste suggerimenti, mandatemi una <a href=\"mailto:\/\/zen+gh@kill-9.it\">mail<\/a>.<br \/>\nLa pubblico oggi, come per celebrare il compleanno numero 35 di Internet. :)<\/p>\n<p><strong>I Grandi hacker<\/strong><\/p>\n<p>Luglio 2004<\/p>\n<p>(Questo saggio deriva da un talk tenuto ad Oscon 2004)<\/p>\n<p>Pochi mesi fa ho finito un nuovo <a href=\"http:\/\/www.amazon.com\/exec\/obidos\/tg\/detail\/-\/0596006624\">libro<\/a>, e continuo a notare nelle recensioni parole come &quot;provocante&quot; e &quot;controverso&quot;. Per tacere di &quot;idiota&quot;.<\/p>\n<p>Non volevo che il libro risultasse controverso. Stavo cercando di renderlo efficiente: non voglio far perdere tempo alla gente raccontando loro cose che gi&agrave; sanno, &egrave; pi&ugrave; efficiente fornire loro le differenze, ma suppongo che questo renda il libro allarmante.<\/p>\n<p><strong>Gli Edison<\/strong><\/p>\n<p>Non c&#8217;&egrave; dubbio su quale idea sia pi&ugrave; controversa: il suggerimento che la variazione di ricchezza possa non essere un problema cos&igrave; grande come pensiamo.<\/p>\n<p>Nel libro non ho detto che la variazione di ricchezza sia una buona cosa in se. Ho detto che in alcune situazioni potrebbe essere segno di qualcosa di buono. Un violento mal di testa non &egrave; una cosa buona, ma potrebbe essere segnale di qualcosa di positivo &#8212; per esempio, che state tornando coscienti dopo essere stati colpiti in testa.<\/p>\n<p>Una variazione di ricchezza pu&ograve; essere il segno di una variazione di produttivit&agrave; (in una societ&agrave; di una persona, sono identiche). E <u>quello<\/u> &egrave; quasi certamente un buon segno: se la vostra societ&agrave; non ha alcuna variazione di produttivit&agrave;, &egrave; probabilmente perch&eacute; non tutti sono Thomas Edison. Probabilmente &egrave; perch&eacute; non avete nessun Thomas Edison.<\/p>\n<p>In una societ&agrave; a basso contenuto di tecnologia non vedrete una gran variazione di produttivit&agrave;. Se avete una trib&ugrave; di nomadi che raccoglie legna per il fuoco, quanto sar&agrave; pi&ugrave; produttivo il miglior raccoglitore rispetto al peggiore? Un fattore di due? Quando invece date alle persone uno strumento complesso come un computer, la variazione in quello che ci possono fare &egrave; enorme.<\/p>\n<p>Non &egrave; un&#8217;idea nuova. Fred Brooks ne parlava nel 1974, e lo studio che citava era stato pubblicato nel 1968. Ritengo per&ograve; che avesse sottostimato la variazione tra i programmatori; Brooks scriveva della produttivit&agrave; in linee di codice: i migliori programmatori possono risolvere un dato problema in un decimo del tempo. Ma cosa succede se il problema non &egrave; dato? Nella programmazione, come in molti campi, la parte difficile non &egrave; tanto risolvere i problemi,  quanto decidere quale problema risolvere. L&#8217;immaginazione &egrave; difficile da misurare, ma in pratica determina la produttivit&agrave; che viene misurata in linee di codice.<\/p>\n<p>La produttivit&agrave; varia in ogni campo, ma ce ne sono alcuni in cui varia moltissimo. La variazione tra i programmatori &egrave; talmente grande che diventa una differenza di classe. Non credo che sia qualcosa di intrinseco alla programmazione, perch&eacute; in ogni campo la tecnologia moltiplica le differenze di produttivit&agrave;. Penso che quello che sta accadendo nella programmazione sia semplicemente che abbiamo una grande leva tecnologica, ed in ogni campo la leva stia diventando sempre pi&ugrave; lunga: la variazione che stiamo vedendo ora &egrave; qualcosa che sempre pi&ugrave; campi vedranno man mano che passa il tempo. Il successo delle aziende, e delle nazioni, dipender&agrave; sempre pi&ugrave; da come si confronteranno con questo.<\/p>\n<p>Se la variazione di produttivit&agrave; aumenta con la tecnologia, allora il contributo degli individui pi&ugrave; produttivi non sar&agrave; solamente ampio in modo sproporzionato, ma aumenter&agrave; con il passare del tempo. Quando si arriva al punto in cui il 90% del prodotto di un gruppo viene creato dall&#8217; 1% dei suoi membri, se qualcosa (le invasioni vichinghe, o la pianificazione centralizzata) abbassa la loro produttivit&agrave; verso la media &egrave; una tragedia.<\/p>\n<p>Se vogliamo ottenere il massimo da loro, dobbiamo capire queste persone cos&igrave; produttive. Cosa li motiva? Di cosa hanno bisogno per fare il loro lavoro? Come li si riconosce? Come li si convince a venire a lavorare per noi? E poi ovviamente c&#8217;&egrave; la Domanda: come si diventa uno di loro?<br \/>\n<!--more--><\/p>\n<p><strong>Pi&ugrave; del denaro<\/strong><\/p>\n<p>Conosco una manciata di super-hacker, cos&igrave; mi sono seduto a pensare cosa potessero avere in comune. Ci&ograve; che li contraddistingue probabilmente &egrave; il loro amore per la programmazione. I programmatori comuni scrivono codice per pagare le bollette. I grandi hacker pensano alla programmazione come qualcosa che fanno per divertimento, e sono deliziati dal trovare qualcuno che li paga per farlo.<\/p>\n<p>A volte si dice che i grandi programmatori siano indifferenti al denaro. Non &egrave; vero. E` vero che l&#8217;unica cosa che interessa loro &egrave; fare un lavoro interessante. Ma se guadagnate abbastanza, riuscirete a lavorare su qualunque cosa vogliate, ed &egrave; quella la ragione per cui gli hacker <em>sono<\/em> attratti dall&#8217;idea di guadagnare grandi somme di denaro. Ma finch&eacute; devono presentarsi al lavoro tutti i giorni sono pi&ugrave; interessati a <em>cosa<\/em> devono fare che a quanto vengono pagati per farlo.<\/p>\n<p>Dal punto di vista economico questo fatto &egrave; di una enorme importanza, dato che significa che non dovrete assolutamente pagare i grandi hacker quello che valgono. Un grande programmatore potrebbe essere dieci o cento volte pi&ugrave; produttivo di uno comune, ma si sentir&agrave; gi&agrave; fortunato ad essere pagato tre volte tanto. Come spiegher&ograve; pi&ugrave; avanti,  questo &egrave; dovuto parzialmente al fatto che i grandi hacker non sanno quanto sono bravi. Ma &egrave; anche perch&eacute; il denaro non &egrave; la cosa che desiderano di pi&ugrave;.<\/p>\n<p>Cosa vogliono gli hacker? Come a tutti gli artigiani, agli hacker piacciono i buoni strumenti. In realt&agrave;, la questione &egrave; limitativa, descritta in questi termini: sarebbe meglio dire che i buoni hacker trovano insopportabile usare cattivi strumenti. Semplicemente si rifiuteranno di lavorare su progetti con l&#8217;infrastruttura sbagliata.<\/p>\n<p>In una startup per cui ho lavorato una volta, una delle cose appese in bacheca era una pubblicit&agrave; di IBM. Raffigurava un AS400, ed il titolo credo dicesse &quot;gli hacker lo detestano&quot;[1].<\/p>\n<p>Quando decidete quale infrastruttura utilizzare per un progetto, non state semplicemente prendendo una decisione tecnica. State prendendo anche una decisione sociale, e potrebbe essere la pi&ugrave; importante delle due. Per esempio, se la vostra compagnia vuole scrivere un software, potrebbe sembrare una scelta prudente farlo in Java. Ma quando scegliete un linguaggio state anche scegliendo una comunit&agrave;. I programmatori che potrete assumere per lavorare su un progetto in Java non saranno cos&igrave; <a href=\"http:\/\/www.paulgraham.com\/pypar.html\">svegli<\/a> come quelli che potreste avere per lavorare su un progetto in Python. E la qualit&agrave; dei vostri hacker conta probabilmente di pi&ugrave; del linguaggio che scegliete. Anche se, francamente, il fatto che i buoni hacker preferiscano Python a Java dovrebbe dirvi qualcosa in merito a questi due linguaggi.<\/p>\n<p>Chi ha un approccio commerciale tende a preferire i linguaggi pi&ugrave; popolari perch&eacute; li vedono come degli standard. Non vogliono scommettere la loro azienda sul Betamax. Il problema con i linguaggi, per&ograve;, &egrave; che non sono  semplicemente degli standard. Se dovete spostare bit in una rete, &egrave; ovvio che userete TCP\/IP. Ma un linguaggio di programmazione non &egrave; semplicemente un formato. Un linguaggio &egrave; un mezzo di espressione.<\/p>\n<p>Ho letto che Java ha sorpassato Cobol come il linguaggio pi&ugrave; popolare. Come standard, non potreste desiderare di meglio. Ma come mezzo di espressione si pu&ograve; fare molto meglio. Di tutti i grandi programmatori che conosco solamente uno programmerebbe volentieri in Java. Ma tra tutti i grandi programmatori che mi vengono in mente che non lavorano per Sun su Java, neanche uno.<\/p>\n<p>I grandi hacker generalmente insistono anche per usare software open source. Non solo perch&eacute; &egrave; meglio, ma perch&eacute; da loro pi&ugrave; controllo. I buoni hacker insistono sul controllo, &egrave; una parte di quello che li rende buoni hacker: quando qualcosa  non va, sentono il bisogno di sistemarlo. Quello che volete &egrave; che abbiano lo stesso approccio al software che stanno scrivendo per voi. Non dovreste essere sorpresi quando si sentono nello stesso modo  nei confronti del sistema operativo.<\/p>\n<p>Un paio di anni fa un amico investitore mi raccont&ograve; di una nuova startup nella quale era coinvolto. Sembrava promettente, ma la volta successiva che gli parlai disse che avevano deciso di scrivere il loro software su Windows NT, e che avevano appena assunto uno sviluppatore NT molto esperto come responsabile tecnico. Quando sentii questo pensai &quot;questi sono condannati&quot;. Primo, il responsabile non poteva essere un grande hacker, perch&eacute; per diventare un brillante sviluppatore NT avrebbe dovuto utilizzare NT volontariamente e pi&ugrave; volte, e non riesco ad immaginare un grande hacker farlo; secondo, anche se fosse stato bravo avrebbe avuto i suoi problemi ad assumere qualcuno bravo a lavorare per lui visto che il progetto doveva essere sviluppato su NT.[2]<\/p>\n<p><strong>L&#8217;ultima frontiera<\/strong><\/p>\n<p>Dopo il software il pi&ugrave; importante strumento di un hacker &egrave; probabilmente il suo ufficio. Le grandi compagnie pensano che la dimensione degli uffici abbia lo scopo di rappresentare la gerarchia. Ma gli hacker usano il loro ufficio per pi&ugrave; di questo: per loro l&#8217;ufficio &egrave; un posto dove pensare. E se siete una societ&agrave; di tecnologia, i loro pensieri sono il vostro prodotto. E` per questo motivo che far lavorare gli hacker in un ambiente rumoroso e pieno di distrazioni &egrave; come avere una fabbrica di vernici dove l&#8217;aria &egrave; piena di fuliggine.<\/p>\n<p>I fumetti di Dilbert hanno molto da dire sui cubicoli, e con buona ragione. Tutti gli hacker che conosco li detestano. La semplice prospettiva di venire interrotti &egrave; sufficiente a scoraggiarli dal lavorare su problemi difficili. Se si vuole riuscire a fare del lavoro vero in un ufficio con i cubicoli, ci sono due opzioni: lavorare a casa, o arrivare presto\/tardi\/nel fine settimana, quando non c&#8217;&egrave; in giro nessuno. Le aziende non si rendono conto che questo &egrave; il segno che c&#8217;&egrave; qualcosa che non va? Ci si aspetta che l&#8217;ambiente dell&#8217;ufficio sia un posto dove lavorare, non dove lavorare nonostante tutto.<\/p>\n<p>Le aziende come Cisco sono orgogliose del fatto che chiunque abbia un cubicolo, persino il CEO. Ma non sono cosi avanti come pensano; ovviamente vedono ancora lo spazio in ufficio come un segno del rango. Da notare che Cisco &egrave; famosa per fare molto poco sviluppo dei prodotti in casa. Ottengono nuova tecnologia comprando le startup che l&#8217;hanno creata &#8212; dove si presume che gli hacker avessero un posto tranquillo dove lavorare.<\/p>\n<p>Una grande azienda che capisce di cosa abbiano bisogno gli hacker &egrave; Microsoft. Una volta vidi una pubblicit&agrave; per l&#8217;assunzione con una grande foto di una porta. Lavora per noi, era la premessa, e noi ti daremo un posto di lavoro dove lavorare sul serio. E sapete, Microsoft &egrave; particolare tra le grandi aziende, nel senso che sanno sviluppare software in casa. Non bene, magari, ma abbastanza bene.<\/p>\n<p>Se le aziende vogliono che gli hacker siano produttivi, devono guardare a cosa fanno a casa. A casa, gli hacker possono sistemarsi le cose in modo da fare il massimo. Quando sono a casa, gli hacker non lavorano in open space rumorosi; lavorano in stanze, con le porte. Lavorano in posti confortevoli e raccolti con gente intorno e un posto dove camminare quando devono riflettere, non in scatole di vetro in mezzo a chilometri quadrati di parcheggi. Hanno un divano su cui fare un pisolino quando sono stanchi, invece che stare seduti in coma alla propria scrivania facendo finta di lavorare. Non ci sono gruppi di persone con aspirapolveri che ruggiscono ogni sera, durante le prime ore utili per l&#8217;hacking. Non ci sono riunioni o (Dio ci scampi!) ritiri aziendali, o esercizi per compattare i gruppi. E quando guardate cosa fanno sul loro computer, quello che vedete rafforza quello che dicevo in precedenza a proposito degli strumenti. Possono dover usare Windows e Java al lavoro, ma a casa, dove possono scegliere in autonomia, &egrave; pi&ugrave; probabile che li troviate ad usare Perl e Linux.<\/p>\n<p>In effetti, queste statistiche sulla popolarit&agrave; di Cobol o Java possono indurre in errore. Quello che dovremmo guardare, se volessimo sapere quali sono gli strumenti migliori, &egrave; cosa scelgono gli hacker quando sono liberi di farlo &#8212; cio&egrave; per i loro progetti. Quando vi fate questa domanda ci&ograve; che scoprite &egrave; che i sistemi operativi open source hanno una parte dominante del mercato e che il linguaggio numero uno &egrave; probabilmente Perl.<\/p>\n<p><strong>Interessante<\/strong><\/p>\n<p>Insieme a buoni strumenti, gli hacker vogliono progetti interessanti. Cosa rende interessante un progetto? Beh, ovviamente &egrave; interessante lavorare su applicazioni chiaramente fighe come aerei fantasma o software per effetti speciali, ma ogni applicazione pu&ograve; essere interessante se propone sfide tecniche nuove. Per questo &egrave; difficile predire quali problemi piaceranno agli hacker, perch&eacute; alcuni diventano interessanti solamente quando la gente che ci lavora scopre un nuovo tipo di soluzione. Prima della ITA (che ha scritto il software dietro a Orbitz), la gente che lavorava alle ricerche delle tariffe aeree probabilmente pensava fosse una delle applicazioni pi&ugrave; noiose che si potessero immaginare. La ITA per&ograve; l&#8217;ha resa <a href=\"http:\/\/www.paulgraham.com\/carl.html\">interessante<\/a> ridefinendo il problema in modo pi&ugrave; ambizioso.<\/p>\n<p>Penso che a Google sia accaduta la stessa cosa: quando &egrave; stata fondata il pensiero comune tra i cosiddetti portali era che la ricerca fosse noiosa e poco importante. I ragazzi in Google non pensavano che fosse noiosa, ed &egrave; il motivo per cui la fanno cos&iacute; bene.<\/p>\n<p>Questa &egrave; un&#8217;area dove i manager possono fare la differenza. Come i genitori dicono ad un figlio &quot;scommetto che non puoi sistemare la tua stanza in 10 minuti&quot;, un buon manager a volte pu&ograve; ridefinire un problema in modo pi&ugrave; interessante. Pare che Steve Jobs sia particolarmente bravo in questo, in parte avendo semplicemente alti standard. C&#8217;erano un sacco di computer piccoli ed economici prima del Mac. Lui ha ridefinito il problema cos&igrave;: facciamone uno bellissimo. Questo ha spinto gli sviluppatori pi&ugrave; di quanto qualsiasi bastone o carota potessero fare.<\/p>\n<p>Ce l&#8217;hanno sicuramente fatta. Quando apparve il primo Mac, non dovevate accenderlo per sapere che era un buon prodotto, potevate dirlo dal case. Poche settimane fa stavo camminando per la strada a Cambridge, ed ho visto nella spazzatura quello che sembrava essere il contenitore per il trasporto di un Mac. Ci ho guardato dentro, e c&#8217;era un Mac SE. L&#8217;ho portato a casa e attaccato all&#8217;alimentazione, ed &egrave; partito. La faccina felice Macintosh, e poi il Finder. Mio Dio, &egrave; stato cos&igrave; semplice&#8230; &egrave; stato come&#8230; Google.<\/p>\n<p>Agli hacker piace lavorare per gente con standard alti. Per&oacute; essere esigenti non &egrave; abbastanza. Dovete insistere sulle cose giuste, il che di solito significa che dovete essere un hacker anche voi. Ho visto svariati articoli su come gestire i programmatori, ma in realt&agrave; ce ne dovrebbero essere solamente due: uno su come fare se siete un programmatore anche voi, e l&#8217;altro se non lo siete. Il secondo potrebbe probabilmente condensato in una parola: rinunciate.<\/p>\n<p>Il problema non &egrave; tanto nella gestione quotidiana, gli hacker veramente bravi si gestiscono praticamente da soli. Il problema &egrave; che se non siete un hacker non potete capire chi sono i bravi hacker. Un problema simile spiega perch&eacute; le macchine americane siano cosi brutte. Io lo chiamo il &quot;paradosso del design&quot;. Potete credere di poter fare prodotti bellissimi semplicemente assumendo un grande designer per progettarli, ma se non avete <a href=\"http:\/\/www.paulgraham.com\/taste.html\">buon gusto<\/a> come pensate di riconoscere un buon designer? Per definizione, non potete giudicare dai suoi lavori passati. Non potete giudicare nemmeno dai premi che ha vinto o dei lavori che ha fatto &#8211; dato che il design, come molti campi, &egrave; guidato prima dalla moda e dal passaparola e solo molto dopo dalla effettiva abilit&agrave;. Non c&#8217;&egrave; modo di aggirare il problema: non potete gestire un processo che deve produrre cose bellissime senza sapere cosa sia il bello. Le auto americane sono brutte perch&eacute; le case automobilistiche americane sono guidate da persone con cattivo gusto.<\/p>\n<p>Molte persone in questo paese [<em>gli Stati Uniti, NdT<\/em>] pensano al buon gusto come qualcosa di elusivo, o addirittura frivolo. Non &egrave; nessuna delle due cose. Per orientare il design un manager deve essere l&#8217;utente pi&ugrave; esigente dei prodotti aziendali. E se avete ottimo gusto potete, come Steve Jobs, trarre soddisfazione dal tipo di problemi a cui quelli bravi amano dedicarsi.<\/p>\n<p><strong>Piccoli problemi fastidiosi<\/strong><\/p>\n<p>E` abbastanza facile dire quali siano i problemi non interessanti: quelli dove invece che risolvere pochi problemi grandi e chiari bisogna risolverne tanti piccoli. Uno dei progetti peggiori tipicamente &egrave; scrivere un&#8217;interfaccia ad un software che &egrave; pieno di bug. Un altro &egrave; dover personalizzare qualcosa per i bisogni confusi e mal definiti del cliente. Per gli hacker questo tipo di progetti sono una morte lenta.<\/p>\n<p>La caratteristica distintiva dei piccoli problemi fastidiosi &egrave; che non si impara nulla da loro. Scrivere un compilatore &egrave; interessante perch&eacute; permette di capire cosa sia un compilatore. Ma scrivere un&#8217;interfaccia ad un software malfunzionante non fa imparare nulla, perch&eacute; i bug sono casuali.[3] Non &egrave; il fastidio che spinge i buoni hacker ad evitare i piccoli problemi fastidiosi, ma l&#8217;autoconservazione. Lavorare su problemi piccoli e fastidiosi rende stupidi. I buoni hacker li evitano per lo stesso motivo per cui le modelle evitano McDonald&#8217;s.<\/p>\n<p>In alcuni problemi, ovviamente, questa caratteristica &egrave; intrinseca &#8211; e per via della legge sulla domanda e l&#8217;offerta, pagano particolarmente bene. Un&#8217;azienda che riuscisse a trovare un modo di spingere i grandi hacker a lavorare su problemi noiosi avrebbe grande successo. Come fare?<\/p>\n<p>Uno dei posti dove questo accade &egrave; nelle startup. Nella nostra abbiamo avuto Robert Morris come amministratore di sistema. &egrave; come avere i Rolling Stones a suonare alla festa della Cresima: non potete assumere quel tipo di talento. Ma gli individui  faranno ogni genere di orribile lavoro per un&#8217;azienda di cui sono i fondatori.[4]<\/p>\n<p>Le aziende pi&ugrave; grandi risolvono il problema separando i reparti. Trattengono la gente valida creando dipartimenti di ricerca e sviluppo dove gli impiegati non devono lavorare direttamente sui piccoli problemi fastidiosi dei clienti.[5] In questo modello, i dipartimenti di ricerca funzionano come una miniera. Producono nuove idee; forse il resto dell&#8217;azienda riuscir&agrave; ad usarle.<\/p>\n<p>Magari non c&#8217;&egrave; bisogno di arrivare a questi estremi. La programmazione &#8216;<a href=\"http:\/\/www.paulgraham.com\/progbot.html\">bottom-up<\/a>&#8216; suggerisce un altro modo di dividere l&#8217;azienda: far produrre alla gente valida gli strumenti. Se la vostra azienda produce un software per fare la cosa X, si pu&ograve; costruire un gruppo che scrive strumenti  software di quel tipo e un altro che usa questi strumenti per scrivere le applicazioni. In questo modo potreste riuscire a far scrivere  alle persone sveglie il 99% del  vostro codice, per&ograve; tenendole separate dagli utenti quanto lo sarebbero in un dipartimento di ricerca tradizionale. Gli sviluppatori di strumenti avrebbero i loro utenti, ma sarebbero soltanto gli altri sviluppatori interni all&#8217;azienda.[6]<\/p>\n<p>Se Microsoft usasse questo approccio, il loro software non sarebbe pieno di buchi di sicurezza, perch&eacute; un numero inferiore di persone valide che scrivono le applicazioni farebbe lavori di basso livello come allocare memoria. Invece che scrivere Word direttamente in C, incastrerebbero grandi blocchi di Lego in linguaggio-Word. (Credo che il termine tecnico sia Duplo).<\/p>\n<p><strong>Ammassi<\/strong><\/p>\n<p>Insieme ai problemi interessanti, quello che piace agli hacker sono gli altri buoni hacker. I grandi hacker tendono ad ammassarsi, a volte in modo spettacolare come allo Xerox Parc. Per questo non attrarrete hacker in modo linearmente proporzionale all&#8217;ambiente che creerete per loro. La tendenza all&#8217;aggregazione porta a credere che sia pi&ugrave; dipendente dalla radice quadrata dell&#8217;ambiente, quindi &egrave; una situazione dove il vincitore prende tutto. In ogni istante, ci sono solamente una decina o una ventina di posti dove gli hacker vorrebbero lavorare, e se il vostro non &egrave; uno di questi non avrete solamente <em>meno<\/em> grandi hacker. Non ne avrete nessuno.<\/p>\n<p>Avere validi hacker non &egrave; un motivo sufficiente da solo a rendere la vostra una azienda di successo. Funziona bene per Google o la ITA, che sono i punti caldi di questo momento, ma nel passato non ha aiutato la Thinking Machines o la Xerox. La Sun ha avuto un buon successo per un po&#8217;, ma il loro modello di business &egrave; un ascensore verso il basso: in quella situazione non ti possono salvare neanche i migliori hacker.<\/p>\n<p>Penso per&ograve; che a parit&agrave; di condizioni, una societ&agrave; che possa attrarre validi hacker avr&agrave; un grande vantaggio. Ci sono persone che non condividono questa visione: quando stavamo cercando finanziamenti negli anni &#8217;90 molti ci dissero che le aziende di software non si imponevano scrivendo grande software, ma attraverso il marchio, la dominazione dei canali e facendo gli accordi giusti.<\/p>\n<p>Pare ci credessero veramente, e penso di sapere perch&eacute;. Perch&eacute; quello che un sacco di finanziatori stanno cercando, almeno inconsciamente, &egrave; la prossima Microsoft. Ovviamente se Microsoft &egrave; il vostro modello non state cercando aziende che sperano di avere successo scrivendo grande software. Il problema &egrave; che i finanziatori sbagliano a cercare la prossima Microsoft, perch&eacute; nessuna startup lo potr&agrave; essere a meno che qualche altra compagnia non sia disposta a piegarsi al momento giusto e diventare la prossima IBM.<\/p>\n<p>E` un errore usare Microsoft come modello, perch&eacute; la loro intera cultura deriva da un solo colpo fortunato. Microsoft &egrave; fuori dalla media, se la eliminate vi renderete conto che sono i buoni prodotti tendono ad avere successo sul mercato. Quello che gli investitori dovrebbero cercare &egrave; la prossima Apple, oppure la prossima Google.<\/p>\n<p>Credo che Bill Gates sappia tutto questo; quello che lo spaventa di Google non &egrave; la potenza del loro marchio, ma il fatto che ha hacker migliori.[7]<\/p>\n<p><strong>Riconoscimento<\/strong><\/p>\n<p>Quindi chi sono i grandi hacker? Come capite quando ne incontrate uno? Questo &egrave; un problema davvero difficile, persino gli hacker non  lo sanno. Sono abbastanza sicuro che il mio amico Trevor Blackwell sia un grande hacker. Forse avete letto su Slashdot come si &egrave; costruito la <a href=\"http:\/\/www.tlb.org\/scooter.html\">sua Segway<\/a>.<\/p>\n<p> La parte notevole del progetto &egrave; che si &egrave; scritto tutto il software in un giorno (in Python, incidentalmente). Per Trevor &egrave; normale. Quando lo incontrai per la prima volta per&ograve; mi sembr&ograve; un idiota totale. Era nell&#8217;ufficio di Robert Morris balbettando cose senza senso, e ricordo che stavo dietro di lui facendo gesti disperati a Robert di scacciare questo scemo dal suo ufficio cos&igrave; che potessimo andare a pranzo. Anche Robert dice che l&#8217;aveva giudicato male all&#8217;inizio: pare che quando lo incontr&ograve; per la prima volta, Trevor avesse appena iniziato a scrivere ogni aspetto della sua vita su un pacco di schede che portava sempre con s&eacute;. Era anche appena arrivato dal Canada, aveva un forte accento e portava il mullet.<\/p>\n<p>Il problema &egrave; complicato dal fatto che gli hacker, nonostante la loro reputazione di indifferenza per le regole sociali, a volte mettono un sacco di impegno nel sembrare vincenti. Quando ero all&#8217;universit&agrave; bazzicavo dalle parti del laboratorio di Intelligenza Artificiale del MIT, e all&#8217;inizio ero piuttosto intimidito: tutti parlavano velocissimi. Dopo un po&#8217; imparai il trucco: non &egrave; necessario pensare pi&ugrave; velocemente, basta usare il doppio delle parole per dire qualunque cosa.<\/p>\n<p>Con questa quantit&agrave; di rumore rispetto al segnale &egrave; difficile riconoscere i grandi hacker quando li si incontra. Io non ci riesco neanche adesso; non si pu&ograve; neanche giudicare dai loro curriculum, sembra che l&#8217;unico modo sia lavorare assieme a loro su qualcosa.<\/p>\n<p>Questa &egrave; la ragione per cui le aree ad alta tecnologia sono concentrate vicino alle universit&agrave;: l&#8217;ingrediente non sono tanto i docenti, quanto gli studenti. Le startup nascono vicino alle universit&agrave; perch&eacute; queste ultime riuniscono persone giovani e promettenti e le fanno lavorare insieme sugli stessi progetti: quelli validi imparano a riconoscersi a vicenda e creano nuovi progetti insieme.<\/p>\n<p>Proprio perch&eacute; l&#8217;unico modo di distinguere un grande hacker  &egrave; lavorarci insieme, loro stessi non sono in grado di giudicare quanto sono bravi. Questo &egrave; vero fino ad un certo punto in molti campi. Ho scoperto che le persone che sono brave in qualcosa, pi&ugrave; che essere convinte della loro grandezza sono confuse dal fatto che tutti gli altri sembrano incompetenti. Loro stessi pensano generalmente di essere stupidi e pigri, che il loro cervello funziona nel modo giusto un giorno su dieci, e che &egrave; solo questione di tempo prima che li scoprano.<\/p>\n<p>Quello che &egrave; particolarmente difficile &egrave; scoprire quanto bravi siano perch&eacute; &egrave; difficile confrontare il loro lavoro. In altri campi &egrave; molto pi&ugrave; semplice: sui 100 metri, il pi&ugrave; veloce si scopre in 10 secondi. Anche in matematica sembra esserci un consenso comune su quali siano i problemi di difficile soluzione e di cosa sia una buona soluzione. Ma l&#8217;hacking &egrave; come la scrittura, chi pu&ograve; dire quale sia il migliore di due romanzi? Sicuramente non gli autori.<\/p>\n<p>Tra gli hacker, almeno, altri hacker possono giudicare. Questo perch&eacute; al contrario degli scrittori, gli hacker collaborano sui progetti, e quando si butta qualche problema difficile al di l&agrave; dalla rete, si impara piuttosto in fretta quanto duramente torna indietro. Per&ograve; gli hacker non riescono a guardarsi al lavoro, quindi quando chiedete ad un grande hacker quanto bravo sia, quasi certamente vi risponder&agrave; che non lo sa. Non sta semplicemente facendo il modesto. Non lo sa veramente.<\/p>\n<p>Non lo sa nessuno di noi, a parte di gente con la quale abbiamo lavorato. Questo ci mette in una strana situazione: non sappiamo chi debbano essere i nostri eroi. Gli hacker che diventano famosi tendono a diventarlo per strani casi di pubbliche relazioni. Quando devo fare un esempio di un grande hacker, non so mai chi usare. I primi nomi che mi vengono in mente tendono ad essere quelli di persone che conosco personalmente, per&ograve; &egrave; brutto citarli. Cos&igrave;, penso, magari devo citare Richard Stallman, o Linus Torvalds, o Alan Kay, o qualcuno di famoso come loro. Per&ograve; non ho idea se queste persone siano grandi hacker, non ho mai lavorato con loro su nulla.<\/p>\n<p>Se esiste un Michael Jordan dell&#8217;hacking nessuno lo sa, compreso lui.<\/p>\n<p><strong>Coltivazione<\/strong><\/p>\n<p>Infine, la domanda che tutti gli hacker si sono fatti: come si diventa un grande hacker? Non so se sia possibile diventarlo. Quello che so di certo &egrave; che certamente si possono fare cose che ti rendono stupido, e se puoi renderti stupido, ti puoi anche rendere intelligente.<\/p>\n<p>La chiave per essere un buon hacker potrebbe essere nel lavorare su quello che ci piace. Quando penso ai grandi hacker che conosco, una cosa che hanno in comune &egrave; l&#8217;estrema difficolt&agrave; nel farli lavorare su qualcosa quando non vogliono. Non so se questa sia la causa o l&#8217;effetto; potrebbe essere entrambi.<\/p>\n<p>Per fare qualcosa bene bisogna amarla. Perci&ograve; finch&eacute; potete preservare l&#8217;hacking come qualcosa che amate, &egrave; probabile che lo farete bene. Cercate di mantenere il senso di stupore che avevate per la programmazione a 14 anni. Se siete preoccupati che il vostro attuale lavoro vi stia facendo marcire il cervello, probabilmente &egrave; vero.<\/p>\n<p>I migliori hacker tendono ad essere intelligenti, naturalmente, ma questo &egrave; vero in molti campi. C&#8217;&egrave; una qualche qualit&agrave; che &egrave; unica degli hacker? Ho chiesto ad alcuni amici, e la prima cosa che hanno menzionato tutti &egrave; stata la curiosit&agrave;. Ho sempre immaginato che la gente sveglia fosse curiosa &#8211; quella curiosit&agrave; &egrave; semplicemente la derivata prima della conoscenza. Per&ograve; apparentemente gli hacker sono particolarmente curiosi, specialmente di come funzionano le cose. In effetti ha senso, visto che i programmi sono in effetti grandi descrizioni di come funzionano le cose.<\/p>\n<p>Diversi amici hanno citato l&#8217;abilit&agrave; degli hacker di concentrarsi, l&#8217;abilit&agrave;, come qualcuno l&#8217;ha definita, di &quot;spegnere tutto quello che &egrave; fuori dalle loro teste&quot;. Questo l&#8217;ho notato sicuramente. Ho anche sentito svariati hacker sostenere che non sanno pi&ugrave; programmare anche solo dopo aver bevuto mezza birra. L&#8217;hacking quindi richiede forse una speciale abilit&agrave; di concentrazione. Forse i grandi hacker riescono a caricare una grande quantit&agrave; di contesto nella loro testa, cos&igrave; che quando guardano una linea di codice non vedono solamente quella linea, ma l&#8217;intero programma intorno ad essa. John McPhee scrisse che il successo di Bill Bradley nella pallacanestro era dovuto parzialmente alla sua straordinaria visione periferica. Una vista &quot;perfetta&quot; significa avere circa 47 gradi di visione periferica verticale. Bill Bradley ne aveva 70: poteva vedere il canestro quando stava guardando il pavimento. Forse i grandi hacker hanno una simile innata abilit&agrave;. (Baro, usando un linguaggio molto <a href=\"http:\/\/www.paulgraham.com\/power.html\">denso<\/a> cio che &egrave; dato per scontato.)<\/p>\n<p>Potete coltivare queste qualit&agrave;? Non saprei. Per&ograve; potete almeno non reprimerle. Questo &egrave; il mio migliore tentativo per darvi una ricetta; se &egrave; possibile diventare grandi hacker, il modo di farlo potrebbe essere fare questo patto con voi stessi: non dovrete mai lavorare su progetti noiosi (a meno che la vostra famiglia non muoia di fame altrimenti) e in cambio non vi permetterete mai di fare un lavoro a met&agrave;. Tutti i grandi hacker che conosco pare abbiano accettato questo patto, anche se forse nessuno di loro ha avuto la possibilit&agrave; di scegliere.<\/p>\n<p><strong>Note<\/strong><\/p>\n<ol>\n<li>In verit&agrave;, devo dire che l&#8217;IBM costruisce dell&#8217;hardware decente. Ho scritto questo saggio su un portatile IBM. [<em>e sullo stesso hardware e` stato tradotto, NdT<\/em>]<\/li>\n<li>Si scopr&igrave; che lo erano. Chiusero pochi mesi pi&ugrave; tardi.<\/li>\n<li>Credo che sia questo ci&ograve; che la gente intende quando parlano del &quot;significato della vita&quot;. Facendoci caso, pare una strana idea. La vita non &egrave; un&#8217;espressione: come potrebbe avere un significato? Per&ograve; potrebbe avere una qualit&agrave; che assomiglia molto ad un significato. In un progetto come un compilatore, sar&agrave; necessario risolvere un sacco di problemi, ma tutti ricadranno in uno schema, come un segnale. Al contrario, quando i problemi che andranno risolti saranno casuali, sembreranno rumore.\n<\/li>\n<li>Einstein ad un certo punto lavor&ograve; disegnando frigoriferi (aveva delle azioni).<\/li>\n<li>&egrave; difficile dire cosa esattamente costituisca ricerca nel mondo dei computer, ma come prima approssimazione &egrave; il software che non ha utenti.<\/li>\n<li>Non credo che sia la sua pubblicazione che fa desiderare agli hacker di lavorare nei laboratori di ricerca. Credo che sia principalmente il non dover andare in riunione per tre ore con un product manager a parlare dei problemi di integrazione della graffetta parlante con la versione 13.27 di Word in coreano.\n<\/li>\n<li>Qualcosa di simile &egrave; accaduta per molto tempo nell&#8217;industria delle costruzioni. In una casa costruita duecento anni fa, i costruttori integravano tutto. Con il passare del tempo i costruttori assemblano sempre pi&ugrave; componenti disegnati e realizzati da qualcun altro. Questo, come l&#8217;arrivo del desktop publishing, ha dato alla gente la libert&agrave; di sperimentare in modi disastrosi, per&ograve; &egrave; certamente pi&ugrave; efficiente.\n<\/li>\n<li>Google &egrave; molto pi&ugrave; pericoloso per Microsoft di quanto non fosse Netscape. Probabilmente pi&ugrave; pericoloso di quanto non sia mai stata nessuna altra compagnia, ma non perch&eacute; siano determinati a combattere. Sulla pagina con le offerte di lavoro, dicono che uno dei loro valori chiave &egrave; &quot;Don&#8217;t be evil&quot; [&quot;<em>non essere cattivi&quot; NdT<\/em>]. In un&#8217;azienda che vendesse olio di soia o attrezzi da miniera, un&#8217;affermazione di questo tipo sarebbe quanto meno eccentrica. Credo per&ograve; che tutti noi nel mondo dei computer sappiamo riconoscere per chi possa essere una dichiarazione di guerra simile. [<em>Microsoft &egrave; nota anche come &quot;The Evil Empire&quot;, ovvero l&#8217;Impero del Male &#8211; NdT<\/em>].\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Questa &egrave; la traduzione, pubblicata con il suo consenso, di un saggio di Paul Graham (Great Hackers) Un ringraziamento ad Orlando, Ombretta e Stefano per il peer review: l&#8217;aiuto e` loro, ma le parti brutte sono mie &#8212; nel caso aveste suggerimenti, mandatemi una mail. La pubblico oggi, come per celebrare il compleanno numero 35 &hellip; <a href=\"https:\/\/www.kill-9.it\/blog\/index.php\/i-grandi-hacker\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;I Grandi Hacker&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-166","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/pages\/166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=166"}],"version-history":[{"count":5,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/pages\/166\/revisions"}],"predecessor-version":[{"id":320,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/pages\/166\/revisions\/320"}],"wp:attachment":[{"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}