Conhecendo Java
                                       O passado, o presente, e as
                                    tendências futuras da plataforma
                                      de desenvolvimento livre mais
  Andre Luiz Monteiro da Costa
                                           utilizada no mundo.
andre.monteiro@prof.infnet.edu.br
Palestrante

 • Desenvolvedor JAVA com experiência na utilização
 de ferramentas e frameworks OpenSource.
 • Ex-docente do Senac - curso de desenvolvedor JAVA.

 • Ex-docente das Faculdades São José e Moacyr Bastos.

 • Ex-Analista de Sistemas da IplanRio.

 • Docente da Academia do Concurso Público – área de TI.

 • Docente da SOFEP.

 • Atualmente trabalha como arquiteto de software na FAPES.
Palestrante

  Professor do Infnet:

      - Projeto de Sistemas e Orientação a Objetos com UML
      - Java Programming
      - Java Web Applications
A Infância de Uma Linguagem


   O Java é uma
   linguagem baseada
   no C++, seu
   desenvolvimento teve
   inicio em 1991 com
   a Sun Microsystems
   em um projeto de
   codinome Green.
A Infância de Uma Linguagem


                    Java foi criado em 1991 por
                    James Gosling, sob o nome
                    Oak, em homenagem a uma
                    árvore de carvalho que ele via
                    da janela de seu escritório.

                    Mais tarde descobriu-se que já
                    existia uma linguagem com esse
                    nome.

                    O nome java foi sugerido por
                    acaso quando a equipe visitava a
                    cafeteria (java era o nome de uma
                    cidade de origem de um café
                    importado).
O Objetivo por trás de tudo

    O objetivo do projeto não era a criação de uma nova
       linguagem de programação, mas antecipar e planejar a
       “próxima onda” do mundo digital.
    Eles acreditavam que, em algum tempo, haveria uma
       convergência dos computadores com os equipamentos
       e eletrodomésticos comumente usados pelas pessoas
       no seu dia-a-dia.
Característica Principal
  • Capaz de rodar em diferentes dispositivos de hardware, sem
  alteração ou recompilação.

   • Era parte do projeto Star Seven                                 (*7),   em   automação   de
   equipamentos e casas inteligentes.



                                                 DUKE
                                                 mascote da SUN




Fonte: Sun Microsystems http://java.sun.com/features/1998/05/birthday.html
A Infância e o Crescimento
 • Infelizmente, esta era uma idéia muito a frente do seu tempo, e o projeto *7
 nunca foi comercializado.

 • Em 1994, com o boom da internet, surgiu uma nova área de aplicação para a
 linguagem: navegação com conteúdo dinâmico (APPLET JAVA).

 • Após seu lançamento oficial em 1995, Java e a tecnologia de Applets cresceram
 rapidamente, através de colaboração com a Netscape.
Finalidade da Tecnologia
 Criar páginas Web com conteúdo interativo e dinâmico

 Desenvolver aplicativos corporativos de grande porte

 Aprimorar a funcionalidade de servidores da WWW

 Fornecer aplicativos para dispositivos destinados ao
 consumidor final (telefones celulares, pagers, assistentes
 pessoais digitais)‫‏‬
Fase Adulta
 • Com a adoção de novos padrões para páginas dinâmicas, como Flash, a
 tecnologia de applets perdeu importância.

 • Lançada em 1999, a especificação J2EE 1.2 (Java Enterprise Edition) já
 continha as sementes da plataforma livre dominante no mercado de aplicações
 web.
Funcionamento

 • Programas tradicionais devem ser compilados para cada plataforma.


                                          WINDOWS




                                            LINUX
Funcionamento
 • Programas Java podem ser compilados uma única vez, e executam em
 qualquer lugar.




                        “write once, use anywhere!”
Características

 Simplicidade

                  A linguagem é derivada da
                  linguagem C e C++, amplamente
                  utilizadas à época.
                  Além disso, o ambiente retira do
                  programador a responsabilidade de
                  gerenciar a memória e os ponteiros.




                               Garbage Collector
Características

 Simplicidade
 Orientada a Objetos
                       permite a herança e a reutilização
                       de códigos de forma dinâmica e
                       estática.
Características

 Simplicidade
 Orientada a Objetos
 Independente de Plataforma



                          permite a herança e a reutilização
                          de códigos de forma dinâmica e
                          estática.
Características

 Simplicidade
 Orientada a Objetos
 Independente de Plataforma
 Distribuída
                     Aplicações Java podem abrir e
                   acessar objetos através da rede via
                    URL's (http/ftp) e com a mesma
                    facilidade que os programadores
                   usam quando acessam um sistema
                             de arquivo local.
Características

 Simplicidade
 Orientada a Objetos
 Independente de Plataforma
 Distribuída
 Robusta
                   Java trabalha com uma rígida
                   prevenção de comportamento
                malicioso dos programas, tais como:
                  estouro de pilha, corrupção de
                 memória de outros processos, etc.
                        (fortemente tipada)
Características

 Simplicidade
 Orientada a Objetos
 Independente de Plataforma
 Distribuída
                         A linguagem Java suporta vários
                          recursos de alto desempenho,
 Robusta                 como multithreading, compilação
                        just-in-time e utilização de código
 Alto Desempenho                      nativo.
Versões

       Code       Developer   Codename   Release
      Version      Version
     J2SE 1.4.2    Java 2      Mantis     2003


      JSE 5.0      Java 5       Tiger     2005


      JSE 6.0      Java 6      Mustang    2006


      JSE 7.0      Java 7      Dolphin    2007
A Plataforma Java
 :: Java é mais que uma linguagem, é uma plataforma:

  • Java Standard Edition (JSE)‫‏‬
                Edição básica para desenvolvimento desktop.


  • Java Enterprise Edition (JEE)‫‏‬
              Tecnologias para desenvolvimento em servidores.


  • Java Micro Edition (JME)
               Edição para desenvolvimento para dispositivos móveis.
A Plataforma Java - Standard Edition
A Plataforma Java - Standard Edition
A Plataforma Java - Enterprise Edition

  • JEE é uma gama de tecnologias desenvolvidas sobre a distribuição
    básica.

  • Fornecem bases de implementação para software de estrutura
    cliente-servidor, como as aplicações web.

  • O desenvolvedor encontra na plataforma suporte a implementação
    de interfaces, controle da lógica interna de negócio, acesso a banco
    de dados, transações, etc.
A Plataforma Java – Enterprise Edition




“Java EE é desenhado para suportar aplicações que implementem serviços
empresariais para clientes, empregados, fornecedores e quaisquer outros
que gerem demandas ou contribuições para a empresa” (Tutorial JEE - Sun)‫‏‬
A Plataforma Java – Mobile Edition




“There are two configurations. The first configuration, the Connected Device Configuration (CDC), uses the
classic Java virtual machine. This virtual machine is a full-featured virtual machine with the same functionality
you would find in the virtual machine residing on your desktop system. The second configuration, the
Connected Limited Device Configuration (CLDC), uses the K Virtual Machine, a small footprint virtual machine
for severely memory constrained environments. The CLDC is targeted for Java environments of 128-512KB,
and the CDC is targeted for Java environments of greater than 512KB. ”
                                                                       (java.sun.com/products/personaljava/faq.html)‫‏‬
A Plataforma Java – Enterprise Edition

 Entre as especificações JEE se encontram:
 •   Servlets (aplicações web)‫‏‬
 •   JDBC (bancos de dados relacionais)‫‏‬
 •   JCA (conexão com mainframes e aplicações legadas)‫‏‬
 •   JTA (acesso a transações distribuídas)‫‏‬
 •   JavaMail (e-mail internet em Java)‫‏‬
 •   JMF (acesso a informações multimídia)‫‏‬
 •   EJB (componentes distribuídos e persistentes)‫‏‬
 •   JAXP (processamento de XML e web services)‫‏‬
 •   JMX (gerenciamento de servidores, redes e aplicações)‫‏‬
A Plataforma Java
Java na atualidade

Presente
  Java e os Dias de Hoje
Java na atualidade

• Hoje Java pode ser encontrado em celulares, DVD´s, chips, servidores,
browsers, desktops, robôs e até espaçonaves.


 • Conta com mais de 5 milhões de desenvolvedores ao redor do mundo,
 organizados em comunidades que atuam em fóruns, projetos e especificações
 oficiais.



 • Desde 2006, em uma iniciativa surpreendente da Sun, Java é uma plataforma
 Open-Source.
Java na atualidade




                     http://meapplicationdevelopers.dev.java.net/fragmentation.html
Java na atualidade
Java na atualidade




               http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Java na atualidade
Ambientes de Desenvolvimento Java
 • Netbeans.

 • Eclipse.

 • Borland JBuilder.

 • Oracle JDeveloper.
IDEs Java
Inserir IDE NEtbeans
Os Desafios Futuros

• Ao mesmo tempo em que parece estar em seu ápice, a linguagem Java nunca
enfrentou tantas controvérsias.

• Diversas iniciativas, em linguagens dinâmicas como Ruby/Rails, desafiam
abertamente premissas fundamentais do estilo de programação experimentado
em Java.
Os Desafios Futuros

• O mercado está cada vez mais optando por ambientes híbridos, com o Java e
.NET convivendo.
Os Desafios Futuros

 • Dados de mercado – por tamanho:

    › Pequenas e médias empresas são dominadas pela Microsoft:

        • .NET

    › Grandes empresas e multi-nacionais guiadas por infra-
      estruturas heterogêneas:

        • JAVA EE
Os Desafios Futuros

 • Produtividade do desenvolvedor:


    › .NET é geralmente aceita por ter maior produtividade.


    › JAVA EE pode requerer desenvolvedores mais sofisticados.
Os Desafios Futuros

 • Estratégia de decisão – 5 fatores a considerar:


     › Examinar possibilidades de investimentos;
     › Pesar a portabilidade das aplicações;
         • JAVA EE é portável
     › Verificar complexidade das aplicações;
         • UI complexas = .NET
         • Arquitetura complexa = JAVA EE
     › Investigar suporte do fabricante;
     › Computar custos com cuidado;
Os Desafios Futuros

 • Comparativo:

            CARACTERÍSTICA           JAVA EE                .NET
       Tecnologia               Padrão            Depende do Produto
       Linguagem                JAVA              C#
       Fabricantes              Mais de 30        Microsoft
       Interpretador            JRE               CLR
       Páginas Web dinâmicas    JSP               ASP.NET
       Aplicativos RAD          Swing, JSF e AJAX Win Forms e Web Forms
       Componentes de negócio   EJB               .NET
       Acesso a base de dados   JDBC              ADO.NET
       Suporta webservices      Sim               Sim
       Balanceamento de carga   Sim               Sim
Tipagem ?
• Ruby é uma linguagem de tipagem-dinâmica, como Python, Groovy, Scala, e
outras.


• Rails é um framework desenvolvido para Ruby, a fim de agilizar o
desenvolvimento de sistemas de internet.


• A solução RubyOnRails compete com as tecnologias Java destinadas a
construção de Aplicações Web.


• A popularidade do Ruby, vem de uma linguagem mais simples, e de um
framework que requer pouco código para fazer muitas coisas.




             “Uma página em Python ou Ruby pode levar metade do tempo que se tomaria para escrevê-la em Java”
                  pá                                                                      escrevê-      Java”
Tipagem ?
• A comunidade Java não vê linguagens dinamicamente-tipadas como inimigas.


• A especificação Java JSR-223 (Scripting for the Java Platform) prevê a abertura
da plataforma para execução de linguagens de script.


• A possibilidade de utilizar linguagens diferentes para seus fins mais
apropriados, em uma plataforma madura é um ponto positivo para a maior parte
da comunidade Java.


• Assim, as aplicações não precisam abrir mão dos tantos recursos e frameworks
disponíveis para plataforma Java.
Tipagem ?
Futuro ?

 Java é mais que uma Linguagem
Futuro ?
• O futuro do Java não reside na linguagem, mas na plataforma e no ecossistema
que se desenvolveu em torno dela.


• Um exemplo é a IDE Eclipse, que apesar de feita em Java, é utilizada para
desenvolvimento em inúmeras linguagens, ambientes, e para fins diversos.


 • Outros exemplos são os super-servidores de aplicações, como WebSphere,
 BEA Logic ou JBOSS, que vão muito além da própria linguagem, oferecendo
 melhoria contínua de aplicações e processos, através da concorrência aberta.
Futuro ?
  • Por ser portável e robusta, além de possuir um rico conjunto de classes, a
  linguagem Java tem ganhado espaço em projetos de robótica e pesquisa
  aeroespacial.




Fonte: Sun Microsystems
java.sun.com/developer/technicalArticles/
Programming/robotics/



                                            Fonte: blogs.sun.com/simonri




                                                                           Fonte: blogs.sun.com/simonri
Uma Aposta para o Futuro
 • Mercado de jogos – rodam em qualquer celular com JVM Java.
 • TV Digital – conversores possuem Java em seu middleware.
 • GSM – 90% dos chips GSM adotaram Java como padrão.
 • G24-Java – módulo wireless da Motorola desenvolvido para operar em java,
 ampliando o potencial para personalização de aplicativos e configurações, além
 de permitir que as atualizações sejam realizadas remotamente (11/09/2008).
Uma Aposta para o Futuro

 Televisão Digital no Brasil: os conhecimentos e tecnologias associadas a ela
 ganham destaque e o mercado deve crescer muito nos próximos anos.

 Nicho: desenvolvimento de sistemas que ofereçam suporte á produção de conteúdo.
                                                                               .



 A tecnologia da plataforma JAVA é o suporte a várias tecnologias que permitem a
 criação de sistemas deste tipo que, unindo-se a pacotes e Frameworks específicos,
 oferecem as ferramentas necessárias. (JavaTV ).
Mercado Java - Salários

 Desenvolvedor Junior = R$ 2.259,00 (CLT)‫‏‬

 Desenvolvedor Pleno = R$ 3.560,00 (CLT)‫‏‬

 Desenvolvedor Sênior = R$ 5.015,00 (CLT)‫‏‬

 Gerente de Projetos de Sistemas = R$ 3.832,00 – R$ 8.803,00

 Gerente de TI = R$ 5.563,00 – R$ 13.243,00



                                                 *Valores Médios de Mercado
                                                          Mé
                                                 Fonte: dicasinfo-Exame
                                                        dicasinfo-
O Pioneirismo do Infnet
 • O Infnet foi o pioneiro do ensino de Java no Rio de Janeiro,
 ministrando curso desta tecnologia antes mesmo da Sun.



      Formação Desenvolvedor Java
         Código   Nome do curso                                                                               Horas


                  Projeto de Sistemas e Orientação a Objetos com UML
          I550                                                                                                40 h
                  Ensinar conceitos de orientação a objetos e sua utilização no processo de desenvolvimento
                  de software usando UML.


                  Java Programming
          I552                                                                                                48 h
                  Ensinar a programar em Java para alunos que já sabem programar em qualquer outra
                  linguagem.



                  Java Web Applications
          I554                                                                                                48 h
                  Ensinar questões avançadas do desenvolvimento de aplicações Web com a linguagem de
                  programação Java e os frameworks mais usados no mercado.
A Formação Completa do Infnet
Formação Desenvolvedor Java: Sistemas Distribuídos
            Código   Nome do curso                                                            Horas

                     Projeto de Sistemas e Orientação a Objetos com UML
             I550    Ensinar conceitos de orientação a objetos e sua utilização no processo   40 h
                     de desenvolvimento de software usando UML.

                     Java Programming
             I552    Ensinar a programar em Java para alunos que já sabem programar em        48 h
                     qualquer outra linguagem.

                     Java Web Applications
                     Ensinar questões avançadas do desenvolvimento de aplicações Web
             I554                                                                             48 h
                     com a linguagem de programação Java e os frameworks mais usados
                     no mercado.

                     Java Enterprise Applications
             I556    Ensinar conceitos avançados de programação em Java para sistemas         48 h
                     com alta demanda de acesso e segurança.

                     Java Security
             I558    Ensinar conceitos avançados de segurança em Java para sistemas           24 h
                     desktop e J2EE.


                     Java Mobile
             I560    Ensinar programação Java para dispositivos móveis, como celulares e      32 h
                     hand helds.


                     Java Workshop
             I562    Colocar em prática o conhecimento avançado de desenvolvimento de         32 h
                     aplicações Java.
Agradecimentos


- Tomás de Aquino

- Rafel Castaneda




           OBRIGADO!
www.infnet.edu.br
                           cursos@infnet.edu.br
                                  2122-8800


                   Esta palestra está disponível em:
http://www.infnet.edu.br/Home/Eventos/CiclodePalestraseMiniCursos//tabid/253/Default.aspx


                                Ministrada por
                    André Luiz Monteiro da Costa


                                     E-mail:
                   andre.monteiro@prof.infnet.edu.br

Conhecendo Java

  • 1.
    Conhecendo Java O passado, o presente, e as tendências futuras da plataforma de desenvolvimento livre mais Andre Luiz Monteiro da Costa utilizada no mundo. andre.monteiro@prof.infnet.edu.br
  • 2.
    Palestrante • DesenvolvedorJAVA com experiência na utilização de ferramentas e frameworks OpenSource. • Ex-docente do Senac - curso de desenvolvedor JAVA. • Ex-docente das Faculdades São José e Moacyr Bastos. • Ex-Analista de Sistemas da IplanRio. • Docente da Academia do Concurso Público – área de TI. • Docente da SOFEP. • Atualmente trabalha como arquiteto de software na FAPES.
  • 3.
    Palestrante Professordo Infnet: - Projeto de Sistemas e Orientação a Objetos com UML - Java Programming - Java Web Applications
  • 4.
    A Infância deUma Linguagem O Java é uma linguagem baseada no C++, seu desenvolvimento teve inicio em 1991 com a Sun Microsystems em um projeto de codinome Green.
  • 5.
    A Infância deUma Linguagem Java foi criado em 1991 por James Gosling, sob o nome Oak, em homenagem a uma árvore de carvalho que ele via da janela de seu escritório. Mais tarde descobriu-se que já existia uma linguagem com esse nome. O nome java foi sugerido por acaso quando a equipe visitava a cafeteria (java era o nome de uma cidade de origem de um café importado).
  • 6.
    O Objetivo portrás de tudo O objetivo do projeto não era a criação de uma nova linguagem de programação, mas antecipar e planejar a “próxima onda” do mundo digital. Eles acreditavam que, em algum tempo, haveria uma convergência dos computadores com os equipamentos e eletrodomésticos comumente usados pelas pessoas no seu dia-a-dia.
  • 7.
    Característica Principal • Capaz de rodar em diferentes dispositivos de hardware, sem alteração ou recompilação. • Era parte do projeto Star Seven (*7), em automação de equipamentos e casas inteligentes. DUKE mascote da SUN Fonte: Sun Microsystems http://java.sun.com/features/1998/05/birthday.html
  • 8.
    A Infância eo Crescimento • Infelizmente, esta era uma idéia muito a frente do seu tempo, e o projeto *7 nunca foi comercializado. • Em 1994, com o boom da internet, surgiu uma nova área de aplicação para a linguagem: navegação com conteúdo dinâmico (APPLET JAVA). • Após seu lançamento oficial em 1995, Java e a tecnologia de Applets cresceram rapidamente, através de colaboração com a Netscape.
  • 9.
    Finalidade da Tecnologia Criar páginas Web com conteúdo interativo e dinâmico Desenvolver aplicativos corporativos de grande porte Aprimorar a funcionalidade de servidores da WWW Fornecer aplicativos para dispositivos destinados ao consumidor final (telefones celulares, pagers, assistentes pessoais digitais)‫‏‬
  • 10.
    Fase Adulta •Com a adoção de novos padrões para páginas dinâmicas, como Flash, a tecnologia de applets perdeu importância. • Lançada em 1999, a especificação J2EE 1.2 (Java Enterprise Edition) já continha as sementes da plataforma livre dominante no mercado de aplicações web.
  • 11.
    Funcionamento • Programastradicionais devem ser compilados para cada plataforma. WINDOWS LINUX
  • 12.
    Funcionamento • ProgramasJava podem ser compilados uma única vez, e executam em qualquer lugar. “write once, use anywhere!”
  • 13.
    Características Simplicidade A linguagem é derivada da linguagem C e C++, amplamente utilizadas à época. Além disso, o ambiente retira do programador a responsabilidade de gerenciar a memória e os ponteiros. Garbage Collector
  • 14.
    Características Simplicidade Orientadaa Objetos permite a herança e a reutilização de códigos de forma dinâmica e estática.
  • 15.
    Características Simplicidade Orientadaa Objetos Independente de Plataforma permite a herança e a reutilização de códigos de forma dinâmica e estática.
  • 16.
    Características Simplicidade Orientadaa Objetos Independente de Plataforma Distribuída Aplicações Java podem abrir e acessar objetos através da rede via URL's (http/ftp) e com a mesma facilidade que os programadores usam quando acessam um sistema de arquivo local.
  • 17.
    Características Simplicidade Orientadaa Objetos Independente de Plataforma Distribuída Robusta Java trabalha com uma rígida prevenção de comportamento malicioso dos programas, tais como: estouro de pilha, corrupção de memória de outros processos, etc. (fortemente tipada)
  • 18.
    Características Simplicidade Orientadaa Objetos Independente de Plataforma Distribuída A linguagem Java suporta vários recursos de alto desempenho, Robusta como multithreading, compilação just-in-time e utilização de código Alto Desempenho nativo.
  • 19.
    Versões Code Developer Codename Release Version Version J2SE 1.4.2 Java 2 Mantis 2003 JSE 5.0 Java 5 Tiger 2005 JSE 6.0 Java 6 Mustang 2006 JSE 7.0 Java 7 Dolphin 2007
  • 20.
    A Plataforma Java :: Java é mais que uma linguagem, é uma plataforma: • Java Standard Edition (JSE)‫‏‬ Edição básica para desenvolvimento desktop. • Java Enterprise Edition (JEE)‫‏‬ Tecnologias para desenvolvimento em servidores. • Java Micro Edition (JME) Edição para desenvolvimento para dispositivos móveis.
  • 21.
    A Plataforma Java- Standard Edition
  • 22.
    A Plataforma Java- Standard Edition
  • 23.
    A Plataforma Java- Enterprise Edition • JEE é uma gama de tecnologias desenvolvidas sobre a distribuição básica. • Fornecem bases de implementação para software de estrutura cliente-servidor, como as aplicações web. • O desenvolvedor encontra na plataforma suporte a implementação de interfaces, controle da lógica interna de negócio, acesso a banco de dados, transações, etc.
  • 24.
    A Plataforma Java– Enterprise Edition “Java EE é desenhado para suportar aplicações que implementem serviços empresariais para clientes, empregados, fornecedores e quaisquer outros que gerem demandas ou contribuições para a empresa” (Tutorial JEE - Sun)‫‏‬
  • 25.
    A Plataforma Java– Mobile Edition “There are two configurations. The first configuration, the Connected Device Configuration (CDC), uses the classic Java virtual machine. This virtual machine is a full-featured virtual machine with the same functionality you would find in the virtual machine residing on your desktop system. The second configuration, the Connected Limited Device Configuration (CLDC), uses the K Virtual Machine, a small footprint virtual machine for severely memory constrained environments. The CLDC is targeted for Java environments of 128-512KB, and the CDC is targeted for Java environments of greater than 512KB. ” (java.sun.com/products/personaljava/faq.html)‫‏‬
  • 26.
    A Plataforma Java– Enterprise Edition Entre as especificações JEE se encontram: • Servlets (aplicações web)‫‏‬ • JDBC (bancos de dados relacionais)‫‏‬ • JCA (conexão com mainframes e aplicações legadas)‫‏‬ • JTA (acesso a transações distribuídas)‫‏‬ • JavaMail (e-mail internet em Java)‫‏‬ • JMF (acesso a informações multimídia)‫‏‬ • EJB (componentes distribuídos e persistentes)‫‏‬ • JAXP (processamento de XML e web services)‫‏‬ • JMX (gerenciamento de servidores, redes e aplicações)‫‏‬
  • 27.
  • 28.
    Java na atualidade Presente Java e os Dias de Hoje
  • 29.
    Java na atualidade •Hoje Java pode ser encontrado em celulares, DVD´s, chips, servidores, browsers, desktops, robôs e até espaçonaves. • Conta com mais de 5 milhões de desenvolvedores ao redor do mundo, organizados em comunidades que atuam em fóruns, projetos e especificações oficiais. • Desde 2006, em uma iniciativa surpreendente da Sun, Java é uma plataforma Open-Source.
  • 30.
    Java na atualidade http://meapplicationdevelopers.dev.java.net/fragmentation.html
  • 31.
  • 32.
    Java na atualidade http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
  • 33.
  • 34.
    Ambientes de DesenvolvimentoJava • Netbeans. • Eclipse. • Borland JBuilder. • Oracle JDeveloper.
  • 35.
  • 36.
  • 37.
    Os Desafios Futuros •Ao mesmo tempo em que parece estar em seu ápice, a linguagem Java nunca enfrentou tantas controvérsias. • Diversas iniciativas, em linguagens dinâmicas como Ruby/Rails, desafiam abertamente premissas fundamentais do estilo de programação experimentado em Java.
  • 38.
    Os Desafios Futuros •O mercado está cada vez mais optando por ambientes híbridos, com o Java e .NET convivendo.
  • 39.
    Os Desafios Futuros • Dados de mercado – por tamanho: › Pequenas e médias empresas são dominadas pela Microsoft: • .NET › Grandes empresas e multi-nacionais guiadas por infra- estruturas heterogêneas: • JAVA EE
  • 40.
    Os Desafios Futuros • Produtividade do desenvolvedor: › .NET é geralmente aceita por ter maior produtividade. › JAVA EE pode requerer desenvolvedores mais sofisticados.
  • 41.
    Os Desafios Futuros • Estratégia de decisão – 5 fatores a considerar: › Examinar possibilidades de investimentos; › Pesar a portabilidade das aplicações; • JAVA EE é portável › Verificar complexidade das aplicações; • UI complexas = .NET • Arquitetura complexa = JAVA EE › Investigar suporte do fabricante; › Computar custos com cuidado;
  • 42.
    Os Desafios Futuros • Comparativo: CARACTERÍSTICA JAVA EE .NET Tecnologia Padrão Depende do Produto Linguagem JAVA C# Fabricantes Mais de 30 Microsoft Interpretador JRE CLR Páginas Web dinâmicas JSP ASP.NET Aplicativos RAD Swing, JSF e AJAX Win Forms e Web Forms Componentes de negócio EJB .NET Acesso a base de dados JDBC ADO.NET Suporta webservices Sim Sim Balanceamento de carga Sim Sim
  • 43.
    Tipagem ? • Rubyé uma linguagem de tipagem-dinâmica, como Python, Groovy, Scala, e outras. • Rails é um framework desenvolvido para Ruby, a fim de agilizar o desenvolvimento de sistemas de internet. • A solução RubyOnRails compete com as tecnologias Java destinadas a construção de Aplicações Web. • A popularidade do Ruby, vem de uma linguagem mais simples, e de um framework que requer pouco código para fazer muitas coisas. “Uma página em Python ou Ruby pode levar metade do tempo que se tomaria para escrevê-la em Java” pá escrevê- Java”
  • 44.
    Tipagem ? • Acomunidade Java não vê linguagens dinamicamente-tipadas como inimigas. • A especificação Java JSR-223 (Scripting for the Java Platform) prevê a abertura da plataforma para execução de linguagens de script. • A possibilidade de utilizar linguagens diferentes para seus fins mais apropriados, em uma plataforma madura é um ponto positivo para a maior parte da comunidade Java. • Assim, as aplicações não precisam abrir mão dos tantos recursos e frameworks disponíveis para plataforma Java.
  • 45.
  • 46.
    Futuro ? Javaé mais que uma Linguagem
  • 47.
    Futuro ? • Ofuturo do Java não reside na linguagem, mas na plataforma e no ecossistema que se desenvolveu em torno dela. • Um exemplo é a IDE Eclipse, que apesar de feita em Java, é utilizada para desenvolvimento em inúmeras linguagens, ambientes, e para fins diversos. • Outros exemplos são os super-servidores de aplicações, como WebSphere, BEA Logic ou JBOSS, que vão muito além da própria linguagem, oferecendo melhoria contínua de aplicações e processos, através da concorrência aberta.
  • 48.
    Futuro ? • Por ser portável e robusta, além de possuir um rico conjunto de classes, a linguagem Java tem ganhado espaço em projetos de robótica e pesquisa aeroespacial. Fonte: Sun Microsystems java.sun.com/developer/technicalArticles/ Programming/robotics/ Fonte: blogs.sun.com/simonri Fonte: blogs.sun.com/simonri
  • 49.
    Uma Aposta parao Futuro • Mercado de jogos – rodam em qualquer celular com JVM Java. • TV Digital – conversores possuem Java em seu middleware. • GSM – 90% dos chips GSM adotaram Java como padrão. • G24-Java – módulo wireless da Motorola desenvolvido para operar em java, ampliando o potencial para personalização de aplicativos e configurações, além de permitir que as atualizações sejam realizadas remotamente (11/09/2008).
  • 50.
    Uma Aposta parao Futuro Televisão Digital no Brasil: os conhecimentos e tecnologias associadas a ela ganham destaque e o mercado deve crescer muito nos próximos anos. Nicho: desenvolvimento de sistemas que ofereçam suporte á produção de conteúdo. . A tecnologia da plataforma JAVA é o suporte a várias tecnologias que permitem a criação de sistemas deste tipo que, unindo-se a pacotes e Frameworks específicos, oferecem as ferramentas necessárias. (JavaTV ).
  • 51.
    Mercado Java -Salários Desenvolvedor Junior = R$ 2.259,00 (CLT)‫‏‬ Desenvolvedor Pleno = R$ 3.560,00 (CLT)‫‏‬ Desenvolvedor Sênior = R$ 5.015,00 (CLT)‫‏‬ Gerente de Projetos de Sistemas = R$ 3.832,00 – R$ 8.803,00 Gerente de TI = R$ 5.563,00 – R$ 13.243,00 *Valores Médios de Mercado Mé Fonte: dicasinfo-Exame dicasinfo-
  • 52.
    O Pioneirismo doInfnet • O Infnet foi o pioneiro do ensino de Java no Rio de Janeiro, ministrando curso desta tecnologia antes mesmo da Sun. Formação Desenvolvedor Java Código Nome do curso Horas Projeto de Sistemas e Orientação a Objetos com UML I550 40 h Ensinar conceitos de orientação a objetos e sua utilização no processo de desenvolvimento de software usando UML. Java Programming I552 48 h Ensinar a programar em Java para alunos que já sabem programar em qualquer outra linguagem. Java Web Applications I554 48 h Ensinar questões avançadas do desenvolvimento de aplicações Web com a linguagem de programação Java e os frameworks mais usados no mercado.
  • 53.
    A Formação Completado Infnet Formação Desenvolvedor Java: Sistemas Distribuídos Código Nome do curso Horas Projeto de Sistemas e Orientação a Objetos com UML I550 Ensinar conceitos de orientação a objetos e sua utilização no processo 40 h de desenvolvimento de software usando UML. Java Programming I552 Ensinar a programar em Java para alunos que já sabem programar em 48 h qualquer outra linguagem. Java Web Applications Ensinar questões avançadas do desenvolvimento de aplicações Web I554 48 h com a linguagem de programação Java e os frameworks mais usados no mercado. Java Enterprise Applications I556 Ensinar conceitos avançados de programação em Java para sistemas 48 h com alta demanda de acesso e segurança. Java Security I558 Ensinar conceitos avançados de segurança em Java para sistemas 24 h desktop e J2EE. Java Mobile I560 Ensinar programação Java para dispositivos móveis, como celulares e 32 h hand helds. Java Workshop I562 Colocar em prática o conhecimento avançado de desenvolvimento de 32 h aplicações Java.
  • 54.
    Agradecimentos - Tomás deAquino - Rafel Castaneda OBRIGADO!
  • 55.
    www.infnet.edu.br cursos@infnet.edu.br 2122-8800 Esta palestra está disponível em: http://www.infnet.edu.br/Home/Eventos/CiclodePalestraseMiniCursos//tabid/253/Default.aspx Ministrada por André Luiz Monteiro da Costa E-mail: andre.monteiro@prof.infnet.edu.br