Ainda durante o STD2007 tive a chance de participar de um bate-papo
entre alguns convidados e Rich Green, VP de Desenvolvimento de
Software da Sun Microsystems. A Sun tem um zilhão de problemas na
maneira como lida com o desenvolvimento de software mas se tem algo
que deveria ser copiado é este contato entre as pessoas que mandam e a
comunidade.
Durante este bate-papo foram debatidos diversos assuntos sobre o
futuro da plataforma, seu posicionamento no mercado nacional, o papel
dos JUGs e etc. Acabou que não tive a chance de falar sobre um assunto
que considero importante, por isso enviei um e-mail ao Rich comentando
este fato.
O problema é que o mercado de desenvolvimento de software é dividido
historicamente em uma grande massa de programadores de medianos para
não-funcionais e uma pequena minoria de bons programadores. As
ferramentas da Sun (netbeans, Glassfish, java, etc) focam na grande
massa de programadores, uma opção economicamente interessante. As
ferramentas são todas gráficas, com drag-and-drop para até o que não
deve (mais sobre isso em outro post), mas demoraram anos para colocar
funcionalidades básicas no editor de código (prometidas para a versão
7, creio).
Deste modo os programadores da minoria (exceto os que trabalham para a
Sun ou outra empresa que te jogue uma IDE pela guela) não vêem
proveito na IDE a criam um estigma com ela. Todos tivemos péssimas
experiências com geração de código na vida e s mais experientes vão
sempre olhar torto para ferramentas mágicas. O Matisse, por exemplo, é
algo interessante porque depende de uma infra-estrutura de software
flexível, com geração de código mínima (EJB3 segue esta linha). Gerar
uma interface em matisse é cool, mas gerar 15 toneladas de um
XML para Java EE não é, pelo menos não para este
público.
Mas quem liga? Estamos falando de menos de 10% dos programadores do
mundo! O problema é que são estas pessoas que inovam.
Quando você não está integrado com a comunidade de inovação de
software você tem um problema muito grande. Pense se você já não viu
isso acontecer com a Microsoft (outra que sofre com estigmas, não desmerecidos) algumas vezes:
- Fulano lança algo cool fora da plataforma (como
Hibernate, Spring, AOP, JGoodies, Rails…) - A empresa dona da plataforma diz que essa inovação é
desnecessária, é ruim, não é padrão, dá cárie nos dentes ou qualquer
outro argumento desesperado - Um tempo depois a nova versão da plataforma suporta essa
funcionalidade
.
A inovação ocorre fora da plataforma e a empresa teme que correr atrás
do prejuízo a cada versão. Quando as coisas são inventadas elas não
podem ser utilizadas na plataforma sem um enoooooorme trabalho de
adaptação, configuração, criação de adaptador, etc.
Para mim, a solução é algo que a MSFT está fazendo, como comentamos
aqui outro dia, que é criar dividir as coisas em Camadas. Dê todo o
poder de trabalhar com o core da plataforma aos desenvolvedores da
minoria e crie uma camada de abstração para a maioria dos
programadores, que vão adorar lidar com ferramentas gráficas e não se
preocupar com a qualidade do que é gerado.
Não basta haver um editor de código melhorzinho, um profiler e um
debugger. É preciso criar uma plataforma que trate a minoria e a
maioria como público-alvo. No Sun Tech Days deste ano não houve uma
única sessão que eu considere que foi para um programador de verdade.
tecnicamente este evento só vale pela interação com o staff da Sun e
os outros desenvolvedores. As sessões focavam a grande maioria,
exatamente como os produtos da Sun. A empresa tem que se livrar deste
estigma de ‘fazedora de ferramenta pra newbie’, existe gente de muita
competência nesta plataforma e eu realmente gostaria de ver este
talento em ação.
Eu fui em 2 STD, mas não lembro os anos … o último que fui foi um pouco depois que apareceu a NIO e estava tendo problemas de performance que ninguém respondia. Tentei pegar alguém dos “caras” para Cristo lá mas só escutava “só viemos aqui falar de J2EE”, diziam isso feito papagaios programados. Depois dessa vez, perdi a vontade de ir em outros, apesar que a mochila era bonita. ;-)
Então, acho que dá para dividir ainda um pouco mais a turma. Algum tempo atrás era só enterprise, enterprise, enterprise, e algumas poucas coisas relativas à linguagem (que oras, bolas, move o conceito do “enterprise”), agora a coisa está melhorando (putz, estão discutindo até closures no Java 7), mas ainda acho que há uma divisão ruim da Sun entre os “enterprises” e os “escovadores de bits suicidas que usam o (vim|emacs)”, que, afinal, são uma turminha interessante para manterem o foco também.
E a Sun tem uns funcionários blogueiros ótimos, tivessem convidado uns dois ou três p/ apresentar trabalhos teria sido muito legal.
A diferença entre um newbie e um verdadeiro guereirro de jedi se basea básicamente no que ambos procuram.
Um procura como se conectar no banco, como usar aquele framework….
Outro como fazer sistemas mais flexiveis, com menos acoplamento, porque todos dizem de SOA, (não o que é) onde Fowler e GoF podem ajudar…
Diria que há uma terceira categoria de “caras que dizem que sabem”,,, esses ao meu ver são os piores, pois disseminam conhecimentos aos outros, espalhando algumas das pragas do desenvolvimento de software.
Criar um core poderoso e oferecer abstração necessária (usando as palavras do Shoes) é preciso,,, mas acredito que isso é uma tarefa não tão trivial.
P. Shoes, porque não começa “postar” podcasts também no seu blog?
Tem um site no qual o assunto principal é arquitetura de software e derivados, http://www.skyscrapr.net/blogs/arcasts/default.aspx, apesar de ser um site MS ele traz diversos entrevistados (inclusive o Fowler) dois poucos áudios que escutei há alguns com qualidade, logicamente devido ao entrevistado.
Acho que as vezes uma opnião é melhor expressa falando, fora o fato de que as idéia vem rapidamente e as vezes não consiguimos escrever.
Primeiro - excelente blog, caí aqui através de um link de uma matéria sobre orientação à objeto vs. BOs e TOs.
Segundo - Sobre o STD2007, vejo que não sou o único que não gosta muito destas ferramentas cheias de wizards e geração de código. A única palestra que curti foi a de Extreme GUI Makeover com a colombiana, acredito que foi a única em que não se abriu uma IDE (NetBeans, JDeveloper, etc).
Concordo também que a Sun deveria se preocupar mais com programadores ‘hardcore’, o que me evita de usar o NetBeans é ele colocar um monte de wizard e interfaces de geração de código e funcionalidade e esquecer de corrigir/melhorar “detalhes” do editor de código, coisas que o Eclipse faz há um tempão.