JavaScript por debaixo dos panos
Upcoming SlideShare
Loading in...5
×
 

JavaScript por debaixo dos panos

on

  • 2,306 views

ecossistema e linguagem na perspectiva da JVM

ecossistema e linguagem na perspectiva da JVM

Statistics

Views

Total Views
2,306
Views on SlideShare
2,282
Embed Views
24

Actions

Likes
1
Downloads
20
Comments
0

5 Embeds 24

http://twitter.com 8
http://www.linkedin.com 7
http://us-w1.rockmelt.com 4
https://www.linkedin.com 3
http://www.techgig.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

JavaScript por debaixo dos panos JavaScript por debaixo dos panos Presentation Transcript

  • JavaScript por debaixo dos panos ecossistema e linguagem na perspectiva da JVM @qmx http://blog.qmx.me/Saturday, May 14, 2011
  • www.gonow.com.br www.caelum.com.br Text gitshelf.comSaturday, May 14, 2011
  • quê?Saturday, May 14, 2011
  • O DesenvolvedorSaturday, May 14, 2011
  • O ClienteSaturday, May 14, 2011
  • O processo de deploySaturday, May 14, 2011
  • HomologaçãoSaturday, May 14, 2011
  • Sem pacote RPM?Saturday, May 14, 2011
  • Pacotes fáceis de FazerSaturday, May 14, 2011
  • Deploy SimplesSaturday, May 14, 2011
  • Um ZipãoSaturday, May 14, 2011
  • à prova de sobrinhoSaturday, May 14, 2011
  • Java!Saturday, May 14, 2011
  • Java?Saturday, May 14, 2011
  • porquê?Saturday, May 14, 2011
  • não é node.jsSaturday, May 14, 2011
  • node.jsSaturday, May 14, 2011
  • Saturday, May 14, 2011
  • node.js tem potencialSaturday, May 14, 2011
  • MASSaturday, May 14, 2011
  • node.js não é bala de prataSaturday, May 14, 2011
  • 100% async não é pra qualquer umSaturday, May 14, 2011
  • “mais de um jeito de fazer” Consultor SêniorSaturday, May 14, 2011
  • ringojsSaturday, May 14, 2011
  • 10 anos de idade!Saturday, May 14, 2011
  • “Ringo takes a pragmatical and non-dogmatic stance on things like I/O paradigms.”Saturday, May 14, 2011
  • DTSTTCPW Faça a coisa mais simples possível com potencial de funcionarSaturday, May 14, 2011
  • (QUASE) NADASaturday, May 14, 2011
  • como?Saturday, May 14, 2011
  • reutilizando a rodaSaturday, May 14, 2011
  • ➜ rhino1_7R3 java -jar js.jar Rhino 1.7 release 3 2011 05 10 js> date = new java.util.Date(); Thu May 12 11:12:24 BRT 2011Saturday, May 14, 2011
  • Qualquer biblioteca java já existenteSaturday, May 14, 2011
  • in-process cache? distributed cache? roll your own?Saturday, May 14, 2011
  • EHCACHESaturday, May 14, 2011
  • Agendamento de Tarefas?Saturday, May 14, 2011
  • QuartzSaturday, May 14, 2011
  • Busca textual?Saturday, May 14, 2011
  • Lucene / SolrSaturday, May 14, 2011
  • E muito mais!Saturday, May 14, 2011
  • um problemaSaturday, May 14, 2011
  • Rhino é lentoSaturday, May 14, 2011
  • porquê?Saturday, May 14, 2011
  • Saturday, May 14, 2011
  • Saturday, May 14, 2011
  • Não é V8Saturday, May 14, 2011
  • mehSaturday, May 14, 2011
  • VMSaturday, May 14, 2011
  • Vantagens e DesvantagensSaturday, May 14, 2011
  • poor’s man computer?Saturday, May 14, 2011
  • KISSSaturday, May 14, 2011
  • e o JavaScript?Saturday, May 14, 2011
  • como otimizar?Saturday, May 14, 2011
  • 1 function Carro(nome, cor) { 2 this.nome = nome; 3 this.cor = cor; 4 this.anda = function(){ 5 print("andando"); 6 } 7 } 8 9 var x = new Carro("trovão azul", "azul (duh)"); 10 x.anda();Saturday, May 14, 2011
  • 1 function Carro(nome, cor) { 2 this.nome = nome; 3 this.cor = cor; 4 this.anda = function(){ 5 print("andando"); 6 } 7 } 8 9 var x = new Carro("trovão azul", "azul (duh)"); 10 x.anda();Saturday, May 14, 2011
  • 1 function MotorV8(){ 2 this.liga = function(){ 3 print("ligando..."); 4 } 5 }Saturday, May 14, 2011
  • 7 function Carro(nome, cor) { 8 this.nome = nome; 9 this.cor = cor; 10 this.motor = new MotorV8(); 11 this.anda = function(){ 12 print("andando"); 13 } 14 this.liga = function(){ 15 this.motor.liga(); 16 } 17 }Saturday, May 14, 2011
  • 19 var x = new Carro("trovão azul", "azul (duh)"); 20 21 for(var i = 0; i< 10000; i++){ 22 x.liga(); 23 }Saturday, May 14, 2011
  • 19 var x = new Carro("trovão azul", "azul (duh)"); 20 21 for(var i = 0; i< 10000; i++){ 22 x.liga(); 23 }Saturday, May 14, 2011
  • inline de métodosSaturday, May 14, 2011
  • 19 var x = new Carro("trovão azul", "azul (duh)"); 20 21 for(var i = 0; i< 10000; i++){ 22 print(“ligando...”); 23 }Saturday, May 14, 2011
  • ReplaySaturday, May 14, 2011
  • 1 function MotorV8(){ 2 this.liga = function(){ 3 print("ligando..."); 4 } 5 }Saturday, May 14, 2011
  • 7 function Carro(nome, cor) { 8 this.nome = nome; 9 this.cor = cor; 10 this.motor = new MotorV8(); 11 this.anda = function(){ 12 print("andando"); 13 } 14 this.liga = function(){ 15 this.motor.liga(); 16 } 17 }Saturday, May 14, 2011
  • 19 var x = new Carro("trovão azul", "azul (duh)"); 20 21 for(var i = 0; i< 10000; i++){ 22 print(“ligando...”); 23 }Saturday, May 14, 2011
  • problemas?Saturday, May 14, 2011
  • #failSaturday, May 14, 2011
  • JVMSaturday, May 14, 2011
  • feita pensando em uma linguagem (começa com J)Saturday, May 14, 2011
  • precisa de classesSaturday, May 14, 2011
  • function Carro === class CarroSaturday, May 14, 2011
  • JVM no máximo 256 opcodesSaturday, May 14, 2011
  • simplesSaturday, May 14, 2011
  • Saturday, May 14, 2011
  • ldcSaturday, May 14, 2011
  • ldc #9Saturday, May 14, 2011
  • ldc #9 // “Hello World”Saturday, May 14, 2011
  • ldc #9 // “Hello World” getstaticSaturday, May 14, 2011
  • ldc #9 // “Hello World” getstatic #15Saturday, May 14, 2011
  • ldc #9 // “Hello World” getstatic #15 // System.outSaturday, May 14, 2011
  • ldc #9 // “Hello World” getstatic #15 // System.out swapSaturday, May 14, 2011
  • ldc #9 // “Hello World” getstatic #15 // System.out swap invokevirtualSaturday, May 14, 2011
  • ldc #9 // “Hello World” getstatic #15 // System.out swap invokevirtual #21Saturday, May 14, 2011
  • ldc #9 // “Hello World” getstatic #15 // System.out swap invokevirtual #21 // PrintWriter.println()Saturday, May 14, 2011
  • ldc #9 // “Hello World” getstatic #15 // System.out swap invokevirtual #21 // PrintWriter.println() returnSaturday, May 14, 2011
  • ZOMGSaturday, May 14, 2011
  • Estrutura de Invocação invokestaticSaturday, May 14, 2011
  • Estrutura de Invocação invokestatic ASaturday, May 14, 2011
  • Estrutura de Invocação invokestatic ASaturday, May 14, 2011
  • Estrutura de Invocação invokestatic A BSaturday, May 14, 2011
  • Estrutura de Invocação invokevirtualSaturday, May 14, 2011
  • Estrutura de Invocação invokevirtual ASaturday, May 14, 2011
  • Estrutura de Invocação invokevirtual ASaturday, May 14, 2011
  • Estrutura de Invocação invokevirtual A BSaturday, May 14, 2011
  • Estrutura de Invocação invokevirtual A B CSaturday, May 14, 2011
  • Estrutura de Invocação invokevirtual A B CSaturday, May 14, 2011
  • Estrutura de Invocação invokeinterfaceSaturday, May 14, 2011
  • Estrutura de Invocação invokeinterface ASaturday, May 14, 2011
  • Estrutura de Invocação invokeinterface ASaturday, May 14, 2011
  • Estrutura de Invocação invokeinterface A I swear I am BSaturday, May 14, 2011
  • Estrutura de Invocação invokeinterface A I swear I am B CSaturday, May 14, 2011
  • Estrutura de Invocação invokeinterface A I swear I am B CSaturday, May 14, 2011
  • Estrutura de Invocação invokeinterface A I swear I am B CSaturday, May 14, 2011
  • Estrutura de Invocação invokeinterface A I swear I am B He is D (LIAR) CSaturday, May 14, 2011
  • e o JavaScript?Saturday, May 14, 2011
  • Saturday, May 14, 2011
  • functionSaturday, May 14, 2011
  • function identifierSaturday, May 14, 2011
  • function identifier formal parameter listSaturday, May 14, 2011
  • function identifier formal parameter list function bodySaturday, May 14, 2011
  • formal parameter list function bodySaturday, May 14, 2011
  • Saturday, May 14, 2011
  • n body function body function body function body function body function body function body function body function body function body functioSaturday, May 14, 2011
  • JavaScript === um monte de blocos executáveisSaturday, May 14, 2011
  • perfeito para otimizaçãoSaturday, May 14, 2011
  • como resolver?Saturday, May 14, 2011
  • JDK7 (prevista pra 7/7)Saturday, May 14, 2011
  • invokedynamicSaturday, May 14, 2011
  • invokedynamicSaturday, May 14, 2011
  • invokedynamic ASaturday, May 14, 2011
  • invokedynamic A CSaturday, May 14, 2011
  • invokedynamic A D CSaturday, May 14, 2011
  • invokedynamic A D CSaturday, May 14, 2011
  • invokedynamic A D CSaturday, May 14, 2011
  • invokedynamic A D CSaturday, May 14, 2011
  • invokedynamic A D C ?Saturday, May 14, 2011
  • invokedynamic A D C ?Saturday, May 14, 2011
  • invokedynamic A D C ?Saturday, May 14, 2011
  • invokedynamic A D C ?Saturday, May 14, 2011
  • mega-alphaSaturday, May 14, 2011
  • dyn.js 100% invokedynamic js implSaturday, May 14, 2011
  • em breveSaturday, May 14, 2011
  • “Anyway, I know only one programming language worse than C and that is JavaScript” Robert CaillauSaturday, May 14, 2011
  • Saturday, May 14, 2011
  • ?Saturday, May 14, 2011
  • Obrigado!Saturday, May 14, 2011