Ami Dewar and John Muller on My developerWorks design factors

developerWorks podcasts are amazing. I’m working and listening Ami Dewar and John Muller on My developerWorks design factors. It was from Tuesday April 28, 2009, yes I need to decrease my developerWorks podcasts backlog list.

Kleber Rodrigo de carvalho

Produzo software no Brasil, na Rússia, na Índia ou na China?

Interessante o artigo escrito pelo José Augusto no blog do Academic Initiative, cujo o tema é Produzo software no Brasil, na Rússia, na Índia ou na China?.

Eu escrevi meus comentários lá, principalmente enfatizei o que eu vejo hoje referente ao desinteresse de profissionais em trabalhar em projeto de outsourcing,

Kleber Rodrigo de Carvalho

An introduction to what’s new in versions 2.6.28 and 2.6.29

Life’s certainties include death and taxes but also the advancement of the GNU/Linux® operating system, and the last two kernel releases did not disappoint. The 2.6.28 and 2.6.29 releases contain an amazing amount of new functionality, such as a cutting-edge enterprise storage protocol, two new file systems, WiMAX broadband networking support, and storage integrity checking. Discover why it’s time to upgrade.

Continue reading here.

Kleber Rodrigo de Carvalho

IBM software architect kit

This complimentary e-kit for IT architects provides a collection of best practices, how-to guides, and materials to help you deliver a stable, reusable architecture, as well as guidance on related IBM tools that promote communication to unify all aspects of design and development.

Explore the benefits of:

  • Reducing software delivery complexity with visual languages
  • Patterns-based development
  • Structural review and control
  • Service-Oriented Architecture (SOA)

Reduce IT complexity with software development tools from IBM

Kleber Rodrigo de Carvalho

What’s new in the GNU Compiler

In the last few years, the GNU Compiler Collection (GCC) has undergone a major transition from GCC version 3 to version 4. With GCC 4 comes a new optimization framework (and new intermediate code representation), new target and language support, and a variety of new attributes and options. Get to know the major new features and their benefits.

GCC is the cornerstone of development in both the open source and closed source worlds. It’s the enabler of architectures and operating systems. When a new processor appears, its success depends on a version of GCC that will support it (a back end that can generate code for it). GCC is also the enabler of Linux®. Linux as an operating system is widely successful because it is run on so many different architectures. Once again, a port of GCC to the target environment enables Linux to be ported and run on it. Without trying to put too fine a point on it, GCC paves the way for Linux and embedded development.

But GCC can’t just sit still. New processor architectures continue to appear, and new research finds better ways to optimize and generate code. So GCC moves forward and has now matured into its fourth major release. This article explores the fundamental changes in GCC version 4 to show you why—if you haven’t switched yet—the time has come to use the compiler standard.

You can read the complete article at developerWorks.

Kleber Rodrigo de Carvalho

WebSphere Application Server V7 Available

The newest version of WebSphere Application Server, version 7.0, is now available.

WAS 7 is certified for Java EE 5, including EJB 3.0 and JAX-WS 2.1, and is built on Java SE V6.

For more information:

Thank you Bobby Woolf

developerWorks podcasts

Sem dúvida umas das minhas sérias preferidas sobre podcast é o developerWorks podcasts. Embora não seja só sobre Java como o Java Posse, no developerWorks podcast sempre encontro assuntos interessantes.

Eu já havia comentado sobre o developerWorks podcast, em dois artigos anteriores meu, o Grady Booch no Software Engineering Radio e Desenvolvimento ágil com Scott Ambler.

Ao escutar o ultimo podcast sobre o New teaching resources for BPM, Enterprise Computing, and Rational, onde Kevin Faughnan, Diretor do IBM Academic Initiative, e Dan Griffin, Program Manager for WebSphere and SOA participation dentro do Academic Initiative, falam sobre o novo programa de ensino e como estudantes e professores a usar tecnologias IBM.

Através de um comentário no New teaching resources for BPM, Enterprise Computing, and Rational, eu cheguei a este artigo Computer Science Enrollments: The Real News, um artigo que discute o interesse de estudantes em SCE (computer science & engineering), ciência da computação e engenharia da computação.

Cheguei a este artigo Why Choose CSE?, que possui uma coleções de videos da Universidade Washigton, para mostrar o que alunos de ciência da computação e engenharia da computação vão trabalhar depois da graduação.

Para fechar passei na página SkillPROOF, que procura fazer uma pesquisa sobre skill e jobs em demanda nos EUA.

Realmente esse links valem ouro.

Kleber Rodrigo de Carvalho

Java o passado e o futuro

Hoje em dia se tem falado muito do futuro do Java. Será que o Java está em declínio ? Será que vale a pena aprender Java ainda ? Ou seja, várias perguntas surgem na cabeça do desenvolvedor e principalmente naqueles que iniciaram agora na area de desenvolvimento de Software.

O Cesar Taurion escreveu no blog dele o artigo Java hoje e amanhã, assim como já tinha indicado um artigo Java é o novo Cobol, falando exatamente sobre o futuro do Java. Isso sem citar outros milhões de posts e fóruns que discutem exatamente isso. Para nós entendermos o que está acontecendo com o Java hoje, é importante olharmos o passado um pouco, afinal de contas, como dizia um professor de História da Ciência e da Técnica, na univeridade, quando eu perguntei porque um curso de história era importante em um cursos de ciência da computação, ele me respondeu o seguinte: “A historia nós faz analisar o que já aconteceu no passado”. Dai eu extraio uma frase, que sempre repito na minha vida, os inteligentes aprendem com os próprios erros, os sábios com erros dos outros.

Voltando a historia, em 1996 quando eu me formei do meu colégio Técnico em Processamento de Dados, eu fiz uma analise do Mercado na área de desenvolvimento de Software. O mercado era mais ou mesmo assim. As Universidade ensinam linguagem tipo C/C++, Pascal etc, mas os profissionais na grande maioria quando entravam no mercado de trabalho, trabalhavam como Clipper, Visual Basic e Delphi. Existiam realmente poucas oportunidade e sistemas que eram desenvolvidos na área comercial usando essa linguagens que as universidades ensinavam. Os alunos estudavam linguagem tipo C/C++ e Pascal, mas o mercado de trabalho queria Visual Basic e Delphi. E claro que tinham exceções, assim como toda a regra.

Durante meu anos de universidade eu tive um forte embasamento em linguagem C, até porque cursei o curso de Bacharel em Ciência da Computação. Quando comecei a estudar metodologia de Orientada a Objetos, comecei a estudar o C++ ( uma caminho a ser seguido, afinal já programava em C) e comecei a estudar Java também.

Foi nessa mesma época que comecei a trabalhar com Linux, mais ou menos em 1997. Achava que linux e Java era lindo. Até porque me dava muito trabalho migrar um programinha do C do Windows, para o C do linux. Achava Java realmente muito bom para isso. Para vocês terem um idéia, a primeira linguagem Visual que aprendi não foi nem Visual Basic, nem Delphi, e sim o Borland C++ Builder. Naquele época por ter um tendência a achar que, programa bom deveria funcionar pelo menos em Linux e Windows, o Visual C++ da Microsoft não era uma opção embora com o Borland C++ Builder as coisas também não era tão fáceis assim.

Agora Java era o máximo para mim, foi a partir disso que eu me especializei nessa linguagem. No último ano da Universidade quando já fazia estágio, no falecido Zaz, hoje conhecido como Terra, eu era o unico desenvolvedor Java deles (da região de Piracicaba), enquanto o desenvolvimento Web era ainda era muito pouco concebida e PHP e o ASP da microsoft eram as preferidas dos clientes. Mesmo assim, se você queria ganhar bem, recomendava-se aprender Visual Basic e Delphi e desenvolver aplicações desktop, mas realmente eu gostava mesmo de Web.

Finalizando meu estágio, eu quase decidi aprender ASP e PHP, porque achava que Java não tinha muito mercado, isso foi em 1999 e 2000. Até que decidi me mudar para São Paulo. O Ano era 2001 e Java começava a bombar.

De cara o meu primeiro grande projeto em 2001 foi para um companhia de telecomunicações chamava Vesper, onde o sistema era hospedado na IBM Tutóia, com toda infraestrutua IBM e seu WebSphere (naquela época WebSphere estava engatinhando). Foi esse o meu primeiro grande projeto Java e dai em diante eu comecei a ir para o lado da IBM e seus produtos.

Mas, afinal de contas, o que aconteceu daquela época para cá ?

Aconteceu muitas coisas, uma delas que é Java começou a ser ensinado nas escolas e universidades, e finalmente o aluno começou sair da Universidade para o Mercado de trabalho, usando a mesma linguagem que ele havia estudado lá . O Alunos não precisavam mais aprender outras linguagem de programação (ma maioria das vezes). O meio científico, que tinha como linguagem preferida o C/C++ começou a olhar o Java de uma forma melhor (sim eu participei de um projeto científico na USP financiado pela FAPESP em 1998, se você falava em desenvolver pesquisa em Java, você seria completamente ignorado, o meio científico e academico dizia que cientistas programavam em C/C++). As empresas que desenvolvem produtos, passaram a ter escolhas além do C/C++ para desenvolver produtos, e Java começou a aparecer não somente no mercado comercial, mas no mercado científico e acadêmico, mas como também empresas que desenvolvem produtos.

Mas o que são produtos ?

  • Por exemplo a IBM hoje tem a linha Rational, com vários produtos desenvolvidos em Java. Antes, muitas empresas não pensariam em outra linguagem a não ser o C/C++ para desenvolver produtos, no caso ferramentas que auxiliam o desenvolvimento de software.
  • A IBM tem produtos na linha WebSphere, como WebSpehre Application Server, Websphere Message Queue, WebSphere Broker, WebSphere ESB onde Java C/C++ trabalham de forma muito bem integradas dentro desses produtos.
  • A Oracle junto com o seu Banco de Dados, empacota várias aplicações escritas em Java, assim como a IBM junto com o seu DB2. Ou seja, existem hoje realmente produtos escritos em Java.

Citei apenas alguns para vocês terem ideias. Nesse quase 10 anos que venho trabalhando e estudados Java, Java se tornou a linguagem escolhida para muitos produtos, softwares, aplicações etc.

Mas agora as pessoas perguntam, será que Java é bom para tudo ?

Será que para eu desenvolver um Sistema rápido não seria melhor usar PHP, Python, Ruby, ou Groovy ?

Assim como no passado o mercado disse, não precisamos de uma linguagem tão complexa ou poderosas para desenvolver aplicações comerciais, embora eles tivesse o C/C++ muitas aplicações eram desenvolvido em Visual Basic e Delphi. Hoje o mercado faz a mesma coisas, será que precisamos desenvolver tudo em Java, será que para determinado projeto não seria melhor PHP, Ruby, Groovy e Python ?

Então o que acontece hoje não é que Java está perdendo seu espaço. Os desenvolvedores e os tomadores de decisões estão apenas perguntando, será que isso realmente precisa ser feito em Java, ou eu posso escolher outras linguagem mais simples !
Trabalho com Java a muito tempo, e até alguns anos atrás só havia estudados C/C++ além do Java. Hoje tenho estudado e ficado em alerta em PHP, Ruby, Python e Groovy. Porque ?

Quando preciso argumentar em um projeto, sobre as vantagens de cada linguagem, preciso ter um ótimo embasamento técnico para argumentar qual a melhor solução para aquele determinado cliente. Falar que linguagem X é bom, porque eu gosto não é o melhor argumento.

Outra coisa, estudar outras linguagem não me fez gostar menos do Java. Aprender outras linguagens me fez abrir a cabeça e entender que para cada solução eu posso ter um linguagem para resolver o meu problema.

É por isso que empresas como a Sun, está investindo pesado em para portar linguagem para a JVM (assim como a microsoft faz com o seu CLR), veja o caso do Ruby como o JRuby, Python com o Jython, e o Grovy. A Sun não está abandonando o Java, eles só querem ter um número maioria de linguagens na JVM, conseqüentemente Java poderá se interagir com várias delas.

A própria IBM no Projecto Zero, usa bastante em PHP e Groovy.

Na semana passada a Sun contratou 2 desenvolvedores chave do Python e Jython, mas um indicio que termos mais uma boa alternativa de linguagem dentro da JVM.

Kleber Rodrigo de Carvalho

Porque o Java é importante para a IBM

Na semana passada fiz uma apresentação na FATEC em São Paulo, na terça feira dia 02 de Outubro. O tema da minha apresentação foi Porque o Java é importante para a IBM, dentro do 9 Congresso de Tecnologia.

  • A IBM
  • A demanda por profissionais qualificados
  • Porque o Java é importante nas universidades e no mercado de trabalho
  • Mercado de trabalho e as linguagens de Programação
  • O profissional que o mercado procura
  • As oportunidades
  • Como os universitários podem se preparar para o mercado de trabalho
  • IBM Academic Initiative

O objetivo da minha apresentação foi mostrar para estudantes de graduação e pos graduação que tipo de profissional o mercado de TI está procurando hoje, e como eles podem desde já se preparar para este mercado. Também apresentei o IBM Academic Initiative, que é um programa que se aproxima estudantes da IBM (Colégios Técnicos e Universidade).

Estou recebendo alguns e-mails dos estudantes da FATEC sobre vários temas discutidos na apresentação. Fiquem a vontade para comentar aqui também sobre suas dúvidas.

Estou disponibilizando o download da apresentação aqui.

Quero agradecer aqui as pessoas que conversei na FATEC, aos alunos que se interessaram pelo assunto. Também gostaria de agradecer a Macia Ito e Célia Rabelo entre outros professores que conversei quando estive lá.

Deixo aqui o meu muito obrigado a todos.

Kleber Rodrigo de Carvalho

Developing skills for the SOA world

You want to learn about SOA, but you don’t know where you start from.

There are many books about SOA, but you don’t know what you should choose.

There are courses, events and conferences, but you really don’t know if these are useful to you.

You are hesitant about SOA, are you ?

So you should read the Comment lines: Rachel Reinitz: Developing skills for the SOA world — an expert who’s been there tells all on developerWorks.

The scope of Service Oriented Architecture can be intimidating to anyone trying to develop SOA skills. But simply knowing your role, and understanding the breadth, depth, and experience you need to have can get you well on your way to mapping out your success with SOA.

Kleber Rodrigo de Cavalho