Desenvolvimento Java Serge Rehem [email_address] JavaBahia JUG Leader javabahia.org
Esta obra está licenciada sob uma  Licença Creative Commons http://creativecommons.org/licenses/by-nc-sa/2.0/br/
Como tudo começou...
3 - 13p / 18m dez 90 a próxima onda  do mundo digital ? computadores + eletrodomésticos Sun microsystems
*7 demo set 92 Oak -> Java
1.0a2 mar 95 10.000  downloads Netscape ← Java
The Green Team James Gosling
=   Linguagem Programação + Plataforma ≠ JavaScript
O_o ≈   SmallTalk / Simula67 C/C++ familiar  Portabilidade Segurança Rede/distribuição API++++ Carga dinâmica Garbage Collector Linguagem Java
Interpretação – Nx Compilação - 1x Linguagem Java
Java Virtual Machine (JVM) Application Programming Interface (API) Plataforma Java
Programa  JVM   SO HW
W rite  O nce  R un  A nywhere bytecode Prog.java Prog.class
JDK Java Development Kit
javac  HelloWorld.java
JRE Java Runtime Environment
java  HelloWorld
 
 
Hello World Festival
App
App
App
Applet
Applet
Applet
Applet
App/Swing
App/Swing
App/Swing
Servlet
Servlet
JSP
JSP
http://www.roseindia.net/j2me/hello-world.shtml MIDLet
IDE X
Java/Web...
GlassFish Tomcat AppServer
JDBC JDO JPA Persistência
JSF Java Web Framework
Hudson Testes / Build / Integração Contínua
Segurança Relatórios e-Mail Agendamento Validação Logging Utilitários Workflow ? ? ? +Componentes
Demoiselle Framework www.frameworkdemoiselle.gov.br
Java Editions
Java
jcp.org
Quero aprender +
Java User Groups
Grupos de Usuários
javabahia.org
Java Education and Development Initiative http://www.dfjug.org/DFJUG/jedi JEDI
Iniciativa JEDI
 
Por que Java?
https://meapplicationdevelopers.dev.java.net/fragmentation.html
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Java não roda só Java... groovy.codehaus.org www.jython.org jruby.codehaus.org sun.com/javafx www.beanshell.org Rhino: JavaScript for Java www.mozilla.org/rhino
javafx.com
 
Java FX
JavaFX Mobile
L earn  O nce R euse  A nywhere
Serge Rehem [email_address] twitter.com/serge_rehem slideshare.net/serge_rehem Obrigado!

Desenvolvimento Java

Notas do Editor

  • #5 Sun. Dezembro, 1990 - Green Project Patrick Naughton, Mike Sheridan e James Gosling A “próxima onda” do mundo digital Idéia Convergência dos computadores com os equipamentos e eletrodomésticos comumente usados pelas pessoas no seu dia-a-dia 13 pessoas durante 18 meses
  • #6 StarSeven (*7) - set/1992 Demonstração funcional da idéia Controle remoto com GUI touchscreen para diversos dispositivos e aplicações Duke: guia virtual Oak (Carvalho) nova LP para o *7
  • #7 * StarSeven (*7) - set/1992 Mercado: Controlar TV e vídeo por demanda Necessidade de uma grande rede de cabos Idéia certa na época errada! BOOM da Internet Infra-estrutura de rede Java - Oak adaptado para a Internet (Gosling) Março, 1995 - versão 1.0a2 (alpha) na Internet 10.000 downloads, atenção de toda a mídia Netscape anuncia browsers com Java embutido
  • #9 Java é uma linguagem de programação Java é uma plataforma Java NÃO É JavaScript
  • #10 Principais Características Orientação a objeto - Baseado no modelo de Smalltalk e Simula67 Portabilidade - Independência de plataforma Recursos de Rede - Extensa biblioteca de rotinas que facilitam a cooperação com protocolos TCP/IP, como HTTP e FTP Segurança – Execução de programas via rede com restrições de execução
  • #14 You can think of Java bytecodes as the machine code instructions for the Java Virtual Machine (Java VM). Every Java interpreter, whether it's a development tool or a Web browser that can run applets, is an implementation of the Java VM. Java bytecodes help make "write once, run anywhere" possible Programas Java não são traduzidos para a linguagem de máquina como outras linguagens estaticamente compiladas e sim para uma representação intermediária, chamada de bytecodes . Os bytecodes são interpretados pela máquina virtual Java (JVM - Java Virtual Machine ). Muitas pessoas acreditam que por causa desse processo, o código interpretado Java tem baixo desempenho. Durante muito tempo esta foi uma afirmação verdadeira. Porém novos avanços tem tornado o compilador dinâmico (a JVM), em muitos casos, mais eficiente que o compilador estático. Java hoje já possuiu uma performace próxima do C++. Isto é possível graças a otimizações como a compilação especulativa, que aproveita o tempo ocioso do processador para pré-compilar bytecode para código nativo. Outros mecanismos ainda mais elaborados como o HotSpot da Sun, que guarda informações disponíveis somente em tempo de execução (ex.: número de usuários, processamento usado, memória disponível), para otimzar o funcionamento da JVM, possibilitando que a JVM vá "aprendendo" e melhorando seu desempenho. Isto é uma realidade tão presente que hoje é fácil encontrar programas corporativos e de missão crítica usando tecnologia Java. No Brasil, por exemplo, a maioria dos Bancos utiliza a tecnologia Java para construir seus home banks , que são acessados por milhares de usuários diariamente. Grandes sites como o eBay utilizam Java para garantir alta performace. E a cada ano Java tem se tornado mais rápido, na medida que se evolui o compilador dinâmico. Os bytecodes produzidos pelos compiladores Java podem ser usados num processo de engenharia reversa para a recuperação do programa-fonte original. Esta é uma característica que atinge em menor grau todas as linguagens compiladas. No entanto já existem hoje tecnologias que "embaralham" e até mesmo criptografam os bytecodes praticamente impedindo a engenharia reversa .