SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Javascript: A linguagem do futuro Ramon Felipe de Oliveira Analista de Sistema Softplan SCJA  -  SCJP  -  SCWCD
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
No começo...  assembly   ,[object Object],[object Object],[object Object]
Depois...  ,[object Object],[object Object],[object Object],[object Object]
Depois...  ,[object Object],[object Object],[object Object]
Um pouco depois...  ,[object Object],[object Object],[object Object],[object Object]
Forte tipagem é bom?  ,[object Object],[object Object],[object Object]
Scripting  ,[object Object],[object Object],[object Object]
Cada macaco no seu ganho ,[object Object],[object Object],[object Object],[object Object]
Scriptings em ascensão? ,[object Object],[object Object],[object Object],[object Object]
Caixa de Skinner Skinner “ O problema com falsos padrões”
Comparativo desenvolvimento
 
Origens ,[object Object],Brendan Eich Brendan Eich
Características ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Objeto em JS
Sintaxe Literal ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Functions
Functions
Função add ,[object Object],[object Object],[object Object],[object Object]
Função add ,[object Object],[object Object],[object Object],[object Object]
 
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Herança por Protótipo
Herança por Protótipo
Problema
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Solução 1
> p = criarPessoa(“João", “Silva");  > nomeCompleto(p)  João Silva > nomeCompletoInvertido(p)  Silva, João Apesar de funcionar, não é uma  solução interessante . Provavelmente, logo existirá dezenas de funções no global namespace.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Solução 2
> s = criarPessoa(“João", “Silva") > s. nomeCompleto()  João Silva   > s. nomeCompletoInvertido()  Silva, João
Solução 3 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Prototype
Closures ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Patterns ,[object Object],[object Object],[object Object],[object Object],[object Object]
Revealing Pattern ,[object Object]
TDD e javascript ,[object Object],[object Object],[object Object],[object Object]
ECMAScript 5 ,[object Object],[object Object],[object Object],[object Object]
[object Object]
[object Object]
Referências ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Contenu connexe

Tendances

Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05thomasdacosta
 
Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02thomasdacosta
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04thomasdacosta
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STLMarcos Castro
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STLMarcos Castro
 
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...Loiane Groner
 
Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03thomasdacosta
 
Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07thomasdacosta
 
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05thomasdacosta
 
Programação funcional
Programação funcionalProgramação funcional
Programação funcionalNatan Mai
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiatdc-globalcode
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaMario Sergio
 
Introdução Programação Funcional
Introdução Programação FuncionalIntrodução Programação Funcional
Introdução Programação FuncionalNatan Mai
 
[Curso Java Basico - Orientacao a Objetos] Aula 35: Recursividade
[Curso Java Basico - Orientacao a Objetos] Aula 35: Recursividade[Curso Java Basico - Orientacao a Objetos] Aula 35: Recursividade
[Curso Java Basico - Orientacao a Objetos] Aula 35: RecursividadeLoiane Groner
 

Tendances (20)

Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05
 
Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STL
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STL
 
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
 
Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
M2ti - Python Brasil
M2ti - Python BrasilM2ti - Python Brasil
M2ti - Python Brasil
 
Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07
 
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05
 
Programação funcional
Programação funcionalProgramação funcional
Programação funcional
 
Ruby versus Python
Ruby versus PythonRuby versus Python
Ruby versus Python
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
 
Depuração de software
Depuração de softwareDepuração de software
Depuração de software
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs Java
 
Introdução Programação Funcional
Introdução Programação FuncionalIntrodução Programação Funcional
Introdução Programação Funcional
 
[Curso Java Basico - Orientacao a Objetos] Aula 35: Recursividade
[Curso Java Basico - Orientacao a Objetos] Aula 35: Recursividade[Curso Java Basico - Orientacao a Objetos] Aula 35: Recursividade
[Curso Java Basico - Orientacao a Objetos] Aula 35: Recursividade
 
Migrando pra Scala
Migrando pra ScalaMigrando pra Scala
Migrando pra Scala
 

Similaire à Tdc2010 web

Similaire à Tdc2010 web (20)

JavaScript - A Linguagem
JavaScript - A LinguagemJavaScript - A Linguagem
JavaScript - A Linguagem
 
Javascript
JavascriptJavascript
Javascript
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
javascript_funcional.pdf
javascript_funcional.pdfjavascript_funcional.pdf
javascript_funcional.pdf
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
 
JQuery
JQuery JQuery
JQuery
 
Java script aula 02 - operadores
Java script   aula 02 - operadoresJava script   aula 02 - operadores
Java script aula 02 - operadores
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao ruby
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Programação funcional em JavaScript: como e por quê?
Programação funcional em JavaScript: como e por quê?Programação funcional em JavaScript: como e por quê?
Programação funcional em JavaScript: como e por quê?
 
Desenvolvendo para WEB com JAVA
Desenvolvendo para WEB com JAVADesenvolvendo para WEB com JAVA
Desenvolvendo para WEB com JAVA
 
Aula5
Aula5Aula5
Aula5
 
JS Experience 2017 - Javascript Funcional
JS Experience 2017 - Javascript FuncionalJS Experience 2017 - Javascript Funcional
JS Experience 2017 - Javascript Funcional
 
Grails parte 1 - introdução
Grails   parte 1 - introduçãoGrails   parte 1 - introdução
Grails parte 1 - introdução
 
Java5
Java5Java5
Java5
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POO
 
Refatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completaRefatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completa
 
Turbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinTurbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com Kotlin
 
Aula3
Aula3Aula3
Aula3
 

Tdc2010 web

Notes de l'éditeur

  1. Assembler é uma línguagem de baixo nível, aonde o programador é obrigado a lidar com detalhes de máquina. Cada linha programada geralmente corresponde a uma linha de máquina register allocation and procedure calling sequences
  2. Lidar com detalhes de máquina deixava a programação mais complexa e lenta. Sugiram linguagens que abstraiam este problema do programador. Estas linguagens geralmente tinham forte tipagem, e delas derivaram linguagens tais como C, C++ e java
  3. Estas linguagens são um pouco mais lenta quando comparada a linguagem Assembler, mas ofereciam um velocidade de desenvolvimento melhor. Cada linha de çódigo fonte geralmente geravam cinco linhas de máquinas. Geralmente cada programador programa uma mesma quantidade de linhas de código, independente da linguagem. Então para cada linha de máquina programada em Assembler, uma linguagem de alto nível geraria 5 linhas.
  4. Um pouco depois do surgimento de linguagem para programar sistemas, surge a linguagens scripting. Eles geralmente tinha fraca tipagem, eram interpretadas
  5. Tipos ajudam a gerenciar complexidade, possuem um melhor desempenho pela ausência de necessidade de verificação runtime e lidam melhor com estruturas e algoritimos complexos.
  6. Linguagem de scripting possuem maior flexibilidade, menor complexidade e maior velocidade de desenvolvimento. São perfeitas para unir dois componentes. Porém, são um pouco mais lentas…
  7. faster machines, better scripting languages, the increasing importance of graphical user interfaces and component architectures, and the growth of the Internet, have greatly increased the applicability of scripting languages GUIs now account for half or more of the total effort in many programming projects. GUIs are fundamentally gluing applications: the goal is not to create new functionality, but to make connections between a collection of graphical controls and the internal functions of the application. I am not aware of any rapid-development environments for GUIs based on a system programming language.
  8. Para o usuário, javascript já ajudava muito ao evitar chamadas desnecessários ao servidor, numa época de conexões discadas