Java e Cinema: tudo a ver!
Diversos sites e blogs por aí estão divulgando o novo vídeo daquela série do “Java everywhere“. Os vídeos até que são legaizinhos e tal, principalmente este último, onde substituíram o chinês (ou japonês, sei lá) careca presente no primeiro vídeo por uma mulher.
Todos aqueles que conhecem um pouco da história do Java sabem que, mesmo desde antes de Java se chamar Java ela busca essa coisa do “Java everywhere”, onde teríamos diversos tipos de aplicações rodando nos mais diversos dispositivos e plataformas. Rumo à dominação mundial! Aliás, as últimas notícias do mundo Java, assim como esse novo vídeo, me levam a crer que a Sun aposta mesmo todas suas fichas nessa filosofia. No entanto, a minha questão é: até que ponto isso é viável, ou ainda, possível? Não acredito, pelo menos por enquanto, que haja uma resposta para esta pergunta. Ahh, quem se importa?
Mudando totalmente de assunto… no final de semana passado, os felizes proprietários de TV a cabo (ou TV fechada, chame do que quiser) foram agraciados com a exibição de dois clássicos de ação/ficção científica: Matrix e Matrix Reloaded. Para a minha surpresa, enquanto assistia aos filmes, percebi muitas conexões com o “jeito Java de ser”, principalmente em relação a essa coisa do “Java everywhere”. Então decidi procurar por esta (e outras) conexões em alguns filmes, e o resultado você poderá conferir neste post.
Está preparado? Então vamos lá!
The Lord of the Rings
Um clássico do cinema, um dos melhores filmes na minha opinião. Vamos dar início mostrando a frase mais memorável do filme:
Three Rings for the Elven-kings under the sky,
Seven for the Dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them
In the Land of Mordor where the Shadows lie.
A conexão está bem clara aqui. Afinal, não é nenhuma novidade que a Sun está tentando criar Uma Plataforma para a todos dominar, Uma Plataforma para encontrá-los, Uma Plataforma para a todos trazer e na escuridão aprisioná-los.
Devo dizer que sou a favor de uma abordagem diferente: a que diz que todos têm o seu devido lugar. Então, pelo menos para mim, faria mais sentido se a Sun tentasse criar algo mais específico em vez de tentar empurrar a mesma tralha em tudo que é lugar. Quem já desenvolve com Java SE há algum tempo e tentou criar uma aplicação Java ME sabe exatamente do que eu estou falando.
Ok, vamos à próxima evidência. No caso, é uma fala de um dos meus personagens favoritos:
Gollum: My Precious!
O que isso tem a ver com Java? Tudo! Existem desenvolvedores e entusiastas da plataforma Java que são, literalmente, Gollums, no sentido de que pensam que Java é a única coisa que importa ou que faz diferença em suas vidas profissionais. Todo o resto não passa de um grande e belo nada.
Assim como no filme, para que possamos manter nossas mentes livres de qualquer veneno, é importante que estudemos outras coisas. Você se lembra do filme? Pois é… o que fez com que o Gollum ficasse daquele jeito foi sua obsessão inabalável pelo Um Anel. Então tenha cuidado, ou estará chamando Java de My Precious… logo, logo!
Continuando com esta maluquice, veja a fala abaixo:
Galadriel: [...] One ring to rule them all. One by one, the free people of Middle Earth fell to the power of the Ring. But there were some who resisted. A last alliance of men and elves marched against the armies of Mordor, and on the very slopes of Mount Doom, they fought for the freedom of Middle-Earth. Victory was near, but the power of the ring could not be undone. [...]
Se você conseguiu transpor as informações dispostas nesta fala para o “nosso mundo”, verá que estamos, neste exato momento, passando por uma situação semelhante. Ou seja, Java está fazendo com que todos caiam diante seu poder, mas, no entanto, existem pessoas que resistem corajosamente a tal poder e que lutam pela tão sonhada liberdade (neste contexto, a palavra “simplicidade” faria mais sentido). Enfim, infelizmente o final não é muito promissor para o Um Anel, uma vez que o mesmo é destruído e a paz volta a reinar na Terra-Média. Sad!
Apenas para concluir, a impressão que tenho é que, talvez, estejamos diante de uma das maiores farças da história do Java. Sim, pois os fatos me levam a crer que o pai do Java não é James Gosling, mas J. R. R. Tolkien!
Star Wars
Basicamente, tudo o que acontece nos filmes Star Wars gira em torno da Força. Mas, o que seria a Força? Abaixo, um trecho copiado do Wikipedia:
[...] Some think of the Force as a sentient entity that may be capable of intelligent activities; almost as if it were a sort of God - while others simply consider it something that can be manipulated and used as though it were a tool.
Conseguiu pegar a idéia? Obviamente, esse “problema” não ocorre somente com desenvolvedores Java, mas, certamente, costumava os afetar com mais intensidade.
Vamos voltar um pouco no tempo… você se lembra de como eram as coisas antes das explosões atômicas? Claro que se lembra:
Ah, precisamos desenvolver um Guestbook? Certo… tenho a arquitetura perfeita!
Embora a situação já não seja a mesma, é fato que muita gente tratava a Java Stack como sendo a solução para todos os problemas: com ela, seria possível acabar com o aquecimento global, com a fome mundial e, claro, fazer o Guestbook. Em outras palavras: tratavam a plataforma como sendo uma Lâmpada Mágica, onde bastava esfregar as mãos (e escrever alguns arquivos XML que só funcionavam nesta Lâmpada em específico) para que o Gênio acordasse de seu sono milenar e realizasse todos os desejos daqueles que o despertaram.
O bom nisso tudo é que aprendemos na pele. Estamos finalmente percebendo que o que temos em mãos é uma simples ferramenta. Uma ferramenta que serve para que nós possamos fazer o nosso trabalho. Ponto.
The Matrix
Se os outros dois filmes não te convenceram, este aqui provavelmente o fará. Abaixo segue um diálogo entre Trinity e Neo a respeito do que seria a Matrix (que, ao meu ver, poderia ser encarada como a equivalente cinematográfica da plataforma Java):
Neo: What is the Matrix?
Trinity: The answer is out there, Neo, and it’s looking for you, and it will find you if you want it to.
Pois é, na União Soviética, Java é quem usa VOCÊ!!
Outra fala:
Cypher: You know, I know this steak doesn’t exist. I know that when I put it in my mouth, the Matrix is telling my brain that it is juicy and delicious. After nine years, you know what I realize? Ignorance is bliss.
Legal essa fala. Não sei explicar o porquê, mas isso me fez lembrar do JavaServer Faces. Pois é, o JSF ainda não me convence… no entanto, estão sempre tentando! É a Matrix tentando dizer ao nosso cérebro que o JSF é um framework suculento e delicioso. Ah, por favor, né!?
O trecho a seguir é mais sutil. Entretanto, uma vez que se consegue perceber a conexão entre o diálogo e a idéia deste post, a coisa fica bem interessante:
[...]
Neo: This… this isn’t the Matrix?
Morpheus: No. It is another training program designed to teach you one thing: if you are not one of us, you are one of them.
Conseguiu perceber? (vide The Lord of the Rings) Pois então eu explico. Embora isso aconteça com todas as linguagens e plataformas, os entusiastas Java costumam ser mais “cabeçudos” quando o assunto em pauta é tecnologias não-Java.
Quem aqui não se lembra dos famosos flamewars “Java vs .Net”? Veja só, não estou “puxando a sardinha” para nenhum dos lados. Mas eram bons tempos aqueles… você via claramente que, principalmente os desenvolvedores Java, se sentiam humilhados por terem sua linguagem do coração sendo comparada com .Net. Devo admitir que isso já aconteceu até comigo. Por isso: se você não é um dos nossos, você é um deles!
Se você ainda não está convencido da conexão entre Matrix e a plataforma Java, a prova a seguir é incontestável. Segue abaixo o diálogo entre Morpheus e Neo, que mostra com exatidão o quanto a Matrix se parece com a plataforma Java:
Morpheus: The Matrix is everywhere. It is all around us. Even now, in this very room. You can see it when you look out your window or when you turn on your television. You can feel it when you go to work… when you go to church… when you pay your taxes. It is the world that has been pulled over your eyes to blind you from the truth.
Neo: What truth?
Morpheus: That you are a slave, Neo. Like everyone else you were born into bondage. Into a prison that you cannot taste or see or touch. A prison for your mind.
Hora para uma brincadeira: releia o diálogo, substituindo Morpheus por Ruby Programmer, Neo por Java Programmer e Matrix por Java. Provavelmente, você perceberá que já presenciou essa cena antes!
Bom, voltando ao assunto… perceba que, na grande maioria das vezes, os termos Matrix e Java são quase que intercambiáveis. Assista ao filme, trocando mentalmente Matrix por Java e você verá que tenho razão!
Conclusão
A conclusão que eu cheguei é que isso tudo é sem-noção demais para que se possa chegar a alguma conclusão. Mas, e você? Conhece algum filme que, por algum motivo, o faz lembrar do nosso amado Java?
Fotos por: Marios Tziortzis e Trinity-of-One
Tags: bizarrice, cinema, everywhere, java, quotes

23 de maio de 2007 às 7:41 am
Divertido
Ultimamente, andei pensando sobre a notação matemática para cálculos. Fiquei pensando em como, em qualquer escola que eu vá, qualquer livro que eu abra, em qualquer país (?), verei a mesma…linguagem: os mesmos símbolos para números, operadores, etc.
Isso é muito interessante. Me fez pensar, também, sobre a minha visão particular de que cada linguagem tem seu ponto forte e fraco, que cada linguagem resolve um problema diferente, que cada linguagem tem seu lugar, etc. E eu vi essa minha opnião toda desabando (ou, tomando outras formas), ao confrontar a realidade das linguagens de programação com a realidade das linguagens naturais e notações padrões.
Ainda, piorei ao lembrar de uma frase:
Hoje, provavelmente mais do que no passado, os programas são feitos para outros programadores e ferramentas como compiladores são responsáveis por ter uma idéia do que queremos fazer ao otimizar nossos códigos.
Isso me leva a outra coisa interessante: computadores são programáveis. Diferente de cálculos em papél, nós podemos ter diversas representações simultâneas de uma mesma idéia. E ao mudar a idéia em uma das notações, as outras podem ser atualizadas automaticamente.
Parêntesis: Pode-se argumentar que assembly seria a linguagem base, mas ela tem um problema forte nesse contexto todo: ela se comunica com a máquina e não, com nós, seres humanos e com a natureza de nossas idéias. Então, em um primeiro momento, ainda teriamos esta lacuna.
Além do mais, concordo com o que James Goslin disse uma vez ao ser questionado sobre as linguagens dinâmicas atuais. Existem muitas linguagens surgindo ou sendo utilizadas atualmente, mas elas se parecem de mais entre si e não tem tantos insights profundos que as diferenciam.
Pessoalmente, acho que precisamos de uma linguagem que seja uniforme como poucas são, pequena como poucas são, e expressiva como poucas são. O eixo fundamental é que ela esteja próxima da forma como vemos e entendemos as coisas, ao mesmo tempo que seja estupendamente escalável (a ponto de derivar novas notações, naturalmente). Ironicamente, uma linguagem próxima a isso já existe. E temos alguns exemplos inspiradores de pessoas que utilizam ela em sistemas de informação.
No fim das contas, lamento profundamente as empresas que empurram uma linguagem que não é uniforme, nem pequena, nem expressiva o suficiente como se ela fosse “the one true language”. Especialmente quando, a meu ver, elas convencem as pessoas de que a linguagem é exatamente o contrário, ou que ela representa bem um determinado conceito.
[brincadeira] E aí, vemos pessoas pirarem tentando, frenéticamente, entender melhor o que é o que e como as coisas funcionam. [/brincadeira]
Leitura interessante:
Mathematica Notation: Past and Future
23 de maio de 2007 às 9:15 am
Hummm… eu tenho quase certeza que VOCÊ é um agente da matrix, tentando nos jogar contra nossa crença!
Contra o my, my precious….
(Nice post!)
23 de maio de 2007 às 9:42 am
Olá Thiago, tudo bem?!
Muito obrigado pelo comentário… mais uma vez, arregaçou!
E as referências são muito bem vindas! Vou dar uma lida assim que possível.
Um abraço!
23 de maio de 2007 às 9:44 am
E aí, Rodrigo! Tudo bem?
Ahmm.. estou mais para o Gollum do que para Agente Smith. Aliás, não sabia que um ato tão inofensivo quanto assistir a um filme poderia me causar tais distúrbios mentais.
23 de maio de 2007 às 1:44 pm
Sobre programadores java serem gollums:
Todos programadores são assim, não só java.
Tem uns que são muito pirores mesmo, como os de Python e Ruby heheheeh esses sim se acham.
23 de maio de 2007 às 3:52 pm
Só para colocar lenha na fogueira, acabei de ler aqui este comentário:
“Trabalhando a 6 anos com Java posso dizer, OO tá muito longe de produtividade e reuso.”.
Isso ilustra bem o que eu quis dizer no meu penúltimo paráfrago. Convencer a si mesmo que uma linguagem representa tão bem os conceitos que a rotulam a tal ponto de se referir às duas (conceito e linguagem) como se fossem a mesma coisa.
Do que sabem os ingleses que só conhecem a Inglaterra?
23 de maio de 2007 às 4:55 pm
Nossa! Aquele sujeito me lembra alguém…
Eu hein!
25 de maio de 2007 às 11:56 am
Olá Daniel, interessante o post.
Sobre os vídeos, sabe onde eu poderia encontra-los com legendas ?
[]’s
mindu
25 de maio de 2007 às 5:33 pm
Hmm, na locadora?
[]s!
28 de maio de 2007 às 11:33 am
Daniel, eu estava falando dos vídeos de java.
Mas valeu pela atenção.
[]’s
mindu
28 de maio de 2007 às 11:39 am
Oh… :S
http://youtube.com/results?search_query=java+everywhere&search=Search
Mas não possuem legendas… aliás, a menos que alguém tenha pego os vídeos e os modificado, acredito que tal versão dos mesmos não existe.
[]s