segunda-feira, 30 de abril de 2007

Do Jaca ao Java

Em Python your Life, eu disse que não gostava de Java. E realmente não gostava.
Conheci Java no Internet World 1996, no Rio de Janeiro :-) Minha última visita a cidade maravilhosa. Solteiro, com algum dinheiro no bolso... ah... Copacabana e os barzinhos do Rio... putz, lembrei que já em 96 eu deixei o relógio em casa, com medo de assaltos. Mas o Rio é lindo.

Bem, a Sun apresentou o Java e principalmente as diferenças entre o Java e o JavaScript. Eu tinha um pequeno provedor em Manaus e usávamos um servidor Sun. Eu sofria para escrever os programas do provedor em C++, lembro que passei 2 semanas para achar os arquivos binários do GCC para microSparc... viva o Google (naquela época o melhor era o AltaVista). O Java era grátis e o compilador da Sun custava uns US$3.000,00 (sem os manuais...), me apaixonei por Applets e por um bom tempo Java era só Applets.

Mas para mim, a linguagem nunca fora nada mais que um C++ disfarçado. Eu não tinha problemas com ponteiros, até achava normal trabalhar com eles e ter seg faults aqui e ali :-)
O problema é que na época eu não via nada além disso. Por que fazer algo em Java se eu já tinha minhas bibliotecas em C e C++? Não era tão claro para mim as vantagens de ser multiplaforma. E Java 1.0 ninguém esquece... No Windows, eu tinha o Delphi e no Linux tinha também o C/C++, era só recompilar. Para mim, o Java ficou sendo uma forma legal de enriquecer home pages com applets ou de deixar meus CGIs mais lentos que em C/C++.

O tempo passou e a linguagem Java se popularizou. EJB, Java 2, Hibernate e Tomcat foram aparecendo. Mas nesta época eu já não estava mais programando e sim gerenciando. Perdi o desenvolvimento do Java.

Só considerei Java seriamente no Desktop depois de ver o Eclipse e sua biblioteca.
Depois começamos a fazer programas para um cliente no exterior, usando Java e o BEA. Comecei a gostar, mas realmente fiquei preocupado quanto a produtividade dos programadores, precisava de muito framework para fazer algo funcionar. Programador Java não ganha pouco, graças a Deus :-) Haja máquina e dinheiro com licenças... um estagiário começou a trabalhar com Tomcat e o tigre comeu o pobre rapaz :-) Não foi um recomeço amigável. Nesta época eu comecei a chamar Java de Jaca. Era grande e ninguém conseguia comer sozinho :-)

Ano passado, eu comecei a desenvolver um aplicativo novo para Web, usando Ajax e múltiplos Threads. Adivinhem que linguagem eu escolhi para desenvolver meu pequeno monstro? Java. Fiquei impressionado com as melhorias do Java 5, principalmente com templates e operações com lista. A biblioteca da linguagem também é excelente, fora o Eclipse com seu preço amigável. Criei o servidor e este passa muito bem. Inclusive, migrei alguns utilitários de baixo nível escritos em Visual C++ e .Net para Java. Semana passada instalei o servidor pela primeira vez no Linux e ficou muito bom, não precisei alterar nada. Troquei o banco de dados de MySQL para Firebird 1.5 e depois para o Firebird 2.0. Não precisei mudar quase nada, graças ao Hibernate.
Ok, o servidor usa uns 47 MB de Ram só para ele... mas um pente de 512 MB custa uns €30,00. Eu custo bem mais caro. Entre comprar o pente e perder meus cabelos debugando código reentrante em C++... prefiro comprar o pente :-)

Já estou usando o Java 6, não precisam ficar preocupados.

Assim fiz as pazes com o Java. Desculpas aos pobres coitados que quiseram vender Java para mim antes, dou o braço a torcer. Vocês tinham razão. Mas que era uma Jaca, era.

3 comentários:

Bruno disse...

Olha só, que mundo pequeno! Nilo Menezes! FPF, Manaus!

Muito provavelmente vc não se lembra de mim, mas já passei pelo seu crivo na FPF a alguns anos atrás (não me lembro exatamente o ano), mas participei de uma seleção em Java e na ocasião eu não dominava bulhufas da linguagem. Você foi "bonzinho" e deixou que eu resolvesse a questão em C++.

Era coisa "simples", uma questão apenas: escrever um programa "console based" onde o usuário deveria informar um diretório e o programa deveria criar um pacotão cujo conteúdo deveria ser todo o conteúdo do diretório bem como seus diretórios. Como o Nilo foi bonzinho e me deixou codificar o programinha em C++, encarei o desafio.

Eu só faltava chorar ao ver a minha situação ali, arrancando os cabelos com o Borland C++ 5.5 Command Line Compiler, enquanto dois outros colegas desenvolviam em Java. Pela expressão deles, aquilo em Java parecia um passeio no parque. Bem diferente do que eu estava passando ali, fazendo tudo "na unha", recursividade e tudo mais, sem nenhuma lib. UFA!

No final, apesar de ter feito o programa e o mesmo ter demonstrado um funcionamento aceitável, não fui chamado para trabalhar na FPF! Talvez por eu ter aberto o jogo com a psicóloga e falado que eu sou um cara "meio explosivo" às vezes? Talvez ela tenha me entendido mal :-P

Pra que eu estou escrevendo tudo isso, vocês me perguntam? Apenas pra mostrar o cenário da época em que conheci o Nilo. Cara tranquilão, super gente fina! Levou a gente pra conhecer Manaus no carro particular dele! E nunca tive oportunidade de agradecê-lo por tudo isso! Foi por causa de uma ligação que recebi do Nilo que hoje estou para prestar minha primeira prova de exame para Sun Certified Java Programmer, depois de 3 anos ensinando a linguagem na universidade que me formei. Prova igual aquela, nunca mais em C++ puro! hehehe

Mas então, Nilo. Achei esse blog teu através dessa mensagen tua: http://discuss.joelonsoftware.com/default.asp?biz.5.488126

Fiquei feliz em saber que vc escolheu o Turbo Delphi Explorer para a sua aplicação "Super Leve". Escolha correta você fez, eu diria, como bom Delphiano que também sou!

Você já deve saber, mas o Turbo Delphi Explorer, apesar de ser gratuito, possui uns "segredinhos" que podem deixá-los bastante TURBINADO por assim dizer. E olha que tenho um email do Nick Hodges, da CodeGear, sobre o assunto, dizendo que isso NÃO se trata de pirataria!

Não uso software pirata e graças ao Turbo Delphi Explorer, posso viver com a consciência tranquila como desenvolvedor!

Cara, um grande abraço pra vc, tudo de bom! Saudades dos dias que passei com o pessoal lá da FPF! Abração pra todos!

Bruno Freitas
http://www.brunofreitas.com/
bootsectorARROBAig.com.br

Nilo Menezes disse...

Oi Bruno,

Bons tempos os da seleção em Manaus, conheci muita gente boa naquela época.

C++ é coisa pra doido mesmo :-) Eu ainda não me livrei da linguagem, pois ainda trabalho com Symbian, mas um dia eu consigo.

Pra Win32 acho que ainda não tem pro Delphi, mesmo com os preconceitos que temos, descobri que o Skype foi feito em Delphi... é uma ótima ferramenta.

Putz, mas Borland C++ em command line é coisa para ficar no arquivo e não esquecer jamais !

Um abraço,

Nilo

Anônimo disse...

Grande Nilo,

É verdade, tomcat pode ser assustador a primeira vista, mas pode ser domado :-) (estória familiar aliás);
Quanto a produtividade em Java, essa sim ainda tenho muitas coisas a reclamar, essa moda de lançar sempre YEF's(Yet Another Framework) acaba fazendo com que a curva de aprendizado nunca se atenue, consequentemente a produtividade não entre em ascenção em níveis significativos - apesar das ótimas IDEs disponibilizadas, diga-se de passagem Eclipse é bom demais; :-S

Abracos,
Jander Nascimento