Javascript
nos dias de hoje
   Caio Ribeiro Pereira
Caio Ribeiro Pereira
Desenvolvedor web (JS/Node.js) na Neoassist
    Bacharel em Sistemas de Informação na
                                   Unisantos
              Entusiasta Javascript / Node.js
Contato
 caio.ribeiro.pereira@gmail.com
        @crp_underground
 github.com/caio-ribeiro-pereira
               Blogs
       www.udgwebdev.com
         www.udglinux.com
www.crpunderground.wordpress.com
HTML, CSS e
   Javascript
estão em todas
as plataformas
Eles formam a família
        da web
HTML: Pai engenheiro
CSS: Mãe decoradora
Javascript: Filho nerd
Sobre o Javascript
• Criado por Brendan Eich
• Nasceu em 1995
• Linguagem script para o
  Netscape
• Mocha -> LiveScript ->
  Javascript
• Douglas Crockford popularizou
  JSON em 2002
Características do Javascript
•   Orientado à eventos
•   Baseado em objetos (Prototype)
•   Assíncronismo via callbacks
•   Síntaxe parecida: Java, C# e C++
•   Padronizada pela ECMA
•   Versão atual: ECMAScript 5.1
Linguagens que compilam JS
• Síntaxe inspirada pelo Ruby e Python
• Recusos:
  – Syntax Sugar
  – Classe e herança
  – Conditional Assignment:
    • if true then “ok” else “no”
  – Loop comprehension:
    • size = (num for num in [10..1])
• http://coffeescript.org
• Síntaxe inspirada pelo Java e .NET
• Recursos:
  – Classe, Herança e Interface
  – Strong Typing
  – Generics, Enums e Iterators
  – Packages
• http://www.haxejs.org
• Síntaxe inspirada pelo Java e .NET
• Recursos:
  – Classe, Herança e Interface
  – Strong typing
  – Overriding
  – Modules
• http://www.typescriptlang.org
Javascript server-side
•   Orientado à eventos de I/O
•   Thread não-bloqueante
•   Utiliza o JS Chrome V8 Engine
•   http://nodejs.org
•   Criado pela Mozilla Foundation
•   Javascript Java Runtime
•   Utiliza recursos da JVM
•   https://developer.mozilla.org/en-US/doc
•   Inspirado no Rhino
•   Utiliza recursos da JVM
•   Utiliza CommonJS Runtime
•   http://ringojs.org
Banco de dados que usam JS
•   Banco de dados NoSQL
•   Orientado a documentos (JSON)
•   Dynamic Schema
•   GridFS
•   MapReduce
•   http://www.mongodb.org
•   Banco de dados NoSQL
•   Orientado a documentos (JSON)
•   Dynamic Schema
•   Acesso via HTTP (API)
•   MapReduce
•   http://couchdb.apache.org
Javascript para mobile
• HTML5, CSS3 e Javascript
• Publica em até 7 plataformas:
  – iOS, Android, Windows Phone
  – BlackBerry, Palm, Bada
  – WebOS e Symbian
• http://phonegap.com
• HTML5, CSS3 e Javascript
• Titanium Studio IDE
• Publica em 3 plataformas:
  –iOS, Android e HTML5
• http://appcelerator.com/platfo
Javascript para desktop
• HTML5, CSS3 e Javascript
• Multi-plataforma: Linux,
  Windows, Mac
• Utiliza Chromium Engine
• Utiliza Node.js no backend
• http://appjs.org
• HTML5, CSS3 e Javascript
• Python, Ruby e PHP
• Multi-plataforma: Linux,
  Windows e Mac
• Utiliza WebKit Engine
• http://www.tidesdk.org
Linux em Javascript
Fabrice Bellard criou um emulador linux em JS.




          http://bellard.org/jslinux
Perguntas?
Obrigado!

Javascript nos dias de hoje

  • 1.
    Javascript nos dias dehoje Caio Ribeiro Pereira
  • 2.
    Caio Ribeiro Pereira Desenvolvedorweb (JS/Node.js) na Neoassist Bacharel em Sistemas de Informação na Unisantos Entusiasta Javascript / Node.js
  • 3.
    Contato caio.ribeiro.pereira@gmail.com @crp_underground github.com/caio-ribeiro-pereira Blogs www.udgwebdev.com www.udglinux.com www.crpunderground.wordpress.com
  • 5.
    HTML, CSS e Javascript estão em todas as plataformas
  • 6.
    Eles formam afamília da web HTML: Pai engenheiro CSS: Mãe decoradora Javascript: Filho nerd
  • 7.
    Sobre o Javascript •Criado por Brendan Eich • Nasceu em 1995 • Linguagem script para o Netscape • Mocha -> LiveScript -> Javascript • Douglas Crockford popularizou JSON em 2002
  • 8.
    Características do Javascript • Orientado à eventos • Baseado em objetos (Prototype) • Assíncronismo via callbacks • Síntaxe parecida: Java, C# e C++ • Padronizada pela ECMA • Versão atual: ECMAScript 5.1
  • 9.
  • 10.
    • Síntaxe inspiradapelo Ruby e Python • Recusos: – Syntax Sugar – Classe e herança – Conditional Assignment: • if true then “ok” else “no” – Loop comprehension: • size = (num for num in [10..1]) • http://coffeescript.org
  • 12.
    • Síntaxe inspiradapelo Java e .NET • Recursos: – Classe, Herança e Interface – Strong Typing – Generics, Enums e Iterators – Packages • http://www.haxejs.org
  • 14.
    • Síntaxe inspiradapelo Java e .NET • Recursos: – Classe, Herança e Interface – Strong typing – Overriding – Modules • http://www.typescriptlang.org
  • 16.
  • 17.
    Orientado à eventos de I/O • Thread não-bloqueante • Utiliza o JS Chrome V8 Engine • http://nodejs.org
  • 18.
    Criado pela Mozilla Foundation • Javascript Java Runtime • Utiliza recursos da JVM • https://developer.mozilla.org/en-US/doc
  • 19.
    Inspirado no Rhino • Utiliza recursos da JVM • Utiliza CommonJS Runtime • http://ringojs.org
  • 20.
    Banco de dadosque usam JS
  • 21.
    Banco de dados NoSQL • Orientado a documentos (JSON) • Dynamic Schema • GridFS • MapReduce • http://www.mongodb.org
  • 22.
    Banco de dados NoSQL • Orientado a documentos (JSON) • Dynamic Schema • Acesso via HTTP (API) • MapReduce • http://couchdb.apache.org
  • 23.
  • 24.
    • HTML5, CSS3e Javascript • Publica em até 7 plataformas: – iOS, Android, Windows Phone – BlackBerry, Palm, Bada – WebOS e Symbian • http://phonegap.com
  • 25.
    • HTML5, CSS3e Javascript • Titanium Studio IDE • Publica em 3 plataformas: –iOS, Android e HTML5 • http://appcelerator.com/platfo
  • 26.
  • 27.
    • HTML5, CSS3e Javascript • Multi-plataforma: Linux, Windows, Mac • Utiliza Chromium Engine • Utiliza Node.js no backend • http://appjs.org
  • 28.
    • HTML5, CSS3e Javascript • Python, Ruby e PHP • Multi-plataforma: Linux, Windows e Mac • Utiliza WebKit Engine • http://www.tidesdk.org
  • 29.
    Linux em Javascript FabriceBellard criou um emulador linux em JS. http://bellard.org/jslinux
  • 30.
  • 31.