O que é que o Java não tem?
-
Upload
denis-costa -
Category
Technology
-
view
1.039 -
download
0
description
Transcript of O que é que o Java não tem?
![Page 1: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/1.jpg)
O que eh que O que eh que o o javajava nao nao
tem?tem?
![Page 2: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/2.jpg)
Denis costaDenis costa@deniscostadsc@deniscostadsc
![Page 3: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/3.jpg)
Etb Etb fatecfatec
open source open source linuxlinuxregexregex webweb pythonpython
Coding dojoCoding dojo traducao traducao django django javascriptjavascript
comunidadecomunidade
![Page 4: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/4.jpg)
sou programadorsou programador
![Page 5: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/5.jpg)
20062006 pascal, – pascal, – delphi delphi 20072007 shell script, regex– shell script, regex–20082008 python– python–20102010 Javascript– Javascript–20112011 C, java– C, java–20122012 javascript– javascript–
![Page 6: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/6.jpg)
20062006 pascal, – pascal, – delphi delphi 20072007 shell script, regex– shell script, regex–20082008 python– python–20102010 Javascript– Javascript–20112011 C, java– C, java–20122012 – – javascriptjavascript
![Page 7: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/7.jpg)
Por que aprender Por que aprender javascript de novo?javascript de novo?
![Page 8: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/8.jpg)
de novo nao, de novo nao, de verdadede verdade
![Page 9: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/9.jpg)
var fatorial = function () {
// Memoization var results = []; return function fat (n) { if(results[n]) return results[n]; if(n === 0) result = 1; else result = fat(n – 1) * n; results[n] = result; return results[n]; };}();
fatorial(5); // 120 - 6 recursoesfatorial(6); // 720 - 2 recursoes
![Page 10: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/10.jpg)
vai dizer vai dizer que essas que essas
gambiarras gambiarras sao boas?sao boas?
![Page 11: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/11.jpg)
essas coisas nao essas coisas nao sao gambiarras, sao gambiarras, e eu vou explicar e eu vou explicar
o motivoo motivo
![Page 12: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/12.jpg)
Pascal == C == javaPascal == C == java
![Page 13: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/13.jpg)
Abra sua menteAbra sua mente
![Page 14: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/14.jpg)
afinal, o queafinal, o queeh que oeh que o
java nao tem?java nao tem?
![Page 15: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/15.jpg)
tipagem tipagem dinamicadinamica
![Page 16: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/16.jpg)
Variaveis sem tipoVariaveis sem tipo
variavelvariavel objetoobjeto
![Page 17: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/17.jpg)
number = (1..100).to_a.choiceif number == 42 # runtime error puts('4' + 2)end
Checagem de tipos em Checagem de tipos em tempo de execucaotempo de execucao
![Page 18: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/18.jpg)
ProsProsee
contrascontras
![Page 19: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/19.jpg)
ContrasContras
- Sem checagem em tempo de compilacao- Sem checagem em tempo de compilacao
![Page 20: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/20.jpg)
prospros
- sem casting- sem casting- sem interfaces ou classes em comum- sem interfaces ou classes em comum
![Page 21: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/21.jpg)
Quem tem?Quem tem?
Ruby, Python, Ruby, Python, Javascript, Php, lua Javascript, Php, lua perl, smalltalk...perl, smalltalk...
![Page 22: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/22.jpg)
Duck Duck typingtyping
![Page 23: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/23.jpg)
"quando eu vejo um passaro "quando eu vejo um passaro que anda como um pato, nada que anda como um pato, nada como um pato e grasna como como um pato e grasna como
um pato, eu chamo essa um pato, eu chamo essa passaro de pato."passaro de pato."
James Whitcomb RileyJames Whitcomb Riley
![Page 24: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/24.jpg)
alex martellialex martelli
![Page 25: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/25.jpg)
interface interface implicitaimplicita
![Page 26: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/26.jpg)
polimorfismo polimorfismo sem interfaces sem interfaces
ou herancaou heranca
![Page 27: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/27.jpg)
def foo(my_object): my_object.my_method()
![Page 28: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/28.jpg)
my_object[1]
![Page 29: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/29.jpg)
my_object.__getitem__(1)
![Page 30: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/30.jpg)
Quem tem?Quem tem?
Ruby, Python, Ruby, Python, Javascript, Php, perl, Javascript, Php, perl, smalltalk, smalltalk, C#, lua...C#, lua...
![Page 31: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/31.jpg)
Passagem Passagem flexivel de flexivel de parametrosparametros
![Page 32: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/32.jpg)
def foo(*args): pass foo()foo(1, 2, 3, 4, 5)foo(*[1, 2, 3, 4, 5])
![Page 33: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/33.jpg)
def foo(**kwargs): pass foo()foo(a=1, b=2, c=3)foo(**{'a': 1, 'b': 2, 'c': 3})
![Page 34: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/34.jpg)
def foo(param=True): pass foo()foo(False)foo(param=False)
![Page 35: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/35.jpg)
def foo(param, param_two=True, *args, **kwargs): pass
![Page 36: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/36.jpg)
sem sem sobrecarga sobrecarga de metodosde metodos
![Page 37: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/37.jpg)
Quem tem?Quem tem?
Python, ruby, lua, Python, ruby, lua, JavascriptJavascript**......
![Page 38: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/38.jpg)
first first class class
functionsfunctions
![Page 39: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/39.jpg)
funcoes sao funcoes sao objetos comuns, objetos comuns, como inteiros e como inteiros e
stringsstrings
![Page 40: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/40.jpg)
podem ser podem ser passadas como passadas como parametro e parametro e
retornadas como retornadas como valor de outra valor de outra
funcaofuncao
![Page 41: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/41.jpg)
def calculate(number, functions): for function in functions: number = function(number) return number def sum_one(number): return number + 1 def multiply_two(number): return number * 2 def power_three(number): return number ** 3 functions = [sum_one, multiply_two, power_three] print calculate(2, functions)
![Page 42: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/42.jpg)
def my_map(function, items): result = [] for item in items: result.append(function(item)) return result
![Page 43: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/43.jpg)
var surround = function (tag) { return function (text) { return '<' + tag + '>' + text + '</' + tag + '>'; };};
strong = surround('strong');small = surround('small');
strong('My text');// <strong>My text</strong>
small('My text');// <small>My text</small>
![Page 44: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/44.jpg)
![Page 45: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/45.jpg)
![Page 46: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/46.jpg)
Quem tem?Quem tem?
Python, ruby, lua, Python, ruby, lua, Javascript, c++Javascript, c++**, ,
lisp...lisp...
![Page 47: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/47.jpg)
closureclosure
![Page 48: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/48.jpg)
eh uma eh uma necessidade de necessidade de
funcoes de funcoes de primeira classeprimeira classe
![Page 49: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/49.jpg)
var counter = function () { var number = 0; return function () { return ++number; };}();
![Page 50: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/50.jpg)
var fatorial = function () {
// Memoization var results = []; return function fat (n) { if(results[n]) return results[n]; if(n === 0) result = 1; else result = fat(n – 1) * n; results[n] = result; return results[n]; };}();
fatorial(5); // 120 - 6 recursoesfatorial(6); // 720 - 2 recursoes
![Page 51: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/51.jpg)
Quem tem?Quem tem?
Python, ruby, lua, Python, ruby, lua, Javascript, c++Javascript, c++**, ,
lisp...lisp...
![Page 52: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/52.jpg)
list list comprehensioncomprehension
![Page 53: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/53.jpg)
inspirado nos inspirado nos conjuntos da conjuntos da matematicamatematica
![Page 54: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/54.jpg)
cria lista cria lista baseado em baseado em
lista lista existenteexistente
![Page 55: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/55.jpg)
even = [s for s in range(1001) if s % 2 == 0]
![Page 56: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/56.jpg)
Quem tem?Quem tem?
Python, ruby, erlang, Python, ruby, erlang, scala, smalltalk...scala, smalltalk...
![Page 57: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/57.jpg)
lambda functionslambda functions
![Page 58: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/58.jpg)
funcao declarada funcao declarada que pode ser que pode ser
executada sem executada sem estar ligada a uma estar ligada a uma
referenciareferencia
![Page 59: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/59.jpg)
lambda x: x + x
![Page 60: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/60.jpg)
lambda{|x| x + x}
![Page 61: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/61.jpg)
(int x) -> x + x () -> 42 (String s) -> { System.out.println(s); }
![Page 62: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/62.jpg)
map(lambda x: x + x, [1, 2, 3, 4])
![Page 63: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/63.jpg)
Quem tem?Quem tem?
Python, ruby, javascript, Python, ruby, javascript, lua, erlang, scala, lua, erlang, scala, smalltalk, javasmalltalk, java**......
![Page 64: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/64.jpg)
![Page 65: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/65.jpg)
![Page 66: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/66.jpg)
![Page 67: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/67.jpg)
![Page 68: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/68.jpg)
![Page 69: O que é que o Java não tem?](https://reader034.fdocument.pub/reader034/viewer/2022051210/54b54d304a7959a77c8b45fa/html5/thumbnails/69.jpg)
ObrigadoObrigado
Q & AQ & A