SlideShare uma empresa Scribd logo
1 de 54
 
Jaydson Gomes Formado pela Faculdade Senac em 2008 Analista e Desenvolvedor de Sistemas 4 anos na FGV Empresa atual Ag2 Entusiasta em Javascript e em tecnologias livres Apresentação
O que é Javascript? ,[object Object],[object Object],[object Object],Linguagem de programação: “ É um conjunto de regras sintáticas  e semânticas usadas para definir  um programa de computador.” Wikipedia
O que é Javascript? ,[object Object],[object Object],[object Object],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? ,[object Object],[object Object],[object Object],“ JavaScript is the most popular scripting language on the internet” W3Schools   Linguagem de I nterpretada  : “ É uma linguagem de programação, onde o código fonte é executado por um interpretador e em seguida é executado pelo sistema  operacional ou processador.” Wikipedia
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 - O “culpado” Brendan Eich Inventor do Javascript
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.
A linguagem incompreendida Apesar de Javascript ser uma linguagem popular, poucos sabem de sua capacidade. Alguns fatores contribuem para incompreensão da linguagem: 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.  As primeiras versões de Javascript eram muito fracas. Não existiam Exception Handling, Inner Functions e Herança. Atualmente Javascript é uma linguagem de programação completa.
A linguagem incompreendida 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.
O que pode ser feito Quase tudo! Animações 2D & 3D 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 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
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 Rich Internet Applications RIA é mais um passo no processo evolutivo da internet  É 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
Javascript Profissional “ p rogramador”  Javascript ontem P rogramador   Javascript hoje
Javascript Profissional Programação orientada a objetos
Javascript Profissional Construtor Construtor Método
Método
Javascript Profissional Testes
Javascript Profissional Debugador  default IE
Javascript Profissional
BreakPoints
Variáveis e objetos
Javascript Profissional Código reutilizável
Javascript Profissional Namespaces
Javascript Profissional Javascript HTML Unobtrusive JavaScript
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 Javascript
Frameworks Javascript
jQuery Uma biblioteca Javascript open-source que simplifica a interação entre o HTML e o Javascript
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],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 Selectors
jQuery Selectors
jQuery Selectors
jQuery Ajax
jQuery São bibliotecas/extensões para o jQuery que fornecem novas funcionalidades a e ou ferramentas para os desenvolvedores.  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Plugins
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/
O poder do Javascript Berts Breakdown http://www.paulbrunt.co.uk/bert/ Chrome Experiments http://www.chromeexperiments.com/   TheWebMind http://thewebmind.org/2.0/ RichBlocks http://jaydson.org/code/richblocks/
Javascript levado a sério [email_address] @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: Introdução e Operadores (aula 1)
JavaScript: Introdução e Operadores (aula 1)JavaScript: Introdução e Operadores (aula 1)
JavaScript: Introdução e Operadores (aula 1)Gustavo Zimmermann
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptRodrigo Branas
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDaniel Paz
 
Criando websites a jato com Django
Criando websites a jato com DjangoCriando websites a jato com Django
Criando websites a jato com DjangoMarcos Petry
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSRodrigo Branas
 
Construindo Sistemas Com Django
Construindo Sistemas Com DjangoConstruindo Sistemas Com Django
Construindo Sistemas Com DjangoMarinho Brandão
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPelliando dias
 
08 Java Script Introdução - Teoria
08 Java Script   Introdução  - Teoria08 Java Script   Introdução  - Teoria
08 Java Script Introdução - TeoriaCentro Paula Souza
 
Nadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryNadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryReinaldo Junior
 

Mais procurados (20)

Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo Toolkit
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Aula 07 acessibilidade
Aula 07  acessibilidadeAula 07  acessibilidade
Aula 07 acessibilidade
 
JavaScript: Introdução e Operadores (aula 1)
JavaScript: Introdução e Operadores (aula 1)JavaScript: Introdução e Operadores (aula 1)
JavaScript: Introdução e Operadores (aula 1)
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi Builder
 
Javascript OO
Javascript OOJavascript OO
Javascript OO
 
Introdução a HTML, CSS, JS, Ajax
Introdução a HTML, CSS, JS, AjaxIntrodução a HTML, CSS, JS, Ajax
Introdução a HTML, CSS, JS, Ajax
 
jQuery
jQueryjQuery
jQuery
 
Criando websites a jato com Django
Criando websites a jato com DjangoCriando websites a jato com Django
Criando websites a jato com Django
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJS
 
Construindo Sistemas Com Django
Construindo Sistemas Com DjangoConstruindo Sistemas Com Django
Construindo Sistemas Com Django
 
HTML/CSS Patterns
HTML/CSS PatternsHTML/CSS Patterns
HTML/CSS Patterns
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 
08 Java Script Introdução - Teoria
08 Java Script   Introdução  - Teoria08 Java Script   Introdução  - Teoria
08 Java Script Introdução - Teoria
 
Java script1
Java script1Java script1
Java script1
 
Nadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryNadando em Dinheiro com jQuery
Nadando em Dinheiro com jQuery
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Grails
GrailsGrails
Grails
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
 

Destaque

Javascript, Done Right
Javascript, Done RightJavascript, Done Right
Javascript, Done RightAndré Luís
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
JS limpo e testável com Segregated DOM
JS limpo e testável com Segregated DOMJS limpo e testável com Segregated DOM
JS limpo e testável com Segregated DOMtdc-globalcode
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoronaldoferraz
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que pareceImpacta Eventos
 
E-commerce seguro com PagSeguro
E-commerce seguro com PagSeguroE-commerce seguro com PagSeguro
E-commerce seguro com PagSeguroElcio Ferreira
 
Urls amigáveis - Como criar uma url perfeita
Urls amigáveis - Como criar uma url perfeitaUrls amigáveis - Como criar uma url perfeita
Urls amigáveis - Como criar uma url perfeitaRodrigo Nogueira
 
NoSQL na BIREME: 20 anos de experiência
NoSQL na BIREME: 20 anos de experiênciaNoSQL na BIREME: 20 anos de experiência
NoSQL na BIREME: 20 anos de experiênciaLuciano Ramalho
 
JavaScript de qualidade: hoje, amanhã e sempre!
JavaScript de qualidade: hoje, amanhã e sempre!JavaScript de qualidade: hoje, amanhã e sempre!
JavaScript de qualidade: hoje, amanhã e sempre!Thiago de Oliveira Pires
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScriptClaudio Gamboa
 
JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)Luciano Ramalho
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsVinicius Reis
 
Modelagem e Controle de Robôs Móveis e Sistemas Multirrobôs
Modelagem e Controle de Robôs Móveis e Sistemas MultirrobôsModelagem e Controle de Robôs Móveis e Sistemas Multirrobôs
Modelagem e Controle de Robôs Móveis e Sistemas MultirrobôsFelipe Martins
 
Mercado de automação no ES
Mercado de automação no ESMercado de automação no ES
Mercado de automação no ESFelipe Martins
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 

Destaque (20)

Javascript para adultos
Javascript para adultosJavascript para adultos
Javascript para adultos
 
Javascript, Done Right
Javascript, Done RightJavascript, Done Right
Javascript, Done Right
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
JS limpo e testável com Segregated DOM
JS limpo e testável com Segregated DOMJS limpo e testável com Segregated DOM
JS limpo e testável com Segregated DOM
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programação
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
E-commerce seguro com PagSeguro
E-commerce seguro com PagSeguroE-commerce seguro com PagSeguro
E-commerce seguro com PagSeguro
 
Urls amigáveis - Como criar uma url perfeita
Urls amigáveis - Como criar uma url perfeitaUrls amigáveis - Como criar uma url perfeita
Urls amigáveis - Como criar uma url perfeita
 
NoSQL na BIREME: 20 anos de experiência
NoSQL na BIREME: 20 anos de experiênciaNoSQL na BIREME: 20 anos de experiência
NoSQL na BIREME: 20 anos de experiência
 
JavaScript de qualidade: hoje, amanhã e sempre!
JavaScript de qualidade: hoje, amanhã e sempre!JavaScript de qualidade: hoje, amanhã e sempre!
JavaScript de qualidade: hoje, amanhã e sempre!
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
 
JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
Java script
Java scriptJava script
Java script
 
Modelagem e Controle de Robôs Móveis e Sistemas Multirrobôs
Modelagem e Controle de Robôs Móveis e Sistemas MultirrobôsModelagem e Controle de Robôs Móveis e Sistemas Multirrobôs
Modelagem e Controle de Robôs Móveis e Sistemas Multirrobôs
 
Mercado de automação no ES
Mercado de automação no ESMercado de automação no ES
Mercado de automação no ES
 
Java script aula 07 - j-query
Java script   aula 07 - j-queryJava script   aula 07 - j-query
Java script aula 07 - j-query
 
Contas usuários
Contas usuáriosContas usuários
Contas usuários
 
Aprender e ensinar com tecnologias móveis: um desafio para professores e alunos
Aprender e ensinar com tecnologias móveis: um desafio para professores e alunosAprender e ensinar com tecnologias móveis: um desafio para professores e alunos
Aprender e ensinar com tecnologias móveis: um desafio para professores e alunos
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 

Semelhante a Javascript levado a serio

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
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
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
 
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
 
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
 
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
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
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
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 

Semelhante a Javascript levado a serio (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.
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
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 ( )
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
 
Java Script
Java ScriptJava Script
Java Script
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
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
 
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
 
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
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
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
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
Programação web e o front-end
Programação web e o front-endProgramação web e o front-end
Programação web e o front-end
 
HTML5
HTML5HTML5
HTML5
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
O que é Web 2.0
O que é Web 2.0O que é Web 2.0
O que é Web 2.0
 

Javascript levado a serio

  • 1.  
  • 2. Jaydson Gomes Formado pela Faculdade Senac em 2008 Analista e Desenvolvedor de Sistemas 4 anos na FGV Empresa atual Ag2 Entusiasta em Javascript e em tecnologias livres Apresentação
  • 3.
  • 4.
  • 5.
  • 6. 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
  • 7. História - O “culpado” Brendan Eich Inventor do Javascript
  • 8. 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.
  • 9. A linguagem incompreendida Apesar de Javascript ser uma linguagem popular, poucos sabem de sua capacidade. Alguns fatores contribuem para incompreensão da linguagem: 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. As primeiras versões de Javascript eram muito fracas. Não existiam Exception Handling, Inner Functions e Herança. Atualmente Javascript é uma linguagem de programação completa.
  • 10. A linguagem incompreendida 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.
  • 11. O que pode ser feito Quase tudo! Animações 2D & 3D Manipular HTML dinamicamente Adicionar interatividade a sites estáticos Jogos Aplicações RIA Validações de formulários Desenhos
  • 12. 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
  • 14. 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.
  • 15. 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.
  • 16. RIA
  • 17. RIA Rich Internet Applications RIA é mais um passo no processo evolutivo da internet É 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
  • 18. Javascript Profissional “ p rogramador” Javascript ontem P rogramador Javascript hoje
  • 29. Javascript Profissional Javascript HTML Unobtrusive JavaScript
  • 30. 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
  • 31.  
  • 34. jQuery Uma biblioteca Javascript open-source que simplifica a interação entre o HTML e o Javascript
  • 35.
  • 37. Porque usar jQuery jQuery The jQuery Team at the 2009 jQuery Conference Profissionais qualificados envolvidos no core da biblioteca
  • 38. 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
  • 39. Porque usar jQuery jQuery 42% Uso do jQuery no mundo
  • 44.
  • 45. Estudos de caso O poder do Javascript
  • 46. 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/
  • 47. O poder do Javascript Berts Breakdown http://www.paulbrunt.co.uk/bert/ Chrome Experiments http://www.chromeexperiments.com/ TheWebMind http://thewebmind.org/2.0/ RichBlocks http://jaydson.org/code/richblocks/
  • 48. Javascript levado a sério [email_address] @jaydson Obrigado! jaydson.org
  • 49. 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
  • 50. 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
  • 51. 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
  • 52. 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
  • 53. 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
  • 54. Javascript - The definitive guide http://www.amazon.com/exec/obidos/ASIN/0596101996/wrrrldwideweb Livros Pro JavaScript Techniques http://jspro.org/