
Sign up to save your podcasts
Or
Traduzione in italiano di Francesco Mottini dall’essay originale di Paul Graham "Java's Cover" [Aprile 2001].
Questo saggio è nato dalle conversazioni che ho avuto con diversi altri programmatori sul perché Java puzzasse di sospetto. Non è una critica a Java! È un caso di studio sul sesto senso degli hacker.
Nel corso del tempo, gli hacker acquisiscono un fiuto per la buona (e la cattiva) tecnologia. Ho pensato che sarebbe stato interessante provare a scrivere cosa mi ha fatto sembrare Java sospetto.
Alcune persone che hanno letto questo articolo pensano che sia un tentativo interessante di scrivere di qualcosa di cui non è mai stato scritto prima. Altri dicono che mi metterò nei guai in quanto verrò percepito come qualcuno che scrive di qualcosa che non capisce. Quindi, nel caso serva a qualcosa, lasciatemi chiarire che non sto scrivendo di Java (che non ho mai usato), ma del sesto senso degli hacker (su cui ho riflettuto molto).
L'aforisma "non si giudica un libro dalla sua copertina" ha avuto origine ai tempi in cui i libri venivano venduti in semplici copertine di cartone, per essere poi rilegati a cura di ciascun acquirente secondo i propri gusti. A quei tempi, non si poteva giudicare un libro dalla copertina. Rispetto ad allora, l'editoria è progredita: gli editori di oggi lavorano duramente per rendere la copertina qualcosa da cui si possa giudicare un libro.
Personalmente, trascorro molto tempo nelle librerie e mi sembra di aver ormai imparato a capire tutto quello che gli editori vogliono dirmi di un libro, e forse anche qualcosa di più. Il tempo che non ho passato in libreria l'ho passato per lo più davanti al computer e mi sembra di aver imparato allo stesso modo, in qualche misura, a giudicare anche la tecnologia dalla sua copertina. Potrebbe essere solo fortuna, ma mi sono salvato da alcune tecnologie che si sono rivelate essere delle vere schifezze.
Finora, Java mi sembra una schifezza. Non ho mai scritto un programma in Java, né ho mai dato più di uno sguardo ai libri in merito, ma ho la sensazione che non sarà un linguaggio di grande successo. Potrei sbagliarmi; fare previsioni sulla tecnologia è un'attività pericolosa. Ma per quello che vale, come una sorta di capsula del tempo, ecco perché non mi piace come Java si presenta:
* È stato esageratamente pubblicizzato. I veri standard tecnologici non hanno bisogno di essere promossi. Nessuno ha dovuto promuovere C, o Unix, o HTML. Un vero standard tende a essere già affermato nel momento in cui la maggior parte delle persone ne sente parlare. Sullo schermo radar degli hacker, Perl è grande quanto Java, o più grande, solo grazie alla forza dei suoi meriti.
* Ha un obiettivo mediocre. Nel white paper originale su Java, Gosling dice esplicitamente che Java è stato progettato per non essere troppo difficile per i programmatori abituati al C. È stato progettato per essere un altro C++: C più alcune idee prese da linguaggi più avanzati. Come i creatori di sitcom o di cibo spazzatura o di pacchetti turistici, i progettisti di Java stavano consapevolmente progettando un prodotto per persone meno intelligenti di loro. Storicamente, i linguaggi progettati per essere utilizzati da altre persone si sono rivelati pessimi: Cobol, PL/I, Pascal, Ada, C++. I linguaggi decenti sono stati quelli progettati dai loro creatori per loro stessi: C, Perl, Smalltalk, Lisp.
* Ha secondi fini. Una volta qualcuno ha detto che il mondo sarebbe stato un posto migliore se le persone avessero scritto libri solo se avessero avuto qualcosa da dire, piuttosto che semplicemente perché vogliono scrivere un libro. Allo stesso modo, il motivo per cui sentiamo parlare sempre di Java non è perché ha qualcosa da dire sui linguaggi di programmazione. Sentiamo parlare di Java come parte di un piano di Sun per scalzare Microsoft.
* Nessuno lo ama. I programmatori di C, Perl, Python, Smalltalk e Lisp amano i loro linguaggi. Non ho mai sentito nessuno dire di amare Java.
* Le persone sono costrette a usarlo. Molte delle persone che conosco che utilizzano Java lo fanno perché si sentono obbligate. O perché ritengono di doverlo fare per ottenere un finanziamento, o perché pensano che i clienti lo vogliano, o perché gli è stato detto di farlo dai loro superiori. Sono persone intelligenti; se la tecnologia fosse buona, l'avrebbero usata volontariamente.
* Ci sono troppi sviluppatori coinvolti. I migliori linguaggi di programmazione sono stati sviluppati da piccoli gruppi. Java sembra essere gestito da un comitato. Se si dovesse rivelare un buon linguaggio, sarebbe il primo esempio nella storia di un buon linguaggio sviluppato da un comitato.
* È macchinoso. Da quel poco che so di Java, sembra che ci siano molti protocolli per ogni cosa. I linguaggi veramente buoni non sono così. Ti lasciano fare quello che vuoi e si tolgono di mezzo.
* È pseudo-hip. Sun ora finge che Java sia un linguaggio open-source di base, come Perl o Python. Si dia il caso che Java sia controllato da un'azienda gigantesca. Quindi è probabile che il linguaggio abbia la stessa squallida goffaggine di qualsiasi altra cosa che esce da una grande azienda.
* È progettato per le grandi organizzazioni. Le grandi organizzazioni hanno obiettivi diversi dagli hacker. Vogliono linguaggi che siano (o che siano ritenuti) adatti all'uso da parte di grandi gruppi di programmatori mediocri, linguaggi con caratteristiche che, come i limitatori di velocità dei camion U-Haul, impediscano agli sciocchi di fare troppi danni. Agli hacker non piacciono i linguaggi che li trattano con sufficienza. Gli hacker vogliono semplicemente potenza. Storicamente, i linguaggi progettati per le grandi organizzazioni (PL/I, Ada) hanno perso, mentre i linguaggi per hacker (C, Perl) hanno vinto. Il motivo: l'hacker adolescente di oggi è il CTO di domani.
* Piace alle persone sbagliate. I programmatori che ammiro di più non sono, nel complesso, affascinati da Java. A chi piace Java? Agli uomini d'affari, che non sanno distinguere un linguaggio dall'altro, ma che continuano a sentire di Java dalla stampa; ai programmatori delle grandi aziende, che si stupiscono di scoprire che esiste qualcosa di meglio del C++; e ai laureandi, pronti ad apprezzare qualsiasi cosa che possa far loro ottenere un lavoro (ci sarà questo nel test?). Le opinioni di queste persone cambiano a ogni piè sospinto.
* Il suo papà è in difficoltà. Il modello di business di Sun sta venendo compromesso su due fronti. I processori Intel a basso costo, dello stesso tipo utilizzato per le macchine desktop, sono ora veloci più che a sufficienza per i server. E FreeBSD sembra essere un sistema operativo per server almeno altrettanto valido quanto Solaris. La pubblicità di Sun implica che i server Sun siano necessari per applicazioni di livello industriale. Se questo fosse vero, Yahoo sarebbe la prima a comprare Sun; ma quando lavoravo lì, i server erano tutti Intel con FreeBSD. Questo non è di buon auspicio per il futuro di Sun. Se Sun si dovesse trovare in difficoltà, potrebbe trascinare con sé Java.
* Piace al Dipartimento della Difesa. Il Dipartimento della Difesa sta incoraggiando gli sviluppatori a utilizzare Java. Questo mi sembra il segno più incriminante tra tutti. Il Dipartimento della Difesa fa un ottimo lavoro (anche se costoso) per difendere il Paese, ma ama i piani, le procedure e i protocolli. La loro cultura è l'opposto di quella degli hacker; su questioni di software tendono a sbagliare. L'ultima volta che il Dipartimento della Difesa ha apprezzato un linguaggio di programmazione è stato Ada.
Tenete presente che questa non è una critica a Java, ma una critica alla sua copertina. Non conosco Java abbastanza bene da poterlo apprezzare o meno. Questa è solo una spiegazione del perché non sono desideroso di impararlo.
Può sembrare altezzoso scartare un linguaggio prima ancora di aver provato a scriverci dei programmi. Ma è una cosa che tutti i programmatori devono fare. Esistono troppe tecnologie per impararle tutte. Dovrete imparare a giudicare dai segni esteriori quali valgono il vostro tempo. Ho altezzosamente scartato allo stesso modo Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, il protocollo SET, VMS, Novell Netware e CORBA, tra gli altri. Mi sapevano semplicemente di sbagliato.
Può darsi che nel caso di Java mi stia sbagliando. Potrebbe essere che un linguaggio promosso da una grande azienda per scalzare un'altra, progettato da un comitato per un pubblico "mainstream", pubblicizzato fino agli estremi e amato dal Dipartimento della Difesa, sia comunque un linguaggio pulito, bello e potente con cui mi piacerebbe programmare. Potrebbe essere, ma sembra molto improbabile.
Traduzione in italiano di Francesco Mottini dall’essay originale di Paul Graham "Java's Cover" [Aprile 2001].
Questo saggio è nato dalle conversazioni che ho avuto con diversi altri programmatori sul perché Java puzzasse di sospetto. Non è una critica a Java! È un caso di studio sul sesto senso degli hacker.
Nel corso del tempo, gli hacker acquisiscono un fiuto per la buona (e la cattiva) tecnologia. Ho pensato che sarebbe stato interessante provare a scrivere cosa mi ha fatto sembrare Java sospetto.
Alcune persone che hanno letto questo articolo pensano che sia un tentativo interessante di scrivere di qualcosa di cui non è mai stato scritto prima. Altri dicono che mi metterò nei guai in quanto verrò percepito come qualcuno che scrive di qualcosa che non capisce. Quindi, nel caso serva a qualcosa, lasciatemi chiarire che non sto scrivendo di Java (che non ho mai usato), ma del sesto senso degli hacker (su cui ho riflettuto molto).
L'aforisma "non si giudica un libro dalla sua copertina" ha avuto origine ai tempi in cui i libri venivano venduti in semplici copertine di cartone, per essere poi rilegati a cura di ciascun acquirente secondo i propri gusti. A quei tempi, non si poteva giudicare un libro dalla copertina. Rispetto ad allora, l'editoria è progredita: gli editori di oggi lavorano duramente per rendere la copertina qualcosa da cui si possa giudicare un libro.
Personalmente, trascorro molto tempo nelle librerie e mi sembra di aver ormai imparato a capire tutto quello che gli editori vogliono dirmi di un libro, e forse anche qualcosa di più. Il tempo che non ho passato in libreria l'ho passato per lo più davanti al computer e mi sembra di aver imparato allo stesso modo, in qualche misura, a giudicare anche la tecnologia dalla sua copertina. Potrebbe essere solo fortuna, ma mi sono salvato da alcune tecnologie che si sono rivelate essere delle vere schifezze.
Finora, Java mi sembra una schifezza. Non ho mai scritto un programma in Java, né ho mai dato più di uno sguardo ai libri in merito, ma ho la sensazione che non sarà un linguaggio di grande successo. Potrei sbagliarmi; fare previsioni sulla tecnologia è un'attività pericolosa. Ma per quello che vale, come una sorta di capsula del tempo, ecco perché non mi piace come Java si presenta:
* È stato esageratamente pubblicizzato. I veri standard tecnologici non hanno bisogno di essere promossi. Nessuno ha dovuto promuovere C, o Unix, o HTML. Un vero standard tende a essere già affermato nel momento in cui la maggior parte delle persone ne sente parlare. Sullo schermo radar degli hacker, Perl è grande quanto Java, o più grande, solo grazie alla forza dei suoi meriti.
* Ha un obiettivo mediocre. Nel white paper originale su Java, Gosling dice esplicitamente che Java è stato progettato per non essere troppo difficile per i programmatori abituati al C. È stato progettato per essere un altro C++: C più alcune idee prese da linguaggi più avanzati. Come i creatori di sitcom o di cibo spazzatura o di pacchetti turistici, i progettisti di Java stavano consapevolmente progettando un prodotto per persone meno intelligenti di loro. Storicamente, i linguaggi progettati per essere utilizzati da altre persone si sono rivelati pessimi: Cobol, PL/I, Pascal, Ada, C++. I linguaggi decenti sono stati quelli progettati dai loro creatori per loro stessi: C, Perl, Smalltalk, Lisp.
* Ha secondi fini. Una volta qualcuno ha detto che il mondo sarebbe stato un posto migliore se le persone avessero scritto libri solo se avessero avuto qualcosa da dire, piuttosto che semplicemente perché vogliono scrivere un libro. Allo stesso modo, il motivo per cui sentiamo parlare sempre di Java non è perché ha qualcosa da dire sui linguaggi di programmazione. Sentiamo parlare di Java come parte di un piano di Sun per scalzare Microsoft.
* Nessuno lo ama. I programmatori di C, Perl, Python, Smalltalk e Lisp amano i loro linguaggi. Non ho mai sentito nessuno dire di amare Java.
* Le persone sono costrette a usarlo. Molte delle persone che conosco che utilizzano Java lo fanno perché si sentono obbligate. O perché ritengono di doverlo fare per ottenere un finanziamento, o perché pensano che i clienti lo vogliano, o perché gli è stato detto di farlo dai loro superiori. Sono persone intelligenti; se la tecnologia fosse buona, l'avrebbero usata volontariamente.
* Ci sono troppi sviluppatori coinvolti. I migliori linguaggi di programmazione sono stati sviluppati da piccoli gruppi. Java sembra essere gestito da un comitato. Se si dovesse rivelare un buon linguaggio, sarebbe il primo esempio nella storia di un buon linguaggio sviluppato da un comitato.
* È macchinoso. Da quel poco che so di Java, sembra che ci siano molti protocolli per ogni cosa. I linguaggi veramente buoni non sono così. Ti lasciano fare quello che vuoi e si tolgono di mezzo.
* È pseudo-hip. Sun ora finge che Java sia un linguaggio open-source di base, come Perl o Python. Si dia il caso che Java sia controllato da un'azienda gigantesca. Quindi è probabile che il linguaggio abbia la stessa squallida goffaggine di qualsiasi altra cosa che esce da una grande azienda.
* È progettato per le grandi organizzazioni. Le grandi organizzazioni hanno obiettivi diversi dagli hacker. Vogliono linguaggi che siano (o che siano ritenuti) adatti all'uso da parte di grandi gruppi di programmatori mediocri, linguaggi con caratteristiche che, come i limitatori di velocità dei camion U-Haul, impediscano agli sciocchi di fare troppi danni. Agli hacker non piacciono i linguaggi che li trattano con sufficienza. Gli hacker vogliono semplicemente potenza. Storicamente, i linguaggi progettati per le grandi organizzazioni (PL/I, Ada) hanno perso, mentre i linguaggi per hacker (C, Perl) hanno vinto. Il motivo: l'hacker adolescente di oggi è il CTO di domani.
* Piace alle persone sbagliate. I programmatori che ammiro di più non sono, nel complesso, affascinati da Java. A chi piace Java? Agli uomini d'affari, che non sanno distinguere un linguaggio dall'altro, ma che continuano a sentire di Java dalla stampa; ai programmatori delle grandi aziende, che si stupiscono di scoprire che esiste qualcosa di meglio del C++; e ai laureandi, pronti ad apprezzare qualsiasi cosa che possa far loro ottenere un lavoro (ci sarà questo nel test?). Le opinioni di queste persone cambiano a ogni piè sospinto.
* Il suo papà è in difficoltà. Il modello di business di Sun sta venendo compromesso su due fronti. I processori Intel a basso costo, dello stesso tipo utilizzato per le macchine desktop, sono ora veloci più che a sufficienza per i server. E FreeBSD sembra essere un sistema operativo per server almeno altrettanto valido quanto Solaris. La pubblicità di Sun implica che i server Sun siano necessari per applicazioni di livello industriale. Se questo fosse vero, Yahoo sarebbe la prima a comprare Sun; ma quando lavoravo lì, i server erano tutti Intel con FreeBSD. Questo non è di buon auspicio per il futuro di Sun. Se Sun si dovesse trovare in difficoltà, potrebbe trascinare con sé Java.
* Piace al Dipartimento della Difesa. Il Dipartimento della Difesa sta incoraggiando gli sviluppatori a utilizzare Java. Questo mi sembra il segno più incriminante tra tutti. Il Dipartimento della Difesa fa un ottimo lavoro (anche se costoso) per difendere il Paese, ma ama i piani, le procedure e i protocolli. La loro cultura è l'opposto di quella degli hacker; su questioni di software tendono a sbagliare. L'ultima volta che il Dipartimento della Difesa ha apprezzato un linguaggio di programmazione è stato Ada.
Tenete presente che questa non è una critica a Java, ma una critica alla sua copertina. Non conosco Java abbastanza bene da poterlo apprezzare o meno. Questa è solo una spiegazione del perché non sono desideroso di impararlo.
Può sembrare altezzoso scartare un linguaggio prima ancora di aver provato a scriverci dei programmi. Ma è una cosa che tutti i programmatori devono fare. Esistono troppe tecnologie per impararle tutte. Dovrete imparare a giudicare dai segni esteriori quali valgono il vostro tempo. Ho altezzosamente scartato allo stesso modo Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, il protocollo SET, VMS, Novell Netware e CORBA, tra gli altri. Mi sapevano semplicemente di sbagliato.
Può darsi che nel caso di Java mi stia sbagliando. Potrebbe essere che un linguaggio promosso da una grande azienda per scalzare un'altra, progettato da un comitato per un pubblico "mainstream", pubblicizzato fino agli estremi e amato dal Dipartimento della Difesa, sia comunque un linguaggio pulito, bello e potente con cui mi piacerebbe programmare. Potrebbe essere, ma sembra molto improbabile.