SlideShare uma empresa Scribd logo
1 de 66
IFSul 2010
Jaydson Gomes
Formado pela Faculdade Senac em 2008
Analista/Programador
4 anos na FGV
Empresa atual Ag2
Entusiasta em Javascript e em tecnologias livres
Apresentação
Co-fundador do TheWebMind
O que é
Javascript?
O que é Javascript?
• Linguagem de script
• Linguagem de programação
• Linguagem interpretada
Linguagem de programação:
“É um conjunto de regras sintáticas
e semânticas usadas para definir
um programa de computador.”
Wikipedia
O que é Javascript?
• Linguagem de script
• Linguagem de programação
• Linguagem interpretada
Linguagem de Script:
“É uma linguagem de programação
executada do interior de
um programa e/ou de outra
linguagem de programação.”
Wikipedia
O que é Javascript?
• Linguagem de script
• Linguagem de programação
• Linguagem interpretada
Linguagem Interpretada :
“É uma linguagem de programação,
onde o código fonte é executado
por um interpretador e em
seguida é executado pelo sistema
operacional ou processador.”
Wikipedia
“JavaScript is the most popular scripting language on the internet”
W3Schools
O que é Javascript?
JavaScript é uma linguagem de script orientada a objetos
JavaScript permite criar interfaces web ricas
JavaScript é baseado no padrão ECMAScript
JavaScript é uma linguagem dinâmica, fracamente tipada e
Prototype-based
História
História - O “culpado”
Brendan Eich
Inventor do Javascript
Diretor de Tecnologia da Mozilla
História - Origem
O Javascript foi criado por Brendan Eich em Dezembro de
1995 na Netscape.
Originalmente se chamava Mocha. Logo após renomeado para LiveScript,
e por fim em Dezembro do mesmo ano veio o nome Javascript.
O nome “Javascript” veio de um acordo entre a Netscape e a Sun.
A idéia era fazer o Javascript ser uma linguagem complementar ao JAVA.
A idéia inicial da linguagem era fazer algo que Web-Designers e
pessoas que não tinham muito conhecimento de programação
conseguissem tornar as suas páginas web mais dinâmicas.
Apesar de Javascript ser uma linguagem popular,
poucos sabem de sua capacidade.
Alguns fatores contribuem para incompreensão da linguagem:
A linguagem incompreendida
O nome JAVA como prefixo sugere algo relacionado ao JAVA, que é um
subconjunto ou uma versão mais simples e incapaz.
O sufixo Script sugere que Javascript não é uma linguagem real de programação.
A linguagem incompreendida
As primeiras versões de Javascript eram muito fracas. Não existiam
Exception Handling, Inner Functions e Herança.
A maioria dos livros sobre Javascript são ruins. Contendo erros, exemplos pobres
e más práticas. Recursos importantes são mal explicados, ou simplesmente
deixados de lado.
A especificação oficial da linguagem é extremamente pobre e difícil de entender.
Muitos amadores e não programadores utilizando Javascript.
A linguagem incompreendida
Atualmente Javascript é uma linguagem de programação
completa.
O que pode
ser feito?
O que pode ser feito
Animações 2D & 3D
Quase tudo!
Manipular HTML dinamicamente
Adicionar interatividade a sites estáticos
Jogos
Aplicações RIA
Validações de formulários
Desenhos
O que não
pode ser feito?
O que não pode ser feito
Javascript não pode acessar banco de dados
Javascript não pode ler e gravar arquivos no lado cliente, exceto cookies
Javascript não pode fechar uma janela que ele mesmo não tenha aberto
Javascript não pode gravar arquivos no servidor sem ajuda de um
script server-side
Javascript não pode acessar páginas que não estejam no mesmo domínio
Javascript não protege o código fonte e nem imagens
Javascript não tem acesso ao Hardware
*
*
Aplicações
Estudo de caso
Aplicações
Ajax & Json
Ajax
Asynchronous Javascript And XML
Premissa: Requisições são feitas do cliente ao servidor mesmo
após a página ter sido completamente carregada.
Ajax não é somente um novo modelo, é também uma iniciativa na construção de
aplicações Web mais dinâmicas e criativas.
Ajax também não é uma tecnologia, são várias tecnologias conhecidas
trabalhando juntas, oferecendo novas funcionalidades.
Ajax permite ao desenvolvedor criar interações adicionais ao
modelo tradicional.
JSON
JSON é uma alternativa para XML, ele também exerce o
mesmo papel que o XML como formato para transporte
de dados.
É uma formatação leve de troca de dados.
Para seres humanos, é fácil de ler e escrever.
Para máquinas, é fácil de interpretar e gerar.
RIA
RIA
RIA
RIA é mais um passo no processo evolutivo da internet
Rich Internet Applications
É o uso da Internet e das tecnologias disponíveis para
criar uma experiência mais intuitiva e eficiente
para o usuário
“RIA é a combinação da interatividade e funcionalidades
do Desktop com a abrangência e flexibilidade da Web
Levando mais a sério?
Javascript Profissional
“programador”
Javascript ontem
Programador
Javascript hoje
Programação orientada a objetos
Javascript Profissional
Javascript Profissional
Construtor
Construtor
Método
Método
Testes
Javascript Profissional
Javascript Profissional
Debugador
default IE
Javascript Profissional
BreakPoints
Variáveis e objetos
Código reutilizável
Javascript Profissional
Javascript Profissional
Namespaces
Javascript Profissional
Unobtrusive JavaScript
Javascript
HTML
Javascript Profissional
Tem que ter o DOM (Document Object Model)
É uma API para representação de documentos XML e HTML
Nos provê uma estrutura que possibilita a modificação destes documentos
Frameworks
Frameworks Javascript
Frameworks Javascript
jQuery
Uma biblioteca Javascript open-source
que simplifica a interação entre o HTML
e o Javascript
• Inicio em Agosto de 2005 (http://ejohn.org/blog/selectors-in-javascript)
• Primeiro Release em Janeiro de 2006
• Alpha Release da versão 1.0 em Junho de 2006
• Anuncio do jQuery UI em Julho de 2007
• 3° aniversário e versão 1.3 lançada em janeiro de 2009
• Novembro de 2010
jQuery
Histórico
Porque usar jQuery
jQuery
Porque usar jQuery
jQuery
The jQuery Team at the 2009 jQuery Conference
Profissionais qualificados
envolvidos no core da
biblioteca
Porque usar jQuery
jQuery
Ariel Flesler
Game Developer
John Resig
JavaScript Tool Developer
at Mozilla Corporation
Brandon Aaron
Senior Technologist
at Nokia
Jorn Zaefferer
Consultant at maxence
integration technologies
Porque usar jQuery
jQuery
42%
Uso do jQuery no mundo
jQuery
Plugins
São bibliotecas/extensões para o jQuery que fornecem novas funcionalidades a
e ou ferramentas para os desenvolvedores.
• Thickbox
• Form plugin (with AJAX)
• Validation
• Treeview
• Tabs
• Tablesorter
Estudos de caso
O poder do Javascript
O poder do Javascript
Dragon
http://raphaeljs.com/dragon.html
StarField
http://www.chiptune.com/starfield/starfield.html
Solar System
http://www.willjessup.com/sandbox/jquery/solar_system/rotator.html
Springs
http://www.mrspeaker.net/dev/canvas/springs.html
Mario Kart
http://www.nihilogic.dk/labs/mariokart/
IDE
http://www.coderun.com/ide/
Face Detection in JavaScript via HTML5 Canvas
http://badassjs.com/post/1461943420/face-detection-in-javascript-via-html5-canvas
Agent 8ball
http://agent8ball.com/
Tag Cloud Canvas
http://www.goat1000.com/tagcanvas.php
Asciimation
http://www.asciimation.co.nz
Hypertree
http://thejit.org/static/v20/Jit/Examples/Hypertree/example1.html
O poder do Javascript
Berts Breakdown
http://www.paulbrunt.co.uk/bert/
Chrome Experiments
http://www.chromeexperiments.com/
TheWebMind
http://thewebmind.org
RichBlocks
http://jaydson.org/code/richblocks/
Javascript levado a sério
jayalemao@gmail.com
@jaydson
Obrigado!
jaydson.org
Referências - Links
http://javascript.crockford.com/
https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide
http://www.slideshare.net/simon/a-reintroduction-to-javascript
http://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o
http://pt.wikipedia.org/wiki/Linguagem_de_script
http://pt.wikipedia.org/wiki/Linguagem_interpretada
https://developer.mozilla.org/presentations/xtech2006/javascript/
http://en.wikipedia.org/wiki/JavaScript
http://inventors.about.com/od/jstartinventions/a/JavaScript.htm
Zdnet - Entrevista com Brendan Eich, CTO da Mozilla
http://news.zdnet.com/2422-12794_22-335005.html
Imagem do Rhino Warrior
http://notallowed2laff.blogspot.com/2007/12/power-to-people-neccessity-of-second.html
Tutorial Javascript W3Schools
http://www.w3schools.com/JS/js_intro.asp
ECMAScript
http://en.wikipedia.org/wiki/ECMAScript
ECMA International
http://en.wikipedia.org/wiki/Ecma_International
Referências - Links
Linguagem baseada em prototype
http://en.wikipedia.org/wiki/Prototype-based_programming
Linguagem dinâmica
http://en.wikipedia.org/wiki/Dynamic_language
Entrevista InfoWorld com Brendan Eich
http://www.infoworld.com/d/developer-world/javascript-creator-ponders-past-future-704
Especificação Oficial
http://www.ecma-international.org/publications/standards/Ecma-262.htm
O que não podemos fazer com Javascript
http://javascript.about.com/od/reference/a/cannot.htm
RichBlocks - Um Framework para Implantar Interfaces RIA em Sistemas Web
http://jaydson.org/docs/richblocks.pdf
Referências - Links
Private members in Javascript
http://www.crockford.com/javascript/private.html
Classical Inheritance in Javascript
http://javascript.crockford.com/inheritance.html
RichBlocks - Framework RIA em Javascript
http://code.google.com/p/richblocks/
DOM
https://developer.mozilla.org/en/DOM
Referências - Links
http://www.slideshare.net/simon/a-reintroduction-to-javascript
Douglas Crockford The JavaScript Programming Language 1 of 4
http://video.yahoo.com/watch/111593/1710507
Douglas Crockford The JavaScript Programming Language 2 of 4
http://video.yahoo.com/watch/6085575/15813360
Douglas Crockford The JavaScript Programming Language 3 of 4
http://video.yahoo.com/watch/6090130/15825675
Douglas Crockford The JavaScript Programming Language 4 of 4
http://video.yahoo.com/watch/6090389/15826154
Referências - Links
Javascript - The definitive guide
http://www.amazon.com/exec/obidos/ASIN/0596101996/wrrrldwideweb
Livros
Pro JavaScript Techniques
http://jspro.org/

Mais conteúdo relacionado

Mais procurados

Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitFlávio Lisboa
 
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuaisJavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuaisWilliam Oliveira
 
PHP e o Desenvolvimento Mobile Web - PHPhederal
PHP e o Desenvolvimento Mobile Web - PHPhederalPHP e o Desenvolvimento Mobile Web - PHPhederal
PHP e o Desenvolvimento Mobile Web - PHPhederalBruno Fernandes "PorKaria"
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Rest web services com Java
Rest web services com JavaRest web services com Java
Rest web services com JavajesuinoPower
 
Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visagejesuinoPower
 
JavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavaJavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavajesuinoPower
 
Projeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SProjeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SThoughtworks
 
Você não precisa de uma sopa de letrinhas para criar web apps
Você não precisa de uma sopa de letrinhas para criar web appsVocê não precisa de uma sopa de letrinhas para criar web apps
Você não precisa de uma sopa de letrinhas para criar web appsWilliam Oliveira
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão GeralEder Nogueira
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDomingos Teruel
 
Criando aplicações java fx em minutos
Criando aplicações java fx em minutosCriando aplicações java fx em minutos
Criando aplicações java fx em minutosBruno Oliveira
 
Nadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryNadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryReinaldo Junior
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXjesuinoPower
 

Mais procurados (20)

Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo Toolkit
 
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuaisJavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
 
Desenvolvimento Mobile Web usando PHP
Desenvolvimento Mobile Web usando PHPDesenvolvimento Mobile Web usando PHP
Desenvolvimento Mobile Web usando PHP
 
PHP e o Desenvolvimento Mobile Web - PHPhederal
PHP e o Desenvolvimento Mobile Web - PHPhederalPHP e o Desenvolvimento Mobile Web - PHPhederal
PHP e o Desenvolvimento Mobile Web - PHPhederal
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
Rest web services com Java
Rest web services com JavaRest web services com Java
Rest web services com Java
 
Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visage
 
Groovy stack
Groovy stackGroovy stack
Groovy stack
 
JavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavaJavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma Java
 
Projeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SProjeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.S
 
Você não precisa de uma sopa de letrinhas para criar web apps
Você não precisa de uma sopa de letrinhas para criar web appsVocê não precisa de uma sopa de letrinhas para criar web apps
Você não precisa de uma sopa de letrinhas para criar web apps
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão Geral
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Ria e Java FX
Ria e Java FXRia e Java FX
Ria e Java FX
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend Framework
 
Criando aplicações java fx em minutos
Criando aplicações java fx em minutosCriando aplicações java fx em minutos
Criando aplicações java fx em minutos
 
Nadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryNadando em Dinheiro com jQuery
Nadando em Dinheiro com jQuery
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFX
 

Semelhante a Javascript: Uma linguagem poderosa

Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software LivreRuan Carvalho
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livreRuan Carvalho
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Aécio Costa
 
Django: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webDjango: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webMiguel Galves
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
RIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à InovaçãoRIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à InovaçãoLeonardo Braga
 
Como fazer mais em aplicações RIA escrevendo menos
Como fazer mais em aplicações RIA escrevendo menosComo fazer mais em aplicações RIA escrevendo menos
Como fazer mais em aplicações RIA escrevendo menosJaydson Gomes
 
Como Fazer (+) Em AplicaçõEs Ria Escrevendo ( )
Como Fazer (+) Em AplicaçõEs Ria Escrevendo ( )Como Fazer (+) Em AplicaçõEs Ria Escrevendo ( )
Como Fazer (+) Em AplicaçõEs Ria Escrevendo ( )Felipe Nascimento
 
Palestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao JavafxPalestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao Javafxalfredofurtado
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3Loiane Groner
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 
Iniciação JSP!
Iniciação JSP!Iniciação JSP!
Iniciação JSP!JErickPPTs
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo JavaTI Infnet
 

Semelhante a Javascript: Uma linguagem poderosa (20)

Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software Livre
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!
 
Django: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webDjango: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento web
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
RIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à InovaçãoRIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à Inovação
 
Como fazer mais em aplicações RIA escrevendo menos
Como fazer mais em aplicações RIA escrevendo menosComo fazer mais em aplicações RIA escrevendo menos
Como fazer mais em aplicações RIA escrevendo menos
 
Como Fazer (+) Em AplicaçõEs Ria Escrevendo ( )
Como Fazer (+) Em AplicaçõEs Ria Escrevendo ( )Como Fazer (+) Em AplicaçõEs Ria Escrevendo ( )
Como Fazer (+) Em AplicaçõEs Ria Escrevendo ( )
 
Palestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao JavafxPalestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao Javafx
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
 
Js everywhere
Js everywhereJs everywhere
Js everywhere
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
(A18) LabMM3 - Ajax
(A18) LabMM3 - Ajax(A18) LabMM3 - Ajax
(A18) LabMM3 - Ajax
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
Iniciação JSP!
Iniciação JSP!Iniciação JSP!
Iniciação JSP!
 
Software gratuito
Software gratuitoSoftware gratuito
Software gratuito
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 

Mais de saspi2

O Mercado de Desenvolvimento de Jogos
O Mercado de Desenvolvimento de JogosO Mercado de Desenvolvimento de Jogos
O Mercado de Desenvolvimento de Jogossaspi2
 
Utilizando métodos ágeis na vida real
Utilizando métodos ágeis na vida real Utilizando métodos ágeis na vida real
Utilizando métodos ágeis na vida real saspi2
 
Técnicas de Mineração de Dados Aplicadas a Sistemas de Recomendação
Técnicas de Mineração de Dados Aplicadas a Sistemas de RecomendaçãoTécnicas de Mineração de Dados Aplicadas a Sistemas de Recomendação
Técnicas de Mineração de Dados Aplicadas a Sistemas de Recomendaçãosaspi2
 
Desenvolvendo competências, conquistando novos mercados
Desenvolvendo competências, conquistando novos mercadosDesenvolvendo competências, conquistando novos mercados
Desenvolvendo competências, conquistando novos mercadossaspi2
 
SEO - Otimização de site para motores de busca
SEO - Otimização de site para motores de buscaSEO - Otimização de site para motores de busca
SEO - Otimização de site para motores de buscasaspi2
 
Arquitetura da Informação e Usabilidade
Arquitetura da Informação e UsabilidadeArquitetura da Informação e Usabilidade
Arquitetura da Informação e Usabilidadesaspi2
 

Mais de saspi2 (6)

O Mercado de Desenvolvimento de Jogos
O Mercado de Desenvolvimento de JogosO Mercado de Desenvolvimento de Jogos
O Mercado de Desenvolvimento de Jogos
 
Utilizando métodos ágeis na vida real
Utilizando métodos ágeis na vida real Utilizando métodos ágeis na vida real
Utilizando métodos ágeis na vida real
 
Técnicas de Mineração de Dados Aplicadas a Sistemas de Recomendação
Técnicas de Mineração de Dados Aplicadas a Sistemas de RecomendaçãoTécnicas de Mineração de Dados Aplicadas a Sistemas de Recomendação
Técnicas de Mineração de Dados Aplicadas a Sistemas de Recomendação
 
Desenvolvendo competências, conquistando novos mercados
Desenvolvendo competências, conquistando novos mercadosDesenvolvendo competências, conquistando novos mercados
Desenvolvendo competências, conquistando novos mercados
 
SEO - Otimização de site para motores de busca
SEO - Otimização de site para motores de buscaSEO - Otimização de site para motores de busca
SEO - Otimização de site para motores de busca
 
Arquitetura da Informação e Usabilidade
Arquitetura da Informação e UsabilidadeArquitetura da Informação e Usabilidade
Arquitetura da Informação e Usabilidade
 

Javascript: Uma linguagem poderosa

  • 2. Jaydson Gomes Formado pela Faculdade Senac em 2008 Analista/Programador 4 anos na FGV Empresa atual Ag2 Entusiasta em Javascript e em tecnologias livres Apresentação Co-fundador do TheWebMind
  • 4. O que é Javascript? • Linguagem de script • Linguagem de programação • Linguagem interpretada Linguagem de programação: “É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador.” Wikipedia
  • 5. O que é Javascript? • Linguagem de script • Linguagem de programação • Linguagem interpretada Linguagem de Script: “É uma linguagem de programação executada do interior de um programa e/ou de outra linguagem de programação.” Wikipedia
  • 6. O que é Javascript? • Linguagem de script • Linguagem de programação • Linguagem interpretada Linguagem Interpretada : “É uma linguagem de programação, onde o código fonte é executado por um interpretador e em seguida é executado pelo sistema operacional ou processador.” Wikipedia “JavaScript is the most popular scripting language on the internet” W3Schools
  • 7. O que é Javascript? JavaScript é uma linguagem de script orientada a objetos JavaScript permite criar interfaces web ricas JavaScript é baseado no padrão ECMAScript JavaScript é uma linguagem dinâmica, fracamente tipada e Prototype-based
  • 9. História - O “culpado” Brendan Eich Inventor do Javascript Diretor de Tecnologia da Mozilla
  • 10. História - Origem O Javascript foi criado por Brendan Eich em Dezembro de 1995 na Netscape. Originalmente se chamava Mocha. Logo após renomeado para LiveScript, e por fim em Dezembro do mesmo ano veio o nome Javascript. O nome “Javascript” veio de um acordo entre a Netscape e a Sun. A idéia era fazer o Javascript ser uma linguagem complementar ao JAVA. A idéia inicial da linguagem era fazer algo que Web-Designers e pessoas que não tinham muito conhecimento de programação conseguissem tornar as suas páginas web mais dinâmicas.
  • 11. Apesar de Javascript ser uma linguagem popular, poucos sabem de sua capacidade. Alguns fatores contribuem para incompreensão da linguagem: A linguagem incompreendida
  • 12. O nome JAVA como prefixo sugere algo relacionado ao JAVA, que é um subconjunto ou uma versão mais simples e incapaz.
  • 13. O sufixo Script sugere que Javascript não é uma linguagem real de programação.
  • 14. A linguagem incompreendida As primeiras versões de Javascript eram muito fracas. Não existiam Exception Handling, Inner Functions e Herança.
  • 15. A maioria dos livros sobre Javascript são ruins. Contendo erros, exemplos pobres e más práticas. Recursos importantes são mal explicados, ou simplesmente deixados de lado.
  • 16. A especificação oficial da linguagem é extremamente pobre e difícil de entender.
  • 17. Muitos amadores e não programadores utilizando Javascript.
  • 18. A linguagem incompreendida Atualmente Javascript é uma linguagem de programação completa.
  • 19. O que pode ser feito?
  • 20. O que pode ser feito Animações 2D & 3D Quase tudo! Manipular HTML dinamicamente Adicionar interatividade a sites estáticos Jogos Aplicações RIA Validações de formulários Desenhos
  • 21. O que não pode ser feito?
  • 22. O que não pode ser feito Javascript não pode acessar banco de dados Javascript não pode ler e gravar arquivos no lado cliente, exceto cookies Javascript não pode fechar uma janela que ele mesmo não tenha aberto Javascript não pode gravar arquivos no servidor sem ajuda de um script server-side Javascript não pode acessar páginas que não estejam no mesmo domínio Javascript não protege o código fonte e nem imagens Javascript não tem acesso ao Hardware * *
  • 26. Ajax Asynchronous Javascript And XML Premissa: Requisições são feitas do cliente ao servidor mesmo após a página ter sido completamente carregada. Ajax não é somente um novo modelo, é também uma iniciativa na construção de aplicações Web mais dinâmicas e criativas. Ajax também não é uma tecnologia, são várias tecnologias conhecidas trabalhando juntas, oferecendo novas funcionalidades. Ajax permite ao desenvolvedor criar interações adicionais ao modelo tradicional.
  • 27. JSON JSON é uma alternativa para XML, ele também exerce o mesmo papel que o XML como formato para transporte de dados. É uma formatação leve de troca de dados. Para seres humanos, é fácil de ler e escrever. Para máquinas, é fácil de interpretar e gerar.
  • 28. RIA
  • 29. RIA
  • 30. RIA RIA é mais um passo no processo evolutivo da internet Rich Internet Applications É o uso da Internet e das tecnologias disponíveis para criar uma experiência mais intuitiva e eficiente para o usuário “RIA é a combinação da interatividade e funcionalidades do Desktop com a abrangência e flexibilidade da Web
  • 31. Levando mais a sério?
  • 33. Programação orientada a objetos Javascript Profissional
  • 44. Javascript Profissional Tem que ter o DOM (Document Object Model) É uma API para representação de documentos XML e HTML Nos provê uma estrutura que possibilita a modificação destes documentos
  • 45.
  • 49. jQuery Uma biblioteca Javascript open-source que simplifica a interação entre o HTML e o Javascript
  • 50. • Inicio em Agosto de 2005 (http://ejohn.org/blog/selectors-in-javascript) • Primeiro Release em Janeiro de 2006 • Alpha Release da versão 1.0 em Junho de 2006 • Anuncio do jQuery UI em Julho de 2007 • 3° aniversário e versão 1.3 lançada em janeiro de 2009 • Novembro de 2010 jQuery Histórico
  • 52. Porque usar jQuery jQuery The jQuery Team at the 2009 jQuery Conference Profissionais qualificados envolvidos no core da biblioteca
  • 53. Porque usar jQuery jQuery Ariel Flesler Game Developer John Resig JavaScript Tool Developer at Mozilla Corporation Brandon Aaron Senior Technologist at Nokia Jorn Zaefferer Consultant at maxence integration technologies
  • 54. Porque usar jQuery jQuery 42% Uso do jQuery no mundo
  • 55. jQuery Plugins São bibliotecas/extensões para o jQuery que fornecem novas funcionalidades a e ou ferramentas para os desenvolvedores. • Thickbox • Form plugin (with AJAX) • Validation • Treeview • Tabs • Tablesorter
  • 56. Estudos de caso O poder do Javascript
  • 57. O poder do Javascript Dragon http://raphaeljs.com/dragon.html StarField http://www.chiptune.com/starfield/starfield.html Solar System http://www.willjessup.com/sandbox/jquery/solar_system/rotator.html Springs http://www.mrspeaker.net/dev/canvas/springs.html Mario Kart http://www.nihilogic.dk/labs/mariokart/ IDE http://www.coderun.com/ide/
  • 58. Face Detection in JavaScript via HTML5 Canvas http://badassjs.com/post/1461943420/face-detection-in-javascript-via-html5-canvas Agent 8ball http://agent8ball.com/ Tag Cloud Canvas http://www.goat1000.com/tagcanvas.php Asciimation http://www.asciimation.co.nz Hypertree http://thejit.org/static/v20/Jit/Examples/Hypertree/example1.html
  • 59. O poder do Javascript Berts Breakdown http://www.paulbrunt.co.uk/bert/ Chrome Experiments http://www.chromeexperiments.com/ TheWebMind http://thewebmind.org RichBlocks http://jaydson.org/code/richblocks/
  • 60. Javascript levado a sério jayalemao@gmail.com @jaydson Obrigado! jaydson.org
  • 62. Zdnet - Entrevista com Brendan Eich, CTO da Mozilla http://news.zdnet.com/2422-12794_22-335005.html Imagem do Rhino Warrior http://notallowed2laff.blogspot.com/2007/12/power-to-people-neccessity-of-second.html Tutorial Javascript W3Schools http://www.w3schools.com/JS/js_intro.asp ECMAScript http://en.wikipedia.org/wiki/ECMAScript ECMA International http://en.wikipedia.org/wiki/Ecma_International Referências - Links
  • 63. Linguagem baseada em prototype http://en.wikipedia.org/wiki/Prototype-based_programming Linguagem dinâmica http://en.wikipedia.org/wiki/Dynamic_language Entrevista InfoWorld com Brendan Eich http://www.infoworld.com/d/developer-world/javascript-creator-ponders-past-future-704 Especificação Oficial http://www.ecma-international.org/publications/standards/Ecma-262.htm O que não podemos fazer com Javascript http://javascript.about.com/od/reference/a/cannot.htm RichBlocks - Um Framework para Implantar Interfaces RIA em Sistemas Web http://jaydson.org/docs/richblocks.pdf Referências - Links
  • 64. Private members in Javascript http://www.crockford.com/javascript/private.html Classical Inheritance in Javascript http://javascript.crockford.com/inheritance.html RichBlocks - Framework RIA em Javascript http://code.google.com/p/richblocks/ DOM https://developer.mozilla.org/en/DOM Referências - Links http://www.slideshare.net/simon/a-reintroduction-to-javascript
  • 65. Douglas Crockford The JavaScript Programming Language 1 of 4 http://video.yahoo.com/watch/111593/1710507 Douglas Crockford The JavaScript Programming Language 2 of 4 http://video.yahoo.com/watch/6085575/15813360 Douglas Crockford The JavaScript Programming Language 3 of 4 http://video.yahoo.com/watch/6090130/15825675 Douglas Crockford The JavaScript Programming Language 4 of 4 http://video.yahoo.com/watch/6090389/15826154 Referências - Links
  • 66. Javascript - The definitive guide http://www.amazon.com/exec/obidos/ASIN/0596101996/wrrrldwideweb Livros Pro JavaScript Techniques http://jspro.org/