Loading...

A CAPA DO JAVA

Original

Abril de 2001

Esse ensaio se desenvolveu a partir de conversas que tive com vários outros programadores sobre por que o Java parecia suspeito. Não é uma crítica ao Java! É um estudo de caso do radar dos hackers.

Com o tempo, os hackers desenvolvem um faro para boas (e más) tecnologias. Achei que poderia ser interessante tentar escrever o que fazia o Java parecer suspeito para mim.

Algumas pessoas que leram isso acham que é uma tentativa interessante de escrever sobre algo que não foi escrito antes. Outros dizem que vou me meter em problemas por parecer estar escrevendo sobre coisas que não entendo. Então, só para caso isso faça algum bem, deixe-me esclarecer que não estou escrevendo aqui sobre Java (que nunca usei), mas sobre o radar dos hackers (que pensei muito).

O aforismo "você não pode julgar um livro pela capa" se originou em tempos em que os livros eram vendidos com capas de papelão simples, para serem encadernados por cada comprador de acordo com seu próprio gosto. Naqueles dias, não se podia julgar um livro pela capa. Mas a publicação avançou desde então: os editores atuais trabalham duro para fazer a capa algo que você possa julgar um livro.

Eu passo muito tempo em livrarias e sinto que já aprendi a entender tudo o que os editores querem me dizer sobre um livro, e talvez um pouco mais. O tempo que não passei em livrarias passei principalmente em frente a computadores, e sinto que aprendi, até certo ponto, a julgar a tecnologia pela sua aparência também. Pode ser apenas sorte, mas me salvei de algumas tecnologias que acabaram se revelando verdadeiros fracassos.

Até agora, o Java parece um fracasso para mim. Nunca escrevi um programa em Java, nunca mais do que dei uma olhada em livros de referência sobre isso, mas tenho a intuição de que não será uma linguagem muito bem-sucedida. Posso acabar me enganando; fazer previsões sobre tecnologia é um negócio perigoso. Mas, para o que vale, como uma espécie de cápsula do tempo, aqui está o motivo pelo qual não gosto da aparência do Java:

  1. Ele foi tão energeticamente promovido. Padrões reais não precisam ser promovidos. Ninguém teve que promover C, ou Unix, ou HTML. Um verdadeiro padrão tende a já estar estabelecido quando a maioria das pessoas ouviu falar dele. Na tela do radar dos hackers, Perl é tão grande quanto Java, ou maior, apenas pela força de seus próprios méritos.

  2. Ele é direcionado para baixo. No artigo original do Java, Gosling diz explicitamente que o Java foi projetado para não ser muito difícil para programadores acostumados ao C. Foi projetado para ser outro C++: C mais algumas ideias tiradas de linguagens mais avançadas. Como os criadores de sitcoms ou junk food ou pacotes turísticos, os designers do Java estavam conscientemente projetando um produto para pessoas não tão inteligentes quanto eles. Historicamente, linguagens projetadas para outras pessoas usarem têm sido ruins: Cobol, PL/I, Pascal, Ada, C++. As boas linguagens foram aquelas que foram projetadas para seus próprios criadores: C, Perl, Smalltalk, Lisp.

  3. Ele tem motivos ocultos. Alguém uma vez disse que o mundo seria um lugar melhor se as pessoas escrevessem livros apenas porque tinham algo a dizer, em vez de porque queriam escrever um livro. Da mesma forma, a razão pela qual ouvimos sobre o Java o tempo todo não é porque ele tem algo a dizer sobre linguagens de programação. Ouvimos sobre Java como parte de um plano da Sun para minar a Microsoft.

  4. Ninguém ama. Programadores de C, Perl, Python, Smalltalk e Lisp amam suas linguagens. Nunca ouvi ninguém dizer que amava Java.

  5. As pessoas são forçadas a usá-lo. Muitas das pessoas que conheço usando Java estão usando porque sentem que têm que fazê-lo. Ou é algo que sentiram que tinham que fazer para conseguir financiamento, ou algo que pensaram que os clientes queriam, ou algo que lhes foi dito para fazer pela gerência. Essas são pessoas inteligentes; se a tecnologia fosse boa, elas teriam usado voluntariamente.

  6. Tem muitos cozinheiros. As melhores linguagens de programação foram desenvolvidas por pequenos grupos. O Java parece ser administrado por um comitê. Se acabar sendo uma boa linguagem, será a primeira vez na história que um comitê projetou uma boa linguagem.

  7. É burocrático. Pelo pouco que sei sobre Java, parece haver muitos protocolos para fazer as coisas. Linguagens realmente boas não são assim. Elas permitem que você faça o que quiser e saem do caminho.

  8. É pseudo-descolado. A Sun agora finge que o Java é um esforço de linguagem de código aberto e de base popular como Perl ou Python. Este só acontece de ser controlado por uma grande empresa. Portanto, a linguagem é provavelmente tão sem graça e desajeitada quanto qualquer outra que saia de uma grande empresa.

  9. É projetado para grandes organizações. Grandes organizações têm objetivos diferentes dos hackers. Elas querem linguagens que são (acreditadas como) adequadas para uso por grandes equipes de programadores medianos— linguagens com recursos que, como os limitadores de velocidade em caminhões U-Haul, impedem tolos de causar muito dano. Hackers não gostam de uma linguagem que os menospreza. Hackers só querem poder. Historicamente, linguagens projetadas para grandes organizações (PL/I, Ada) perderam, enquanto linguagens de hackers (C, Perl) venceram. A razão: o hacker adolescente de hoje é o CTO de amanhã.

  10. As pessoas erradas gostam. Os programadores que mais admiro não são, em geral, cativados pelo Java. Quem gosta de Java? Executivos, que não sabem uma linguagem da outra, mas sabem que continuam ouvindo sobre Java na imprensa; programadores em grandes empresas, que ficam surpresos ao descobrir que há algo ainda melhor que C++; e alunos de graduação que estão prontos para gostar de qualquer coisa que possa lhes garantir um emprego (isso estará na prova?). As opiniões dessas pessoas mudam com cada vento.

  11. Seu pai está em apuros. O modelo de negócios da Sun está sendo minado em duas frentes. Processadores Intel baratos, do mesmo tipo usado em máquinas de mesa, agora são mais do que rápidos o suficiente para servidores. E o FreeBSD parece ser pelo menos tão bom um SO para servidores quanto o Solaris. A publicidade da Sun implica que você precisa de servidores Sun para aplicações de força industrial. Se isso fosse verdade, o Yahoo estaria em primeiro da fila para comprar Suns; mas quando trabalhei lá, os servidores eram todos caixas Intel rodando FreeBSD. Isso prenuncia um futuro sombrio para a Sun. Se a Sun enfrentar problemas, pode arrastar o Java para baixo com ela.

  12. O DoD gosta. O Departamento de Defesa está incentivando desenvolvedores a usar Java. Isso me parece o sinal mais condenatório de todos. O Departamento de Defesa faz um bom (embora caro) trabalho de defender o país, mas eles adoram planos, procedimentos e protocolos. Sua cultura é o oposto da cultura hacker; em questões de software, eles tendem a apostar errado. A última vez que o DoD realmente gostou de uma linguagem de programação, foi Ada.

Tenha em mente que isso não é uma crítica ao Java, mas uma crítica à sua capa. Não conheço o Java o suficiente para gostar ou desgostar dele. Esta é apenas uma explicação de por que não sinto que estou ansioso para aprendê-lo.

Pode parecer imprudente descartar uma linguagem antes mesmo de você ter tentado escrever programas nela. Mas isso é algo que todos os programadores têm que fazer. Há muitas tecnologias por aí para aprender todas. Você tem que aprender a julgar pelos sinais externos quais valerão seu tempo. Eu também descartei imprudentemente Cobol, Ada, Visual Basic, o IBM AS400, VRML, ISO 9000, o protocolo SET, VMS, Novell Netware e CORBA, entre outros. Eles simplesmente cheiravam mal.

Pode ser que no caso do Java eu esteja enganado. Pode ser que uma linguagem promovida por uma grande empresa para minar outra, projetada por um comitê para um público "mainstream", promovida aos céus, e amada pelo DoD, aconteça, no entanto, de ser uma linguagem limpa, bonita, poderosa, que eu adoraria programar. Pode ser, mas parece muito improvável.