Archive for the ‘livros’ Category

2005: Java, Ruby, o Universo e Tudo Mais

Sunday, January 1st, 2006
Um título ridículo para um post sobre o que se passou no ano de 2005 na esfera tecnológica aos olhos do GUJ. Nada muito completo, apenas umas coisas que consiga lembrar…Caso você sinta falta de algo aqui, coloque nos comentários. Certamente deixei muito para trás, apenas segui a lista de notícias atrás de fatos que chamavam minha atenção.

Para iniciar o evento mais importante de tecnologia aqui do Rio aconteceu em Fevereiro, o Rio Java Summit 2005. O evento contou com a presença de Gavin King, líder e criador do Hibernate, que falou sobre persistência em vários aspectos, incluindo EJB3.0.

Gain King RJS2005

Mais uma vez o Sun Tech Days foi o evento da Sun para a Comunidade local.

Também tivemos este ano o clássico ConexãoJava, com ampla divulgação da mídia.

Em Novembro foi realizado o Rio Java Developers Day, compresença d vários palestrantes da Sun.

A Sun anunciou uma nova certificação: Sun Certified Java Associate. Pra que serve? Para nada na prática (além de engordar os curriculums como qualquer outra), mas muita gente se candidatou para obter o exame na fase de beta. Para os certificados da Sun (e de muitas outras entidades), certificados Beta são gratuitos. Um fato interessante é que esta prova em específico teve uma procura muito grande, o que mostra que foi bem divulgada pelos Portais, JUGs, Sites e mecanismos de informação em geral. A Comunidade Java está muito preocupada com certificação, seja lá qual o real fim dela.

A certificação Java 5 final saiu, mas ainda não tem o famoso livro da Kathy o que impediu muitos e muitos de tentarem a prova e continuarem a fazer a prova de certificação para Java 1.4. Também saiu a Java Language Specification 3rd Edition, guia (e bookmark) indispensável pra quem se diz programador Java.

No mesmo mês tivemos o lançamento do livro em Hibernate em Ação, uma tradução da obra de Christian Bauer e Gavin King. Além de defasado pela idade (não trata do Hibernate 3), o livro cumpre a tradição de livros técnicos porcamente traduzidos, comentários interessantes aqui. Apesar de um fiasco de tradução, esse livro é mais uma mostra que o mercado está precisando de material em português. Na mesma onda, os ótimos livros de Kathy Sierra foram traduzidos.Sou contra a tradução e o uso de versões traduzidas de livros não-básicos por profissionais, mas é mais uma prova que precisamos de material nacional de qualidade. Isso será tema de um post em breve.

No mês, seguinte, um anúncio que há muito era esperado: o framework Struts tem destino incerto. Quem acompanha o mercado de tecnologia sabia que algo ia acontecer neste sentido, mas quem insiste em tapar o Sol com a peneira tomou um golpe no estômago. Até hoje não dá pra entender direito qual vai ser do Struts, o framework antigo (que primeiro foi rebatizado para Struts Classic depois rebatizado novamente para Struts Action para não parecer tão antigo) não parece estar indo a lugar nenhum.

Em terras tupiniquins surgiu o Mentawai, um framework MVC sem XML que fez bastante sucesso considerando a concorrência extensa..

Uma notícia interessante para a comunidade brasileira de maneira geral é o SOUJAVA se tornar membro do JCP. Ainda sobre o SOUJAVA, a organização não repetiu o vexame do ano anterior e fez um chamado de trabalhos de verdade para o JustJava2005. Numa manobra estranha, começou a agregar JUGs de outras regiões querendo marcar presença nacionalmente. Isso não foi muito bem recebido por alguns que esperavam que a maior associação de usuários da tecnologia buscasse união e não concorrência com JUGs locais. No fim das contas os ânimos se acalmaram com uma conversa entre as partes.

A divulgação da estratégia de migração do WallMart fez com que muitas pessoas se interessassem em fazer o processo mais rapidamente, o que é uma forte tendência em 2006.
Falando em Software Livre, a IBM adquiriu a GlueCode, cujos funcionários produziram o Apache Geronimo. De repente, começaram a surgir iniciativas de Marketing como um prêmio para quem instalasse e rodasse o Geronimo. Sem supresa a Big Blue lançou uma versão de Geronimo sob o infame nome de WebSphere Community Edition.

Ainda na esfera FOSS, A Apache lançou um projeto de JVM livre chamado Harmony. O projeto causou algum burburinho quando anunciado mas desde então não trouxe nenhum avanço significativo seja em produto usável seja em qualquer coisa.
A guerra Mono/.Net/Java sofre um baque quando a MSFT anunciou que não ia lberar componentes importantíssimos do .Net para serem implementados por terceiros (i.e. Mono). A Microsoft também trocou o nome do seu novo sistema operacional. Este mesmo sistema já sofreu problemas de segurança no primeiro beta lançado, que resultou em alguns componentes sendo removidos do projeto inicial.

Sobre licenças, a Sun trabalhou arduamente para aliviar o peso das lincenças sobre seu código Java e diminuir as críticas e projetos de JVM livres. No fim do ano a emrpesa anunciou sua nova estratégia: liberar quase todos os seus produtos como Software Livre.

Dentro dos produtos liberados pela Sun está a família creator, uma IDE construída sobre o Netbeans. Netbeans que causou muita discussão com seu novo designer chamado Matisse que proporcionaria a produtividade de um VB/Delphi (ou seja: sem layout managers pentelhos) a uma aplicação Java. O Netbeans também lançou uma plataforma de colaboração (mais tarde a Borland e outros anunciaram coisas parecidas) que deve se tornar uma tendência. A Sun investiu *muito* para divulgar o Netbeans este ano, o produto cresceu bstante.
Ainda falando sobre IDEs, o Eclipse ganhou várias empresas novas em seu consórcio como Macromedia (agora Adobe) e Nokia também lançou o Eclipse 3.1 final e versões de diversos plugins. 2005 foi apra dar uma reorganizada geral no Eclipse e tirar cada vez mais o sel IBM do produto. Erich Gamma explicou bastante sobre o ciclo de desenvolvimento da plataforma. Para o mal ou para o bem, a IBM também doou ao Eclipse partes do seu ciclo de desenvolvimento proprietário, o RUP.

Com a concorrência desleal de ferramentas superiores gratuitas, a Oracle fez o JDeveloper ser gratuito. Apenas IDEs de verdade como IntelliJ (que lançou versão nova este ano)se deram ao luxo de continuar como produto pago desvinculado de um grande Application Server.

Sobre grandes Application Servers a Bea anunciou o WebLogic 9 com diversas novas funcionalidades entre elas integração com Jython/Python para scripting. A Bea também anunciou forte suporte ao Spring, coisa meio óbvia visto que Rod Johnson declara seu amor ao WebLogic a todo instante.

No JavaOne dos dez anos de Java a Sun anuncionou que não existirá mais Java 2.
Até o MINIX teve nova versão, certamente a ser discutida no novo livro do Professor Tanenbaum.

O Ruby on Rails fez uma entrada grandiosa no mainstream Java com um artigo na DeveloperWorks. A mídia toda explodiu e o novo livro de Bruce Tate, Beyond Java, veio abrir com uma polêmica: qual o futuro da plataforma e da linguagem Java?

O Livro ganha meu prêmio pessoal de mais importante do ano. Não por ser bem escrito, também não mostra tecnologias revolucionárias e nem consegue ser muito informativo sobre as tendências que aponta. Beyond Java poderia ser uma séria de artigos numa revista. O livro leva o prêmio por levantar uma questão importante e conseguir chamar atenção de todos os lados para a polêmica.

Singularity==UNIX?

Wednesday, December 28th, 2005

Há algum tempo falamos aqui sobre o Singularity, um SO de pesquisa da Microsoft. James Stoup fez uns comentários bem interessantes em seu blog, tem que ligar um pouco o filtro de exageiro (noto uma ceta raiva do Windows Vista no ar…), mas merece uma lida para quem se interessou.

“What would a software platform look like if it was designed from scratch with the primary goal of dependability?” (question found in the MS Singularity research report)Why, it would look like . . . UNIX.

O maior problema do artigo, na minha opnião, é que o Singularity não foi anunciado como um produto, ams apenas como pesquisa, logo se for feito em Sing#, Spec# ou Batatinha#, por exemplo, tanto faz. Um grande mérito da MSFT é em colocar numa pesquisa real alguns conceitos novos para sistemas operacionais.

Isso me lembra o livro que estou lendo. Distributed Systems: Principles and Paradigms, de Andrew S. Tanenbaum Maarten van Steen. Antes de mais nada: sim, eu leio Tanenbaum e gostei muito dos dois livros que li (Redes e Operating Systems: Design & Implementation -que aliás terá uma terceira ediçao em breve).

Eu comecei a ler o livro do mesmo autor chamado Distributed Operating Systems mas não consegui terminar por falta de tempo (está na fila ainda). A parte relacionada é que no Distributed Systems, o autor menciona que este livro era para ser, na verdade, uma nova edição do Distributed Operating System, mas que se generalizou apra sistemas distribuídos de diversos tipos.

O que eu quero dizer com isso? Muitos recursos hoje providos por servidores de aplicação e ambientes de runtime modernos são tão básicos que deveriam estar integrados ao Sistema Operacional. Naming (JNDI, por exemplo), RPC (RMI, CORBA, XML-RPC…), memória gerenciada automaticamente, transações… tudo isso é muito básico. É natural que a arquitetura de hoje evolua e que cada vez mais os Servidores de Aplicação passem essas responsabilidades aos Sistemas Operacionais. Nós não podemos ter aplicações distribuídas e complexas modelo 2006 com sistemas operacionais modelo 1970.

Não, Singularity não é a primeira iniciativa, não é a única e provavelmente não é sequer a mais importante das iniciativas do setor em termos de tecnologia e inovação nos últimos dez anos, porém  é uma iniciativa por uma empresa enorme e que vive de um império baseado em Sistemas Operacionais.

MBA a la Joel

Thursday, November 24th, 2005

Ainda falando do Joel Spolsky, ele acaba de divulgar uma lista de livros para seu programa de trainees.

Dá para ver que realmente é uma experiência diferente e focada. Livros genéricos clássicos dividem espaço com o guia do Subversion, biografias diversas do ramo de tecnologia e quase todos os bons livros de gerência de projetos de sofwtare que eu consiga lembrar.

Mais uma vez tenho que tirar o chapéu para o Joel. Uma das poucas pessoas importantes o suficiente para terem voz na de software que não acredita que da gerência média para cima tudo é igual em qualquer área. Software é uma indústria única. Construção civil é uma indústria única. Gestão hospitalar é uma indústria única. Pare de querer fotocopiar gestores.

Outro produto interessante na “lojinha” é o documentário sobre o programa de estágio (dá pra traduzir assim?) que gerou um produto novo para a FogCreek Software.

Além de adicionar alguns dos livros na minha wishlist da Amazon (aimeubolso!), decidi fazer algo parecido no wiki. Vou postar comentários sobre alguns livros que já li, a minha fila de livros e listas de livros recomendados por perfis. Ter um wiki pessoal é bom por isso, você pensa em qualquer bobagem para escrever e nem precisa de muito trabalho para começar…

Thursday, November 24th, 2005

Falando em Web 2.0, o Pragmatic Programmers acaba de lançar um ebook sobre a Google Maps API. US$8.5… vale a pena se você precisa e consegue ler mais de duas páginas na tela do PC, Palm, PSP ou sei lá o que.

Safari Bookshelf

Wednesday, November 9th, 2005

Me inscrevi apra uma conta no Safari Bookshelf. Neste site é possível ter acesso á todo o acervo da o’Reilly e outras editoras em PDF.

Sim, é pago, e não é lá muito barato (19.00 USD/mês a mais básica) mas espero que o benefício de poder consultar livros online em qualquer lugar, sem recorrer a PDF pirata e sem precisar ficar carregando livros na mochila ajuda. Não vou deixar de comrpar livros já que *odeio* ler na tela do computador, mas pelo menos como busca e referência o serviço promete.

Recomendo que empresas dêem uma avaliada, pode ser muito útil e mais barato que comprar vários exemplares e montar uma biblioteca.

De qualquer modo, peguei a promoção e vou avaliar por 14 dias antes de realmente começar a pagar.
Safari

Enterprise Integration with Ruby

Sunday, November 6th, 2005

Mais um livro da série Pragmatic programmers sobre Ruby está no forno: Enterprise Integration with Ruby.

Pela Table of Contents dá pra ficar realmente na expectativa.

1 Introduction 1
1.1 What Is Enterprise Software?

1.2 What Is Enterprise Integration?
1.3 Why Ruby?
1.4 Who Should Read This Book?
1.5 PragBouquet
1.6 Acknowledgments
2 Databases 7
2.1 The Coupon Application
2.2 Database Interface (DBI)
2.3 Object-Relational Mappers
2.4 Lightweight Directory Access Protocol (LDAP)
3 Processing XML
3.1 A Short XML reminder
3.2 Generating XML documents
3.3 Processing XML Documents
3.4 Validating XML Documents
3.5 Are There Alternatives to XML?
4 Low Ceremony Distributed Applications
4.1 “I’d Rather Use a Socket”
4.2 Remote Procedure Calls Using HTTP
5 Distributed Applications with RPC
5.1 Another Day, Another Protocol
5.2 We Will Take No REST, Will We?
5.3 SOAP
5.4 CORBA, RMI, and Friends
6 Tools and Techniques
6.1 Internationalization
6.2 Logging
6.3 Creating Daemons and Services
6.4 Build and Deployment Process
6.5 Project Automation with Rake
6.6 Testing Legacy Applications

O capítulo sobre LDAP está disponível em PDF, além de alguns outros trechos.

Uma Rosa Com Outro Nome…

Sunday, October 9th, 2005

Imagina a cena. Seu colega pede ajuda num trecho qualquer de código. Ele começa a te explicar o que está fazendo:

Então (ele é paulista), eu criei esse agrupamento de instruções parametrizáveis, que retorna um valor que é uma cópia de um objeto. Daí eu agrupei alguns destes numa unidade e coloquei algumas variáveis que eles compartilham. Como alguns destes agrupamentos não são utilizados por outros agrupamentos externos, defini uma política de exposição para eles…

Você entendeu? Dependendo do sue nível de imersão em cosias abstratas relacionadas á programação, talvez sim, mas o desenvolvedor mediano vai fazer “uhum” algumas vezes e olhar para o código para ver o que esse cidadão queria dizer. E ele vê o que ele tentou explicar:

public class Usuario{
private int idade;
private boolean sexo;
private double altura;

public void setIdade(int idadeNova){
if (idadeNova>13) {
idade= idadeNova;
calcularAltura();
}
else{
throw new IllegalArgumentException(”Idade baixa demais para usar o sistema” );
}
}

private calcularAltura(){
altura=idade*10.45;
}
}

Aí você pensa

Caramba, não seria mais fácil ele dizer que fez uma classe com métodos públicos e privados e atributos privados?

Seria, mas e se ele não conhecesse este termo? Sim, o exemplo é bem forçado, mas é de propósito.

Muita gente torce o nariz quando alguém mostra um Pattern. Logo pensam: “Quanta besteira…eu uso isso há anos!” e esquecem que tão importante quanto criar Patterns é catalogá-los. Pense em algum padrão que você use no dia a dia. Agora imagina que você tem uma dúvida com o uso deste.

Você vai num fórum qualquer, o GUJ por exemplo, e tenta descrever sua dúvida. Você pode gastar dois parágrafos explicando o que fez ou pode simplesmente dizer o nome do Padrão e a pessoa que ler já sabe do que se trata (ou pelo menos vai saber se procurar).

Existem livros e sites que fazem apenas isso. Eles documentam e catalogam padrões, colocam eles dentro de contextos, listam vantagens e desvantagens, mas não necessariamente criam nada novo. Você não vai encontrar novas geniais soluções, apenas soluções clássicas catalogadas.

Além do óbvio benefício de acabar conhecendo uma solução que já é clássica mas você não conhecia, outro benefício não tão óbvio está simplesmente em termos um idioma comum entre profissionais.

Se você falar para alguém de .Net ou C++ que fez um Observer, ele provavelmente sabe do que você está falando. Se falar que usa um DAO, apesar de ser algo mais comum em Java EE, é bem capaz de ser entendido (menos pelo cara do .Net que pode se confundir com esse negócio de DAO/ADO), como este padrão também tem outros nomes mais genéricos, pode ser que ele também use isso nas suas aplicações.

Um padrão não é padrão desde seu nascimento. Ele nasce como uma solução isolada, e de repente alguém pensa “Ei, eu posso resolver este problema do mesmo jeito que fiz naquele caso…” (por isso Ted Neward fala que o sistema só morre quando as máquinas são desligadas, o código fonte é apagado e o último desenvolvedor é morto). E por mais que você use e reuse, ensine esta técnica ela só vai virar um padrão no dia em que for catalogada. Seja em um livro, paper ou site ou qualquer coisa.

Se alguém te disser que recebeu um buquê de as flores que pertencem à família rosasceae, que são arbustos ou trepadeiras, providos de acúleos com folhas simples partidas em 5 ou 7 lóbulos de bordos denteados, com 5 pétalas, muitos estamos e um ovário ínfero… estão continuam sendo rosas, mas não seria mais fácil se vocês falassem a mesma língua?