Conhecendo Java

5.020 visualizações

Publicada em

Slides da Palestra Conhecendo Java, ministrada por André Luiz Costa, Instrutor do Instituto Infnet.
O passado, o presente, e as tendências futuras da plataforma de desenvolvimento
livre mais utilizada no mundo. Descubra suas principais aplicações, características e as certificações disponíveis.

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
5.020
No SlideShare
0
A partir de incorporações
0
Número de incorporações
711
Ações
Compartilhamentos
0
Downloads
155
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Conhecendo Java

  1. 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. 2. 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.
  3. 3. Palestrante Professor do Infnet: - Projeto de Sistemas e Orientação a Objetos com UML - Java Programming - Java Web Applications
  4. 4. 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.
  5. 5. 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).
  6. 6. 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.
  7. 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. 8. 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.
  9. 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. 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. 11. Funcionamento • Programas tradicionais devem ser compilados para cada plataforma. WINDOWS LINUX
  12. 12. Funcionamento • Programas Java podem ser compilados uma única vez, e executam em qualquer lugar. “write once, use anywhere!”
  13. 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. 14. Características Simplicidade Orientada a Objetos permite a herança e a reutilização de códigos de forma dinâmica e estática.
  15. 15. 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.
  16. 16. 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.
  17. 17. 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)
  18. 18. 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.
  19. 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. 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. 21. A Plataforma Java - Standard Edition
  22. 22. A Plataforma Java - Standard Edition
  23. 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. 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. 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. 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. 27. A Plataforma Java
  28. 28. Java na atualidade Presente Java e os Dias de Hoje
  29. 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. 30. Java na atualidade http://meapplicationdevelopers.dev.java.net/fragmentation.html
  31. 31. Java na atualidade
  32. 32. Java na atualidade http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
  33. 33. Java na atualidade
  34. 34. Ambientes de Desenvolvimento Java • Netbeans. • Eclipse. • Borland JBuilder. • Oracle JDeveloper.
  35. 35. IDEs Java
  36. 36. Inserir IDE NEtbeans
  37. 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. 38. Os Desafios Futuros • O mercado está cada vez mais optando por ambientes híbridos, com o Java e .NET convivendo.
  39. 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. 40. Os Desafios Futuros • Produtividade do desenvolvedor: › .NET é geralmente aceita por ter maior produtividade. › JAVA EE pode requerer desenvolvedores mais sofisticados.
  41. 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. 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. 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. 44. 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.
  45. 45. Tipagem ?
  46. 46. Futuro ? Java é mais que uma Linguagem
  47. 47. 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.
  48. 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. 49. 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).
  50. 50. 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 ).
  51. 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. 52. 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.
  53. 53. 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.
  54. 54. Agradecimentos - Tomás de Aquino - Rafel Castaneda OBRIGADO!
  55. 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

×