Friday, February 08, 2008

Development Trends

É comum encontrarmos em sites de tecnologia ou em blogs algumas opiniões sobre qual a linguagem/plataforma que mais está sendo utilizada para desenvolvimento de aplicações.

Para saber o que realmente está acontecendo resolvi fazer uma consulta ao mestre Google (mais especificamente ao Google Trends). O resultado está no gráfico abaixo:


É notável que Java vem perdendo espaço ao longo dos anos para outras linguagens/plataformas. Acredito que em muitos dos casos é em virtude dos seguintes fatores:

  • Burocracia no desenvolvimento (arquivos XML, deployment descriptors, taglibs, frameworks para apresentação-integração-persistencia, deployment de WARs-JARs-EARs-CARs etc)
  • Nível de conhecimento necessário para se criar "boas" aplicações (Design Patterns, Tiers/Layers, Estratégias de integração e persistência, etc).

    "Neste ponto quero ressaltar que todos os itens mencionados acima deveriam ser considerados em qualquer desenvolvimento, independente da plataforma ou linguagem. Porém é mais comum ver isso nas pessoas que conhecem Java."


  • Complexidade na criação das tarefas básicas, como por exemplo, criar um CRUD.

Minha opinião é: existe espaço para todas elas, principalmente para o desenvolvimento com todos os pontos ruins acima. A escolha certa fica pela combinação do nível de conhecimento da tecnologia e pelo grau de complexidade da aplicação. Abaixo segue alguns de meus critérios na hora de começar um novo projeto (desde que eu tenha escolha, é claro):

  • .NET: É interessante utilizar a produtividade do Visual Studio para se criar aplicações que não demandem de tantas complexidades técnicas. A produtividade é notável, principalmente se aliado a componente de terceiros (AJAX, Gráficos e Relatórios), e os resultados tendem a agradar os usuários, que é o que mais importa.
  • Java: Para tarefas mais complicadas de integração, requisitos apurados de desempenho, necessidade da multiplataforma e outras coisas complicadas eu defendo sua utilização, principalmente devido a dois principais pontos: sucesso no desenvolvimento de aplicações críticas e liberdade com a vasta opção de componentes open-source.

SCEA Book Reviews

Em umas de minhas passadas pelo JavaRanch encontrei um post interessante sobre alguns Book Reviews para turma que pretende estudar para a prova de arquiteto - SCEA.

Segue o link para o site Ecletic Programmer: http://eclecticprogrammer.com/

Ateh mais!

Sunday, January 06, 2008

Java EE Learning Path

Como havia mencionando há algum tempo atrás, estou compartilhando um pouco de minha lista de livros favoritos para o aprendizado de Java EE.
É claro que aprender sobre JEE leva um pouco de tempo devido à grande quantidade de tecnologias, protocolos e frameworks, portanto não espere ler apenas um livro e “cabum!!!” agora você já é o “bam bam bam” de Java.
O trabalho é árduo, leva-se um bom tempo lendo livros, revistas, sites, blogs, fóruns, fora a experiência em campo desenvolvendo aplicações das mais variadas.
Sem mais delongas segue abaixo minha sugestão de leitura:

Primeiro Passo: Apesar de ser um livro grande e que aborda praticamento todos os pontos da plataforma eu acredito que é um bom começo, principalmente por estar disponível no site da Sun (http://java.sun.com/javaee/5/docs/tutorial/doc/).

Java(TM) EE 5 Tutorial, The (3rd Edition).
ISBN: 0321490290


Segundo Passo: Após ter um visto todas as possibilidades da plataforma, o próximo passo é entender bem sobre as principais tecnologias do Container JEE.

Head First Servlets and JSP.
ISBN: 0596005407


Head First EJB (Brain-Friendly Study Guides; Enterprise JavaBeans).
ISBN: 0596005717


Core JavaServer(TM) Faces (2nd Edition) (Core Series).
ISBN: 0131738860


Terceiro Passo: Entenda as principais frameworks utilizadas no desenvolvimento de aplicações corporativas.

Agile Java Development with Spring, Hibernate and Eclipse.
ISBN: 0672328968


Building Spring 2 Enterprise Applications.
ISBN: 1590599187


Quarto Passo: Projete aplicações corporativas como elas realmente devem ser construídas. "Be an architect!"

Core J2EE Patterns: Best Practices and Design Strategies (2nd Edition).
ISBN: 0131422464


Core Security Patterns: Best Practices and Strategies for J2EE(TM), Web Services, and Identity Management (Core Series).
ISBN: 0131463071


Head First Design Patterns (Head First).
ISBN: 0596007124


Software Engineering: (Update) (8th Edition).
ISBN: 0321313798

Saturday, January 05, 2008

Happy New Year 2008

Bom, um ano sem postar uma misera linha no meu blog resolvi retomar as atividades agora em 2008.

Problemas de tempo a parte, pretendo começar o ano com o pé direito desejando um Feliz Ano Novo aos leitores.

Thursday, March 15, 2007

O primeiro de 2007

2 anos - Inácio Pinto
3 a 4 anos - Inocêncio Pinto
5 a 6 anos - Créscio Pinto
7 a 10 anos - Jacinto Pinto
11 a 15 anos - Armando Pinto
16 a 20 anos - Gastão do Pinto
21 a 25 anos - Valente Pinto
26 a 30 anos - Amâncio Pinto
31 a 40 anos - Modesto Pinto
41 a 50 anos - Décio Pinto
51 a 60 anos - Caio Pinto
acima de 61 anos - Serafim do Pinto

Friday, September 08, 2006

Tecnologia Emergente

Eis o exemplo da era da tecnologia emergente :

Na escola, uma professora mandou o aluno escrever 500 vezes no quadro negro a seguinte frase :

"Não vou mais jogar avião de papel em sala de aula".

Mas como a informática veio para facilitar a vida, vejam como ele fez :

Monday, August 28, 2006

Mais coisas engraçadas

Como estou sem tempo para postar coisas interessantes resolvi postar alguns links inúteis que chegam a minha caixa de e-mail.

Tuesday, August 15, 2006

Java SE Learning Path

Após alguns anos aprendendo e trabalhando com Java identifiquei alguns livros que me ajudaram a conhecer e formar uma boa base sobre a plataforma. Dividi a linha de aprendizado em alguns passos:

[2008] Resolvi editar este post para complementar a lista de livros para aprendizagem. Acredito que peguei muito pesado colocando os livros de certificação logo no primeiro passo. Também quero deixar claro que existem muitos outros bons livros que não foram mencionados.

Primeiro Passo: Certifique-se de que você sabe o básico de programação orientada a objetos e também conhece a linguagem.

Head First Object-Oriented Analysis and Design.
ISBN: 0596008678


Head First Java, 2nd Edition.
ISBN: 0596009208


Segundo Passo: Comece por um livro sobre como certificar-se na linguagem Java. Existem alguns livros que acredito serem muito bons para começar. Aqui os livros estão ligados com a versão da linguagem que você pretende tirar a certificação (1.4, 5.0 ou 6.0).

A Programmer's Guide to Java Certification: A Comprehesive Primer, 2nd Ed. (versão 1.4)
ISBN: 0201728281


Sun Certified Programmer & Developer for Java 2 Study Guide (versão 1.4)
ISBN: 0072226846


SCJP Sun Certified Programmer for Java 5 Study Guide (versão 5.0)
ISBN: 0072253606


Terceiro Passo: Após conhecer e memorizar o que foi explicado sobre cada parte da plataforma e quais as regras de sintaxe é hora de partir para uma abordagem mais profunda e fortificar e explorar maiores detalhes.

Effective Java Programming Language Guide
ISBN: 0201310058


Java(TM) Puzzlers: Traps, Pitfalls, and Corner Cases
ISBN:032133678X


Java Concurrency in Practice
ISBN:0321349601


Quarto Passo: Aprenda sobre "Code Conventions for the Java Programming Language" , "Design Patterns" e leia alguns códigos de projetos Open Source como o "Spring Framework". A melhor parte está aqui pois você estará vendo na prática quais são os Best Practices para construção de uma aplicação em Java.

Implementation Patterns
ISBN:0321413091


Refactoring: Improving the Design of Existing Code
ISBN: 0201485672


Refactoring to Patterns
ISBN:0321213351


Após toda essa série de livros você já estará pronto para começar a trabalhar bem com a linguagem e a tirar a certificação.
É claro que você não precisaria ler todos esses livros para poder tirar a certificação, mas com certeza eles serão necessários para ter uma boa base sobre a linguagem.
Futuramente estarei escrevendo sobre como aprender Java EE e ME, mais alguns livros que penso serem importantes também.